Реферат: АвтоЛИСП - реализация языка программирования
Выполняет функцию, определенную <function>/<функцией> с параметрами, заданными в <list>/<списке>. Например:
(apply ' + '(1 2 3)) вводит 6
(apply 'stract' ("a" "b" "c")) вводит "abc"
APPLY работает как со встроенными (subrs), так и с определенными пользователем (эти создаются как с помощью DEFUN, так и LAMBDA) функциями.
4.20 (ascii <string>)
Эта функция вводит переход первого символа <строки> в ее знаковый код ASCII (целые числа). Это то же, что и функция ASC в языке БЕЙСИК. Например:
(ascii "A") вводит 65
(ascii "a") вводит 97
(ascii "BIG") вводит 66
4.21 (assoc <item> <alist>)
Эта функция ищет список ассоциаций <alist> для единицы (<item>) как ключевого элемента и вводит содержимое <alist>. Если <item> не найден как ключ в <alist>, ASSOC вводит ноль. Например, предположим, что список "al" определен как:
((name box) (width 3) (size 4.7263) (depth 5))
тогда:
(assoc 'size al) вводит (SIZE 4.7263)
(assoc 'weight al) вводит nil
Список ассоциаций часто используется для запоминания данных, которые могут выбираться как "ключ". Это похоже на матрицы и структуры в других языках программирования. Функция SUBST, описанная далее в этой главе, обеспечивает удобные способы отмены значений, ассоциируемые с одним ключем в перечне ассоциаций.
4.22 (atan <num1> [<num2>])
Если <num2> не задается, ATAN вводит арктангенс <num2> в радианах. <num1> может быть отрицательным, диапазон вводимых углов от -pt до +pt радиан. Например:
(atan 0.5) вводит 0.463647
(atan 1.0) вводит 0.785398
(atan -1.0) вводит -0.785398
(angtos (atan -1.0) 0 4) вводит "-45.0000"
Если заданы оба параметра (<num1> и <num2>), вводится арктангенс <num1>/<num2> в радианах. Если <num2> - ноль, вводится угол в плюс или минус 1.570796 радиан (90 или -90 градусов) в зависимости от знака <num1>. Например:
(atan 2.0 3.0) вводит 0.588002
(angtos (atan 2.0 3.0) 0 4) вводит "33.6901"
(atan 2.0 -3.0) вводит 2.553590
(angtos (atan 2.0 -3.0) 0 4) вводит "146.3099"
(atan -2.0 3.0) вводит -0.588002
(atan -2.0 -3.0) вводит -2.553590