Числовi функцiї
9. (TAN x) та (ATAN x) тангенс та арктангенс
10.(RANDOM n) генерується натуральне число, менше за n.
Контрольнi конструкцiї
MuLisp використовує неявну форму PROGN для обчислення форм, якi складають тiло функцiї. Окрiм того, iнтерпретатор muLisp розпiзнає в тiлi функцiї неявнi COND конструкцiї. Неявнi COND-и роблять визначення функцiй читабельними, короткими та ефективними. Спецiальнi форми забезпечують контроль за обчисленням форм в процесi виконання програм. Розглянемо деякi контрольнi iнструкцiї.
1. QUOTE об'єкт. Повертає об'єкт obj без його обчислення. QUOTE може використовуватися для запобiгання обчислення значень констант, якi передаються як аргумент функцiї, що обчислюється.
$ (SETQ a 125)
$ a$ (QUOTE a)$ (CAR (CONS 4 7))$ (CAR '(CONS 4 7))
125a4CONS
2. LOOP форма1 форма2 ... формаN. Повторно обчислює форми у послiдовному порядку доти, поки не зустрiнеться неявний COND з предикатом, не рiвним NIL. Розглянемо функцiю LENGTH обчислення довжини списку. В першому стовпчику запропоновано рекурсивний, в лiвому - нерекурсивний варiант програми.
(DEFUN LENGTHr (lst)(DEFUN LENGTH (lst)
((NULL lst) 0)(SETQ ct 0)
(+ 1 (LENGTHr (CDR lst))) (LOOP
)((NULL lst) ct)
(SETQ lst (CDR lst) ct (+ 1 ct))
) )
3. IF предикат [THEN] форма1 [ELSE] форма2. Якщо значення предиката не дорiвнює NIL, то видається [THEN] форма, iнакше видається [ELSE] форма.
$ (IF (EQL 'r 'r)(CAR '(q w e r t y)) (CDR '(q w e r t y))) - q
$ (IF (EQL 'r 'w)(CAR '(q w e r t y)) (CDR '(q w e r t y))) - (w e r t y)
4. IDENTITY об'єкт. Повертає об'єкт без жодних змiн. Ця функцiя застосовується для використання змiнних як предикатiв в умовних виразах.
5. PROGN форма1 форма2 ... формаN. Послiдовно обчислює форми та повертає результат обчислення формиN.
6. PROG1 форма1 форма2 ... формаN. Послiдовно обчислює форми та повертає результат обчислення форми1. Функцiю використовують для того, щоб вводити допомiжнi змiннi для збереження результатiв в процесi обчислення iнших виразiв.
$ (SETQ a '(q w e r t y))$ a