Функції виводу, Детальна інформація

Функції виводу
Тип документу: Реферат
Сторінок: 5
Предмет: Культура
Автор: Олексій
Розмір: 10.7
Скачувань: 781
(SETQ v (EVAL e)) обчислення виразу

(PRINT v) друк результата

При виконанні тіла необчислювальної функції ми можемо використати функцію EVAL для обчислення аргументів.

(DEFUIN f3 (NLAMBDA (x y) (SETQ k 5 l 6) (f3 k l)

(+ (EVAL x) (EVAL y))) ) 11

3. CONSTANTP <об’єкт>

Об’єкт є константою тоді і тільки тоді, коли (EVAL <об’єкт>) повертає <об’єкт>. Символ NIL, числа та списки, в яких CAR-елемент є символ QUOTE, в muLisp є константами. Якщо <об’єкт> — константа, функція CONSTANTP повертає Т, інакше — NIL.

(DEFUN CONSTANTP (obj)

((NULL obj))

((NUMBERP obj))

((ATOM obj) NIL)

(EQ (CAR obj) ‘QUOTE) )

$ (CONSTANTP ()) $ (CONSTANTP 23.543)

T T

$ (CONSTANTP ‘v) $ (CONSTANTP ‘(a b c))

NIL NIL

$ (CONSTANTP ‘(QUOTE (a b c)))

T

4. APPLY <функція> <арг1> <арг2> ... <арг-список>

Застосовує функцію до списку аргументів. (APPLY f x1 x2 ... xN) еквівалентно (f x1 x2 ... xN). Використання функції APPLY є більщ гнучким у порівнянні з прямим викликом функції. Діє як і функція FUNCALL, тільки аргументи функції приймає не окремо, а списком.

Якщо функція — ім’я визначеної користувачем функції або тіло LAMBDA, APPLY пов’язує формальні аргументи функції з фактичними аргументами, обчислює тіло функції, відтворює вихідні значення формальних аргументів і повертає значення обчислення тіла функції.

Якщо функція — не ім’я функції і не тіло LAMBDA, APPLY генерує переривання по помилці “невизначена функція”.

$ (APPLY ‘CONS ‘(a (b c d))) $ (SETQ z ‘(LAMBDA (n) (* n n)))

(a b c d) $ (APPLY z ‘(4))

16

5. UNDEFINED <символ> <форма1> ... <формаN>

Ця функція ініціює преривання по помилці “Невизначена функція”. Ця функція керування помилками використовується тоді, коли намагаються обчислити форму, CAR-елемент якої є символом, який не має визначення функції.

The online video editor trusted by teams to make professional video in minutes