(defun power (x y)
(cond
((= y 0) 1)
(t
(* x (power x (- y 1)))
)
)
)
(defun func (x)
(setq y (/ 10 (+ 1 x)))
(cond
((= x 20) (list x y))
(t
(cons (list x y) (func (+ x 0.5)))
)
)
)
(defun kill# (a b)
(cond
((= b 0) (cdr a))
((atom a) a)
(t
(cons (car a) (kill# (cdr a) (- b 1)))
)
)
)
(defun killf (a key)
(cond
((atom a) a)
((= key (car a)) (cdr a))
(t
(cons (car a) (killf (cdr a) key))
)
)
)
(defun kill# (a b) - определяем функцию
(cond - разветвляем вычисления
((= b 0) (cdr a)) - проверка достигла ли b нуля, да возвращаем хвост списка, нет переходим к следующему условию
((atom a) a) - проверка является ли а атомом, в даном случае nil, т.е. пустой ли список, иначе дальше
(t - проверка является ли строка ниже предикатом, т.е. не атомом
(cons (car a) (kill# (cdr a) (- b 1))) - соединяем голову списка и результат работы самой себя, но с другими входными данными
)
)
)
(defun power (x y) == FUNCTION power(x,y)
(cond == IF
((= y 0) 1) == Y=0 then power=1
(t == ELSE
(* x (power x (- y 1))) == power:=x*power(x,y-1)
)
)
)
(defun power (x y) = определяем функцию пользователя
(cond = ветвление вычислительного процесса
((= y 0) 1) = проверяем равна ли переменная Y нулю, т.е. если степень равна нулю возвращается 1
(t = выполнить следующую строку в любом случае
(* x (power x (- y 1))) = рекурсивно вызываем функцию с измененной степенью и полученный результат умножаем с переменной
)
)
)
(defun func (x)
(setq y (/ 10 (+ 1 x))) = вычисляем текущее значение переменной
(cond
((= x 20) (list x y)) = возвращаем список из переменной и значения
(t
(cons (list x y) (func (+ x 0.5))) = соединяем ренее полученный список с текущим
)
)
)
(defun kill# (a b)
(cond
((= b 0) (cdr a)) = если переменная В равна нулю возвращается хвост списка
((atom a) a) = проверяется является ли А атомом, т.е. пустой ли список
(t
(cons (car a) (kill# (cdr a) (- b 1))) = востанавливаем список, без уже вычеркнутого элемента
)
)
)
(defun killf (a key)
(cond
((atom a) a)
((= key (car a)) (cdr a)) = проверяется, является ли голова списка нужным элементом
(t
(cons (car a) (killf (cdr a) key))
)
)
)
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.