Alterator/libraries
Материал из ALT Linux Wiki
< Alterator(Различия между версиями)
(→"Ячейки" (alterator algo)) |
м (category: more specific) |
||
(7 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | [[Category: | + | [[Category:alterator]] |
+ | [[category:scheme]] | ||
+ | ==Стандартные библиотеки scheme, предоставляемые alterator== | ||
- | + | ===Работа со строками (alterator str)=== | |
- | + | ||
- | ===Работа со строками (alterator | + | |
{| class="standard" | {| class="standard" | ||
Строка 62: | Строка 62: | ||
|} | |} | ||
- | === Списки свойств === | + | === Списки свойств (alterator plist)=== |
Списки свойств - это списки вида '''(параметр значение параметр значение ...)''' удобны прежде всего для пользователей так как содержат меньше скобок, используются как замена ассоциативных списков. | Списки свойств - это списки вида '''(параметр значение параметр значение ...)''' удобны прежде всего для пользователей так как содержат меньше скобок, используются как замена ассоциативных списков. | ||
- | = | + | {|class="standard" |
- | + | !функция | |
- | + | !описание | |
- | + | |- | |
- | + | |nowrap="yes"|plistq <параметр> <список> | |
- | + | |Аналог assq. Возвращает пару (имя . значение) если соответствующее имя найдено в списке или #f | |
- | = | + | |- |
- | + | |nowrap="yes"|cond-plistq <параметр> <список> [<значение по умолчанию>] | |
- | + | |Расширение plistq. Аналог cond-assq для списка свойств. | |
- | + | |} | |
- | Аналог | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | = | + | |
- | Аналог cond-assq для списка свойств. | + | |
==="Ячейки" (alterator algo)=== | ==="Ячейки" (alterator algo)=== | ||
alterator-lookout запрещает явное использование операции set!, вместо этого предлагается контейнер cell, с операциями получения и изменения значения. | alterator-lookout запрещает явное использование операции set!, вместо этого предлагается контейнер cell, с операциями получения и изменения значения. | ||
- | {| class=standard" | + | {| class="standard" |
!функция | !функция | ||
- | ! | + | !описание |
|- | |- | ||
|nowrap="yes"|make-cell <объект> | |nowrap="yes"|make-cell <объект> |
Текущая версия на 08:50, 21 июня 2016
Содержание |
Стандартные библиотеки scheme, предоставляемые alterator
Работа со строками (alterator str)
функция | описание |
---|---|
string-cut <строка> <символ-разделитель> | Делит строку по разделителю. Ссылка на string-split, специфичную для guile функцию. |
string-cut-repeated <строка> <символ-разделитель> | string-cut с последующим удалением пустых строк. Удобно когда надо игнорировать повторяющиеся разделители. |
string-quote <процедура> <строка> | Общий механизм для квотирования строк. Процедура имеет тип char->string. |
Работа со списками (alterator algo)
функция | описание |
---|---|
append1 <список> <элемент> | Добавляет один элемент в конец списка. Аналог (append <список> (list <элемент>)). |
list-remove <список> <номер> | Удаляет из списка элемент в указанной позиции. |
string-list-index <список> <строка> | Номер строки в списке или #f если строка в списке отсутствует. |
cond-car <объект> [<значение по умолчанию>] | Расширение car. Возвращает <значение по умолчанию> (или #f если оно не задано) в случае, когда <объект> не список или пустой список. |
cond-cdr <объект> [<значение по умолчанию>] | Расширение cdr |
cond-cadr <объект> [<значение по умолчанию>] | Расширение cadr |
Работа с ассоциативными списками (alterator algo)
функция | описание |
---|---|
alist-set <параметр> <значение> <список> | Расширение acons. Если в списке уже имеется такой же параметр (сравнение типа equal?), то его значение будет заменено и дубликат не появится |
cond-assoc <параметр> <список> [<значение по умолчанию>] | Расширение assoc. Возвращает найденный элемент (а не пару) или значение по умолчанию (#f если значение не найдено). |
cond-assq <параметр> <список> [<значение по умолчанию>] | Расширение assq |
Списки свойств (alterator plist)
Списки свойств - это списки вида (параметр значение параметр значение ...) удобны прежде всего для пользователей так как содержат меньше скобок, используются как замена ассоциативных списков.
функция | описание |
---|---|
plistq <параметр> <список> | Аналог assq. Возвращает пару (имя . значение) если соответствующее имя найдено в списке или #f |
cond-plistq <параметр> <список> [<значение по умолчанию>] | Расширение plistq. Аналог cond-assq для списка свойств. |
"Ячейки" (alterator algo)
alterator-lookout запрещает явное использование операции set!, вместо этого предлагается контейнер cell, с операциями получения и изменения значения.
функция | описание |
---|---|
make-cell <объект> | Создаёт контейнер, хранящий указанный объект |
cell-ref <контейнер> | Возвращает ссылку на сохранённый объект |
cell-set! <контейнер> <значение> | Изменяет объект, сохранённый в контейнере |
Пример работы с контейнерами:
guile> (use-modules (alterator algo)) guile> (define a (make-cell 3)) guile> (cell-ref a) 3 guile> (cell-set! a 4) guile> (cell-ref a) 4
Разное (alterator algo)
функция | описание |
---|---|
begin-1 <процедура> [<процедура>] | Как begin. Выполняет последовательно процедуры и возвращает первой. |