В мире что-то сломалось
Oct. 4th, 2005 12:15 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Полез в Common LISP, чтобы проверить, как работают примеры для MAPx из "Мира Лиспа". Похоже, у разработчиков clisp'a и у авторов книжки разное видение того, как работает NCONC. Более того, там без полбутылки-то и не поймешь, что она делает.
no subject
Date: 2005-10-03 09:16 pm (UTC)no subject
Date: 2005-10-04 03:10 am (UTC)no subject
Date: 2005-10-03 10:12 pm (UTC)/me посмотрел там определение nconc из CL...
Ужас! Вот за это я люто ненавижу CL!!! Это append с побочным действием затирания всего, что ни попадя чем попало... :-(
А чем оно должно быть по "Миру лиспа"?
no subject
Date: 2005-10-03 10:13 pm (UTC)Чёрт, как я мог упустить такое!... :-/
no subject
Date: 2005-10-03 10:38 pm (UTC)Карринг я, боюсь, уже не успею осилить. Просто все, что на эту тему находится, написано в терминах хаскеля, с которым я знаком очень-очень поверхностно.
no subject
Date: 2005-10-03 10:50 pm (UTC)А с Головиным проблема такая, что он по-моему не ощущает себя на этом семинаре главным и следует тому, что говорит Столяров. А Столяров — фанат лиспа. В итоге когда я придумывал темы, передо мной поставили задачу "придумать темы, чтобы познакомить третий курс с лиспом". Так что проблема это не твоя с Олей...
Ну да ладно, у нас ещё есть один неназначенный доклад, можно будет придумать чего-нибудь интересное для него. (Пока что у меня в голове идея, чтобы это был рассказ про FP... Это очень интересный язык... Но с другой стороны, про FP уже в прошлом году рассказывали, можно рассказать и о чём-нибудь, о чём на семинаре не рассказывали, что будет новым и интересным не только третьему курсу... Благо интересного-то полно!)
no subject
Date: 2005-10-03 10:21 pm (UTC)В "Мире лиспа" есть примерно такая вещь:
(NCONC '(A . 1) '(B . 2) '(C . 3) )
Они ее сворачивают в (A B C), a CL - в (A B C . 3)
no subject
Date: 2005-10-03 10:23 pm (UTC)no subject
Date: 2005-10-03 10:45 pm (UTC)>(nconc '(a . (b c)) '(b . 2))
(A B C B . 2)
To есть какие-то точечные пары он глотает, а какие-то нет.
Впрочем, на доклад это, естессна, не повлияет. Просто неудачный пример на какое-то время осложнил понимание )
no subject
Date: 2005-10-03 10:51 pm (UTC)(a . (b c)) = (a b c)
по определению!!! Самый любимый способ подлавливать на самых простых задачках по лиспу :)no subject
Date: 2005-10-03 11:00 pm (UTC)no subject
Date: 2005-10-04 10:06 am (UTC)В случае CL это вопрос семантики
last
и выбора реализацииnconc
в случае одного аргумента.В случае "Мира лиспа" ситуация, видимо, та же, кроме того, что базисом рекурсии они используют ситуацию без аргументов.
Я всё никак не понимаю, в чём твои проблемы на этом месте. Я же говорил, что диалекты лиспа — это вообще ужасная вещь по тому, как они могут различаться. Мне вообще странно даже, что и в "Мире лиспа", и в CL есть nconc.
no subject
Date: 2005-10-05 07:48 pm (UTC)no subject
Date: 2005-10-05 07:58 pm (UTC)Ну или может потому, что CL вообще никак не координирвался с лиспом из книжки.
no subject
Date: 2005-10-05 08:54 pm (UTC)Хотя тут согласен, пути всяких изменений, вносимых разработчиками, неисповедимы )
no subject
Date: 2005-10-05 08:59 pm (UTC)Понятно, что Комиссия, которая сочиняла из кучи существовавших к тому моменту диалектов Common Lisp, ориентировалась в большей степени на промышленную применимость, соответственно лисп по Маккарти им был вовсе не указом.