Автор | Сообщение |
Алина
11 сообщений |
#1193 2010-01-25 21:17 GMT+3 часа(ов) |
Задачки вроде бы простые, на паскале и с++ я такие писала но в этом языке и с такой громоздкой литературой не могу вобще разобраться. Mlisp интерпритатор... если кто-нибудь поможет буду очень признательна.
1.Определить функцию которая возвращает максимальное из 3х чисел. 2.(С рекурсией, причём не с параллельной (я не знаю что это такое ![]() |
|
VH
289 сообщений |
#1195 2010-01-25 22:12 GMT+3 часа(ов) |
(defun F (A B C) (defun F (L) |
|
Алина
11 сообщений |
#1196 2010-01-25 23:09 GMT+3 часа(ов) |
Обьясни мне глупенькой пожалуйста если не трудно...
со второго примера defun- это функция так ?!? (L) - это список так? если список пстой то функция возвращает 0 и это же (if (null L) 0условие терминального выхода так? car - это первый элемент списка так ? cdr - это список без первого элемента так? т.е. мы постоянно берём первый элемент из списка которыйкаждый раз становться на первый элемент короче) и накопляем в F И по поводу первого задания... а нет в лиспе ф-ций типа Maximum (a b c) ? и ещё раз спасибо ![]() |
|
Алина
11 сообщений |
#1197 2010-01-25 23:15 GMT+3 часа(ов) |
А можно как-нибудь не через if а через cond написать? :S у нас просто ещё такого не было...
|
|
Алина
11 сообщений |
#1198 2010-01-25 23:53 GMT+3 часа(ов) |
И ещё вопросик ясебе тут всю голову уже с этим лиспом сломала
вот есть функция и надо определить её значение (Eval (Cdr '(Quote '(a b c)))) - cdr возвращает список а Eval не работает со списками и выдаёт ошибку - значит эт лабуда так ? и (Eval(Car '(Quote '(J J)))) - мои женско-логические рассуждения ![]() (Car '(Quote '(J J)))) - т.к. Car возвращает только первый элемент то всё это вернёт нам Quote а Eval(Quote) вернёт нам Nil так почему интерпритатор МюЛисп возвращает мне Quote от изначального выражения? p.s. боже за что мне такие предметы :'( |
|
a.mutual.thrill
4 сообщений |
#1199 2010-01-26 00:08 GMT+3 часа(ов) |
Цитата (eval '(car (quote (a b c)))) -> a (eval '(cdr (quote (a b c)))) -> (b c) |
|
a.mutual.thrill
4 сообщений |
#1200 2010-01-26 00:11 GMT+3 часа(ов) |
Цитата (defun f (l) (cond ((null l) 0) (t (+ (car l) (f (cdr l)))))) (defun max2 (a b) (cond ((> a b) a) (t b))) (defun max3 (a b c) (max2 (max2 a b) c)) В common lisp есть функция (max ...) |
|
Алина
11 сообщений |
#1201 2010-01-26 00:13 GMT+3 часа(ов) |
(eval '(car (quote (a b c)))) -> a
(eval '(cdr (quote (a b c)))) -> (b c) Я с тобой согласна но только задание (eval(cdr '(quote '(a b c)))) -лабуда?!? (eval(car '(quote '(j j)))) - nill или quote и если можно обьясните почему интерпритатор думает не так как я ![]() |
|
Алина
11 сообщений |
#1202 2010-01-26 00:16 GMT+3 часа(ов) |
(defun max3 (a b c)
(max2 (max2 a b) c)) В common lisp есть функция (max ...) а в МюЛиспе нету ![]() сделай без Max пожалуйста отредактировал(а) Алина: 2010-01-26 00:22 GMT+3 часа(ов) |
|
a.mutual.thrill
4 сообщений |
#1204 2010-01-26 00:25 GMT+3 часа(ов) |
или
отредактировал(а) a.mutual.thrill: 2010-01-26 01:02 GMT+3 часа(ов) |
|
Алина
11 сообщений |
#1206 2010-01-26 00:30 GMT+3 часа(ов) |
Спасибо!!!
![]() ![]() |
|
Алина
11 сообщений |
#1207 2010-01-26 00:32 GMT+3 часа(ов) |
(eval(cdr '(quote '(a b c)))) -лабуда?!?
(eval(car '(quote '(j j)))) - nill или quote и если можно обьясните почему интерпритатор думает не так как я реши пожалуйста мои разногласия с интерпритатором ![]() и как сделать Определить функцию которая возвращает максимальное из 3х чисел. (без if и без Max) отредактировал(а) Алина: 2010-01-26 00:56 GMT+3 часа(ов) |
|
Алина
11 сообщений |
#1210 2010-01-26 01:12 GMT+3 часа(ов) |
Всё пасиба
![]() |
|
Алина
11 сообщений |
#1212 2010-01-26 01:27 GMT+3 часа(ов) |
если не трудно поясни что такое (t b)
|
|
a.mutual.thrill
4 сообщений |
#1214 2010-01-26 01:40 GMT+3 часа(ов) |
то же самое что и default в switch {} c/c++ или else в pascal |
|