Автор | Сообщение |
irishka753
10 сообщений |
#764 2009-12-15 12:18 GMT+3 часа(ов) |
В универе дали задание: "Определить функцию (ПЕРЕВЕР L), которая записывает элементы списка в обратном порядке." Я преподу принесла выполненное задание:
define (ПЕРЕВЕР(lambda (l)) (cond (null l) l) ( t ( cons (car l) (ПЕРЕВЕР (cdr l))))) )) Препод говорит, что здесь получится тот же список, что был исходным. Нужно исправить какую-то мелочь, тогда всё будет в порядке. Помогите пож-та доделать работу! (И ЕЩЁ: Я ПРАВИЛЬНО РАССТАВИЛА СКОБКИ?) |
|
VH
289 сообщений |
#766 2009-12-15 14:44 GMT+3 часа(ов) |
Хювёнен-Сеппянен "Мир Лиспа" т.1:
(defun REVERSE1 (L) |
|
irishka753
10 сообщений |
#767 2009-12-16 16:57 GMT+3 часа(ов) |
А что здесь означает append?
|
|
_lee
69 сообщений |
#768 2009-12-16 18:53 GMT+3 часа(ов) |
Без APPEND даже проще:
|
|
VH
289 сообщений |
#769 2009-12-16 20:45 GMT+3 часа(ов) |
> _lee
А вдруг в Scheme нет &optional параметров? > irishka753 (append) - встроенная функция, «склеивающая» (то есть <официально> объединяющая) списки. |
|
VH
289 сообщений |
#770 2009-12-16 21:01 GMT+3 часа(ов) |
А вот еще вариант
Хювёнен-Сеппянен "Мир Лиспа" т.1 (с некоторой «доработкой»): (defun REV (L) участвуют исключительно(!) БАЗОВЫЕ функции. |
|
ufasoft
20 сообщений |
#771 2009-12-17 02:37 GMT+3 часа(ов) |
VH>А вдруг в Scheme нет &optional параметров?
завести вспомогательную функцию с 2 параметрами и вызывать ее |
|
irishka753
10 сообщений |
#779 2009-12-18 14:22 GMT+3 часа(ов) |
Ребята, большое спасибо! Вы меня выручили. VH, последний вариант самый наипонятный ))
Если честно, фразу "А вдруг в Scheme нет &optional параметров?" не поняла. Scheme - это прога для ЛИСПа? |
|
VH
289 сообщений |
#781 2009-12-18 15:50 GMT+3 часа(ов) |
Scheme - это Ваш диалект LISPа, на это слово define прямо указывает.
|
|
irishka753
10 сообщений |
#805 2009-12-22 12:22 GMT+3 часа(ов) |
Ребята, засада! Препод то ли жутко вредничает, то ли чего-то хочет... Он забраковал все предложенные вами варианты, сказал, что я "слишком намудрила". Предлагает в программе использовать дополнительный список, напр-р Х, который изначально будет пуст. Выдёргивать по одному элементу из L, вставлять в Х - так типа получится правильный порядок. Помогите написать это грамотно, чтоб придраться было не к чему!
|
|
misha![]()
1275 сообщений |
#808 2009-12-22 16:12 GMT+3 часа(ов) |
(define (reverse input-list) > (reverse '(a b c d e f)) (f e d c b a) ![]() |
|
VH
289 сообщений |
#809 2009-12-22 16:18 GMT+3 часа(ов) |
Программировать с учетом уровня некомпетентности препода - довольно ЗАБАВНО.
У племянника <грызущего гранит углубленно, в том числе с "личным" преподом> в школе «преподавательница физики» сказанула: "Стирай всё с доски - таких формул НЕ БЫВАЕТ". То, что препод предложил - ровно то, что в сообщении _lee #768. А ежели препод хочет, чтобы было (setq) как на Бейсике - так Бейсик бы и преподавал. |
|
misha![]()
1275 сообщений |
#810 2009-12-22 16:40 GMT+3 часа(ов) |
У препода тоже интернет есть
![]() С человеком достаточно поговорить, чтобы понять разбирается ли он в предмете. Думаю, разговор с иришкой будет не долгим... ИМХО, схема не сложнее барсика, а вот последний знать бы не помешало. |
|
VH
289 сообщений |
#811 2009-12-22 16:52 GMT+3 часа(ов) |
Достаточно услышать из уст препода <как оценку работы> "...слишком намудрила...", чтобы понять, что сам препод умственных усилий <панически> боится, особенно предложение их со стороны сайта (ха-ха), а конкурировать с сайтом (чтобы на сайте студент предлагал продукт умственного труда препода, а не наоборот) сил-то и нету.
|
|
misha![]()
1275 сообщений |
#812 2009-12-22 17:05 GMT+3 часа(ов) |
Да, преподы сейчас ленивые пошли. Раньше бывало объяснят, разжуют и диплом напишут
![]() А теперь: - Вы мне мешаете, не видите я первокурсников арифметики учу! ![]() - Так Зарумшан, смотри два пальца плюс два пальца. Сколько будет пальцев? Считай на калькуляторе, если умеешь. Вот так то. |
|
irishka753
10 сообщений |
#813 2009-12-22 17:40 GMT+3 часа(ов) |
Не, ну вот это вот
(define (reverse input-list) (let get-reverse ((input-list input-list) (new-list '())) (if (null? input-list) new-list (get-reverse (cdr input-list) (cons (car input-list) new-list))))) Мне вообще трудно понять. Можете немного прокомментировать? Я не утверждаю, что ЛИСП понимаю. Мне до Вас, ребята ещё ого-го сколько... |
|
LispUser
20 сообщений |
#815 2009-12-22 18:38 GMT+3 часа(ов) |
irishka753 Может,
|
|
misha![]()
1275 сообщений |
#816 2009-12-22 19:15 GMT+3 часа(ов) |
А сиЁ на каком диалекте
![]() |
|
misha![]()
1275 сообщений |
#818 2009-12-22 21:41 GMT+3 часа(ов) |
Коль все молчат! Может так тебе будет понятнее:
P.S. Если это не понятно: > (cons 'x '(y z)) (x y z) > (cons 'x '()) (x) > (cons '(x y) 'z)) ((x y) . z) рекомендую дать взятку ![]() отредактировал(а) misha: 2009-12-22 21:53 GMT+3 часа(ов) |
|
irishka753
10 сообщений |
#834 2009-12-23 13:13 GMT+3 часа(ов) |
misha, я не знакома с таким способом записи. Что такое input-list, или как понимать get-reverse, а уж что означает null?, я даже не предполагаю(зачем знак вопроса нужен???). Боюсь, что он не примет у меня это решение, сказав, что я опять намудрила. Он мне недавно выдал, что ф-ии if нет в ЛИСПе.
А взятку он вряд ли будет брать. Он немного сдвинутый. Весь семестр нам рассказывал, что человек рождён для того, чтобы преодолевать трудности и что мудрей самим себе эти трудности создавать, нежели чтоб они свалились на голову неожиданно. И обещал нам в этом помогать. |
|
misha![]()
1275 сообщений |
#835 2009-12-23 13:53 GMT+3 часа(ов) |
Жесть! Короче, быстро и внимательно проработай краткое руководство. Важно: набирай примеры в интерпритаторе, изменяй их, а затем анализируй результат. За 8 часов смему даже школьник на 50% осилит, тут главное упорство.
отредактировал(а) misha: 2009-12-23 14:47 GMT+3 часа(ов) |
|
LispUser
20 сообщений |
#838 2009-12-23 15:18 GMT+3 часа(ов) |
irishka753, какой у Вас институт?
Цитата Scheme? Кстати, спасибо за ссылку на руководство. |
|
misha![]()
1275 сообщений |
#840 2009-12-23 15:39 GMT+3 часа(ов) |
ЦитатаДа не за что! ![]() ![]() |
|
irishka753
10 сообщений |
#871 2009-12-24 18:12 GMT+3 часа(ов) |
LispUser, в СГУ я учусь...
misha, спасибо за ссылочку )) ...изучаю... |
|
misha![]()
1275 сообщений |
#876 2009-12-24 19:44 GMT+3 часа(ов) |
ЦитатаС этого и надо было начинать ![]() |
|
VH
289 сообщений |
#880 2009-12-24 19:59 GMT+3 часа(ов) |
Препод не соизволил сообщить студентам, что будет им Scheme преподавать,
|
|
misha![]()
1275 сообщений |
#881 2009-12-24 20:07 GMT+3 часа(ов) |
Может это и не схема, а какой нибудь-другой диалект.
|
|