Песочница

Указатель процедур

Найдите встроенную процедуру среди 205 имён и откройте справочник с её аргументами, результатами и ошибками.

Найдите встроенную процедуру по имени или задаче, затем откройте справочник с её аргументами, результатами и ошибками. Полный список ниже содержит 205 имён, включая псевдонимы.

Начните с задачи

Чтобы преобразовать каждый элемент списка, используйте map из семейства процедур высшего порядка. Запустите пример на площадке.

LISPEX
(map square (list 1 2 3))

Результат

ВЫВОД
(1 4 9)

map вызывает square для каждого элемента и собирает результаты в новый список. Ссылка на процедуры высшего порядка в таблице ведёт к требованиям к аргументам и возвращаемым значениям.

Найдите справочник

В таблице приведены примеры имён из каждого семейства. По ссылкам доступны точные формы вызова, допустимые типы и коды ошибок.

ЗадачаИмена для поискаАргументы и результаты
Арифметика+ - * / abs square min max floor ceiling round truncateодин аргумент или переменное число, в зависимости от процедуры; возвращает число
Целочисленное делениеmodulo quotient remainder floor-quotient floor-remainder truncate-quotient truncate-remainder floor/ truncate/два целых числа; возвращает одно или два значения
Равенство и сравнение чиселeq? eqv? equal? = < > <= >= boolean=?ровно два аргумента для eq?, eqv? и equal?; два и более для остальных указанных сравнений; возвращает булево значение
Проверка типов и числовые проверкиzero? positive? negative? even? odd? null? pair? list? empty? boolean? char? string? symbol? number? integer? procedure? vector? bytevector?один аргумент; возвращает булево значение
Списки и составные значенияcons car cdr list append reverse list-ref vector vector-ref vector-set! bytevector-u8-refаргументы зависят от процедуры; возвращает одно значение или ноль значений
Строки, символы и байтыstring-ref string-map char=? char->integer bytevector-u8-refаргументы и результаты зависят от процедуры
Процедуры высшего порядкаmap filter reduce fold-left fold-right all? any? apply for-each vector-map string-mapобход принимает одну коллекцию; apply объединяет явные аргументы с последним списком; результаты описаны в справочнике
Исключения и выводerror raise raise-continuable with-exception-handler display write newline printlnаргументы зависят от процедуры; может вызвать исключение или вернуть ноль, одно или несколько значений

Прочитайте требования к процедуре

Каждая процедура принимает фиксированное или явно указанное переменное число аргументов. При неверном числе аргументов проверьте сигнатуру — запись формы вызова. Код E3xx указывает на ошибку типа или недопустимое значение.

Используйте имя из R7RS, если оно есть. R7RS — стандарт языка Scheme. Документированные псевдонимы имеют тот же смысл, но устаревающие псевдонимы выдают предупреждения.

Все 205 встроенных имён

!= % * + - / < <= = == > >= abs all? any? append apply assoc assq
assv boolean=? boolean? bytevector bytevector-length
bytevector-u8-ref bytevector? caaaar caaadr caaar caadar caaddr
caadr caar cadaar cadadr cadar caddar cadddr caddr cadr
call-with-current-continuation call-with-values call/cc car cdaaar
cdaadr cdaar cdadar cdaddr cdadr cdar cddaar cddadr cddar cdddar
cddddr cdddr cddr cdr ceiling char->integer char-alphabetic?
char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase
char-foldcase char-lower-case? char-numeric? char-upcase
char-upper-case? char-whitespace? char<=? char<? char=? char>=?
char>? char? complex? cons display dynamic-wind empty? eq? equal?
eqv? error error-object-irritants error-object-message error-object?
even? exact exact->inexact exact-integer-sqrt exact-integer? exact?
expt filter first floor floor-quotient floor-remainder floor/
fold-left fold-right for-each gcd inexact inexact->exact inexact?
integer->char integer? lcm length list list->string list->vector
list-copy list-first list-ref list-rest list-tail list?
make-bytevector make-list make-string make-vector map max member
memq memv min modulo negative? newline not nth null? number->string
number? odd? pair? positive? println procedure? quotient raise
raise-continuable rational? real? reduce remainder rest reverse
round square string->list string->number string->symbol
string->vector string-append string-ci<=? string-ci<? string-ci=?
string-ci>=? string-ci>? string-copy string-downcase string-foldcase
string-for-each string-length string-map string-ref string-upcase
string<=? string<? string=? string>=? string>? string? substring
symbol->string symbol=? symbol? truncate truncate-quotient
truncate-remainder truncate/ values vector vector->list
vector->string vector-copy vector-for-each vector-length vector-map
vector-ref vector-set! vector? with-exception-handler write zero?

Вызовите процедуру по имени

Встроенное имя доступно сразу. Чтобы вызвать собственную процедуру под другим именем, сначала определите её. Имена из окружения вызывающего приложения не становятся процедурами Лиспекса автоматически.