Числовi функцiї
$ (PROG1 (CAR a) (SETQ a (CDR a)))(w e r t y)
q
7. COND cond1 cond2 ... condN. Обчислює CAR кожної COND форми доти, доки не зустрiнеться деяке значення, вiдмiнне вiд NIL, або доки всi предикати не будуть обчисленi. В першому випадку COND обчислює CDR елемент cons - форми з предикатом, який не дорiвнює NIL, як тiло функцiї, використовуючи неявну функцiю PROGN. Якщо CDR - елемент COND форми, яка не дорiвнює NIL, є порожнiм, то повертається значення предиката. Якщо обчисленi всi предикати та всi вони повернули NIL, то COND повертає NIL.
8. COMMENT коментар. Iгнорує свої аргументи та повертає NIL. Визначає засiб включення коментарiв безпосередньо у визначенi функцiї.
9. RETURN об'єкт. Зупиняє виконання функцiї, яка мiстить RETURN, звiльняє стек та повертає об'єкт в ролi свого значення.
10. RESTART Закриває всi вiдкритi файли, вiдмовляється вiд поточного середовища та iнiцiює нову систему muLisp. Всi зв'язки мiж змiнними, функцiї користувача та значення властивостей поточного середовища знищуються.11. SYSTEM Закриває всi вiдкритi файли, завершує виконання muLisp та повертає керування операцiйнiй системi.
12. EXECUTE програма командний рядок. Зупиняється робота системи muLisp, передається керування програмi з командним рядком. EXECUTE повертає код виходу з програми або NIL, якщо <програма> не знайдена.
$ (EXECUTE "command.com" "/c dir c:")
Обчислення рекурсивних функцiй
1. Факторiалом числа n називається число (позначається n!), яке рекурсивно визначається наступним чином:
0! = 1$ (DEFUN FACTORIAL (n)$ (FACTORIAL 10)
N! = N*(N-1)! якщо N>0.((ZEROP n) 1)3628800
(* n (FACTORIAL (- n 1))) )
Якщо в рекурсивнiй програмi аргументом буде велике число, то може виникнути переповнення стеку. Використовуючи команду циклу LOOP можна уникнути екурсивного виклику. Наступна функцiя буде бiльш ефективною:
$ (DEFUN FACTORIAL1 (n rslt)$ (FACTORIAL1 10)
(SETQ rslt 1)3628800
(LOOP
((ZEROP n) rslt )$ (FACTORIAL 0 a)
(SETQ rslt (* n rslt))1
(SETQ n (- n 1)) ) )
2. Послiдовнiсть чисел, кожен елемент якої дорiвнює сумi двох попереднiх, а першi два елементи дорiвнюють 1, називається послiдовнiстю Фiбоначчi. N-те число послiдовностi Фiбоначчi F(N) може бути знайдене за рекурсивною формулою: