> 1 <

Автор Сообщение

turn

Members


Статус

5 сообщений

Где: Ukraine
Род занятий:
Возраст:

#3411   2010-11-14 13:20 GMT+3 часа(ов)      
Здравствуйте, очень нужна помощь...

Составить функцию factor с одним аргументом-числом, результатом которой будет факториал этого числа, но представленный в форме выражения , являющегося соответствующим произведением , в котором сомножители упорядочены в порядке возрастания. Учитывая специфику ЛИСПа , очевидно, что эта последовательность сомножителей должна быть заключена в скобки

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#3412   2010-11-14 16:55 GMT+3 часа(ов)      
(defun factor (n &OPTIONAL L)
"уж как-нибудь обойдитесь с 1 и 0"
(cond
((= n 0) (cons '* L))
(T
(factor (1- n) (cons n L)))))
 
(defmacro test (n)
`(eval ',(factor n)))

ужа давно не видел таких наглых кю.
I wish I'd made you angry earlier

ander-skirnir

Members


Статус

227 сообщений
http://lisper.ru
Где: Ukraine
Род занятий: `'`,`',`',
Возраст: 30

#3413   2010-11-15 02:17 GMT+3 часа(ов)      
(defun factor (n)
`(* ,@(loop :for i :from 1 :to n
:collect i)))
 
(factor 4)
=> (* 1 2 3 4)

VH

Members


Статус

289 сообщений

Где: ---
Род занятий:
Возраст:

#3414   2010-11-15 09:46 GMT+3 часа(ов)      
Хювёнен-Сеппянен "Мир Лиспа" т.1 стр.372:
(defun FACTOR (N) ; в оригинале ФАКТОРИАЛ1
(cond
((< N 2) '(1))
(T
(append
(FACTOR (- N 1))
(list '* N)))))

turn

Members


Статус

5 сообщений

Где: Ukraine
Род занятий:
Возраст:

#3415   2010-11-15 11:41 GMT+3 часа(ов)      
Огромное спасибо!

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#3417   2010-11-15 15:26 GMT+3 часа(ов)      
to ander-skirnir> твоё кун-фу сильнее
I wish I'd made you angry earlier
> 1 <


Онлайн :

0 пользователь(ей), 25 гость(ей) :