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

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

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

Вот функция, если я задаю х вручную, то всё работает
Листинг программы
  1. (defun culcs(x y)
  2. (cond
  3. ((null y) nil)
  4. (t(cons (* (* (expt -1 (car y)) (/ (+ (* 2 (expt (car y) 2)) 1) (fact (* 2 (car y))))) (expt x (* (car y) 2)))
  5. (culcs (cdr y))))))
Вот что выводит (culcs 4 '(2 5)) PairLis: Слишком мало фактических параметров Важно! По заданию можно пользоваться только базовыми функциями, без циклов и присваиваний, только простейшие математические car и cdr. P.S. Факториал
Листинг программы
  1. (defun iterf(n)
  2. (cond
  3. ((> n 0) (cons n (iterf (- n 1))))))
  4. (defun tim (lat)
  5. (cond
  6. ((null lat) 1)
  7. (t (* (car lat) (tim (cdr lat))))))

Решение задачи: «Ошибка в обычной функции Homelisp»

textual
Листинг программы
  1. (defun culcs(x y)
  2.   (cond  ((null y) nil)
  3.            (t(cons (* (* (expt -1 (car y))
  4.                               (/ (+ (* 2 (expt (car y) 2)) 1) (fact (* 2 (car y))))) (expt x (* (car y) 2)))
  5.                                  (culcs x (cdr y))))))
  6.  
  7. ==> culcs
  8.  
  9. (culcs 4 '(2 5))
  10.  
  11. ==> (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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы