Ошибка в обычной функции Homelisp
Формулировка задачи:
Вот функция, если я задаю х вручную, то всё работает
Вот что выводит
(culcs 4 '(2 5))
PairLis: Слишком мало фактических параметров
Важно! По заданию можно пользоваться только базовыми функциями, без циклов и присваиваний, только простейшие математические car и cdr.
P.S. Факториал
(defun culcs(x y) (cond ((null y) nil) (t(cons (* (* (expt -1 (car y)) (/ (+ (* 2 (expt (car y) 2)) 1) (fact (* 2 (car y))))) (expt x (* (car y) 2))) (culcs (cdr y))))))
(defun iterf(n) (cond ((> n 0) (cons n (iterf (- n 1)))))) (defun tim (lat) (cond ((null lat) 1) (t (* (car lat) (tim (cdr lat))))))
Решение задачи: «Ошибка в обычной функции Homelisp»
textual
Листинг программы
(defun culcs(x y) (cond ((null y) nil) (t(cons (* (* (expt -1 (car y)) (/ (+ (* 2 (expt (car y) 2)) 1) (fact (* 2 (car y))))) (expt x (* (car y) 2))) (culcs x (cdr y)))))) ==> culcs (culcs 4 '(2 5)) ==> (96 -69632/4725)
Объяснение кода листинга программы
В коде определена функция с именем culcs. Она принимает два аргумента, x и y. Если y равно nil, то функция возвращает nil. В противном случае (если y не равно nil), функция возвращает результат вычисления следующего выражения: (cons ( ( (expt -1 (car y)) (/ (+ ( 2 (expt (car y) 2)) 1) (fact ( 2 (car y))))) (expt x (* (car y) 2))) где: — car y — первый элемент (символ) списка y — cdr y — все элементы списка y, кроме первого — expt — операция возведения в степень — fact — функция, вычисляющая факториал числа Поэтому, если мы вызовем функцию culcs с аргументами 4 и '(2 5), то она вернет (96 -69632/4725).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д