АвтоЛИСП - реализация языка программирования
Рефераты >> Программирование и компьютеры >> АвтоЛИСП - реализация языка программирования

(<= 10 20) вводит T

(<= 4 4) вводит T

(<= 357 33.2) вводит nil

(<= 2 9 9) вводит T

(<= 2 9 4 5) вводит nil

4.9 (> <number> <number> .)

Это относительная функция "больше, чем" . Она вводит T, если первое <число> больше, чем второе и nil, если наоборот. Если задано больше двух <чисел>, T вводится при условии, что каждое число больше стоящего справа. Например:

(> 120 17) вводит T

(> 57 57) вводит nil

(> 3.5 1792) вводит nil

(> 77 4 2) вводит T

(> 77 4 4) вводит nil

4.10 (>= <number> <number> .)

Это относительная функция "больше или равно". Она вводит T, если первое <число> больше или равно второму, и nil в противном случае. Если задано больше двух <чисел>, T вводится при условии, что каждое число больше или равно <числу> справа от него. Например:

(>= 120 17) вводит T

(>= 57 57) вводит T

(>= 3.5 1792) вводит nil

(>= 77 4 4) вводит T

(>= 77 4 9) вводит nil

4.11 (- <number>)

Эта функция вводит подразрядный НЕТ (NOT) (чье-то дополнение) <чисел>. <Число> должно быть целым. Например:

(-3) вводит -4

(-100) вводит -101

(- -4) вводит 3

4.12 (1+ <number>)

Эта функция вводит <число>, увеличенное на единицу (приращенное). <Число> может быть действительным или целым. Например:

(1+ 5) вводит 6

(1+ -17.5) вводит -16.500000

4.13 (1- <number>)

Эта функция вводит <число>, уменьшенное на единицу (декрементированное). <Число> может быть действительным или целым. Например:

(1- 5) вводит 4

(1- -17.5) вводит -18.500000

4.14 (abs <number>)

Эта функция вводит абсолютное значение <числа>. <Число> может быть действительным или целым. Например:

(abs 100) вводит 100

(abs -100) вводит 100

(abs -99.25) вводит 99.250000

4.15 (and <expr> .)

Эта функция вводит логическое И (AND) списка выражений. Она вводит ноль, если любое из выражений вычисляется к нулю, в противном случае она вводит T. Например, заданы следующие назначения:

(setq a 103)

(setq b nil)

(setq c "string")

тогда:

(and 1.4 a c) вводит T

(and 1.4 a b c) вводит nil

4.16 (angle <pt1> <pt2>)

Эта функция вводит угол (в радианах) между 2D точками <pt1> и <pt2>, когда 2D точка - перечень двух действительных чисел. Например:

(angle '(1.0 1.0) '(1.0 4.0)) вводит 1.570796

(angle '(5.0 1.33) '(2.4 1.33)) вводит 3.141593

4.17 (angtos <angle> [<mode> [<precision>]])

Эта функция берет <угол> (действительный, в радианах) и вводит его отредактирован-ным в виде строки. Параметр <mode>/<режим> - целое число; следующим образом он диктует тип выполняемого редактирования:

Режим ANGTOS Формат Редактирования

------------ ---------------------

0 Градусы

1 Градусы/минуты/секунды

2 Грады

3 Радианы

4 Топографические единицы

Параметр <precision>/<точность> - целое число, которое выбирает желаемое количество десятичных знаков точности. <режим> и <точность> соответствуют системе переменых AUNITS и AUPREC АвтоКАДа. Если вы пропускаете параметры, будут применяться текущие установки AUNITS и AUPREC.

Например,заданы следующие назначения:

(setq pt1 '(5.0 1.33))

(setq pt2 '(2.4 1.33))

(setq a (angle pt1 pt2))

тогда:

(angtos a 0 0) вводит "180"

(angtos a 0 4) вводит "180.0000"

(angtos a 1 4) вводит "180d0'0"

(angtos a 3 4) вводит "3.1416r"

(angtos a 4 2) вводит "W"

4.18 (append <expr> .)

Эта функция берет любое количество элементов (<expr>/<выражений>) и соединяет их вместе в один перечень. Например

(append '(a b) '(c d)) введет (A B C D)

(append '((a)(b)) '((c)(d)) введет ((A)(B)(C)(D))

APPEND требует,чтобы ее параметры были в виде списков.

4.19 (apply <function> <list>)

Выполняет функцию, определенную <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

(atan 1.0 0.0) вводит 1.570796

(angtos (atan 1.0 0.0) 0 4) вводит "90.0000

(atan -0.5 0.0) вводит -1.570796

(angtos (atan -0.5 0.0) 0 2) вводит "-90.00"

4.23 (atof <string>)

Эта функция вводит преобразование строчки в действительные числа. Например:

(atof "97.1") вводит 97.100000


Страница: