Ошибка в обычной функции Homelisp

Узнай цену своей работы

Формулировка задачи:

Вот функция, если я задаю х вручную, то всё работает
(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))))))
Вот что выводит (culcs 4 '(2 5)) PairLis: Слишком мало фактических параметров Важно! По заданию можно пользоваться только базовыми функциями, без циклов и присваиваний, только простейшие математические car и cdr. P.S. Факториал
(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).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы