![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Кстати, вот SICP на вебе.
По предисловию: "Стал основой текстовых редакторОВ, шеллОВ и CAD-ОВ". Где теперь те редакторы, или тот ЛИСП в них? Аддоны к Автокаду давно пишут на плюсах и т.д. SchemeShell - кто им пользуется? EMACS-ом пользутся, но он своё отживает - есть Eclipse. "Хорошая ОС, но в ней хреновый текстовый редактор".
Замена итерации на рекурсию требует некоторой практики мышления - особенно на "хвостовую" рекурсию, которую Лисп-машина таки-развернёт в итерацию.
* Синтаксис :) Оказывается, в нём есть-таки локальные имена.
Подстановочная и нормальная модели вычисления. Оказывается, Лисп-программу можно вычислять разными путями :)
* Отслеживание породжаемого процесса в Лисп-машине. Хвостовая и "деревянная" рекурсии имеют очень-очень разное воздействие на выполнение программы, а заметить разницу достаточно сложно - минус Лиспу.
* Как легко решается задачка о размене монет. Почти как на Прологе, тоьлко больше скобок :)
* Передача процедур параметром или возвращаемым значением. С этим всё понятно, это мы до сих пор видели только в виде неудобоваримых function objects. Ну ничего, разгрызём libboost_lambda, ещё не ту будет :)
Кстати, почитал туториал по libboost_lambda. А знаете, не так страшен чёрт, как его малюют. Очень приятный синтаксис :) Но опасный. Есть шанс запутать текст на плюсах ещё хуже чем на Лиспе :)
* Почему Лисп-программы из упражнений первой главы будут вычисляться по-разонму, если их считать в разных моделях. Если эти программы корректны, конечно. См. упражнение 1.5:
Ben Bitdiddle has invented a test to determine whether the interpreter he is faced with is using applicative-order evaluation or normal-order evaluation. He defines the following two procedures:
Then he evaluates the expression
- может, здесь для аппликативной модели просто будет бесконечная рекурсия? Тогда программа решает свою задачу, мягко скажем, неоптимально.
* Есть ли принципиальное отличие определения функции (deffunc в Common Lisp) от define, setq и let? Я знаю, что они немного отличаются синтаксически, но отличаются ли функционально?
* Что в русском PDF-е SICP-а с чарсетом? На PC показывает русские буквы, но Copy-n-Paste вклеивает мусор в кодировке us-ascii. Наладонник показывает тот же us-ascii. Может, кто-то знает, как подредактироват этот PDF на предмет информации о чарсете?
Просьба остальным участникам трека, хоть они и далеко впереди, просмотреть первые главы и написать аналогичный документик.
Потом его можно распечатать и предложить остальным пройтись по нему.
Да, Саша Долгин так и не получил от нас вразумительного ответа, что же хорошо писать на Лиспе, кроме неизвестных почти никому задач ИИ. Будем искать :)
Цитаты:
(Сергей забыл на работе документы на машину) "Бегать за документами ногами - это по си-плюс-плюсному. Позвони гардам".
(по поводу каких-то рецептов того, как писать хороший код) "Чтобы попки были сухими и чистыми, их надо чисить и сушить".
По предисловию: "Стал основой текстовых редакторОВ, шеллОВ и CAD-ОВ". Где теперь те редакторы, или тот ЛИСП в них? Аддоны к Автокаду давно пишут на плюсах и т.д. SchemeShell - кто им пользуется? EMACS-ом пользутся, но он своё отживает - есть Eclipse. "Хорошая ОС, но в ней хреновый текстовый редактор".
Замена итерации на рекурсию требует некоторой практики мышления - особенно на "хвостовую" рекурсию, которую Лисп-машина таки-развернёт в итерацию.
Что было нового
* Синтаксис :) Оказывается, в нём есть-таки локальные имена.
Подстановочная и нормальная модели вычисления. Оказывается, Лисп-программу можно вычислять разными путями :)
* Отслеживание породжаемого процесса в Лисп-машине. Хвостовая и "деревянная" рекурсии имеют очень-очень разное воздействие на выполнение программы, а заметить разницу достаточно сложно - минус Лиспу.
* Как легко решается задачка о размене монет. Почти как на Прологе, тоьлко больше скобок :)
* Передача процедур параметром или возвращаемым значением. С этим всё понятно, это мы до сих пор видели только в виде неудобоваримых function objects. Ну ничего, разгрызём libboost_lambda, ещё не ту будет :)
Кстати, почитал туториал по libboost_lambda. А знаете, не так страшен чёрт, как его малюют. Очень приятный синтаксис :) Но опасный. Есть шанс запутать текст на плюсах ещё хуже чем на Лиспе :)
Что осталось непонятным
* Почему Лисп-программы из упражнений первой главы будут вычисляться по-разонму, если их считать в разных моделях. Если эти программы корректны, конечно. См. упражнение 1.5:
Ben Bitdiddle has invented a test to determine whether the interpreter he is faced with is using applicative-order evaluation or normal-order evaluation. He defines the following two procedures:
(define (p) (p))
(define (test x y)
(if (= x 0)
0
y))
Then he evaluates the expression
(test 0 (p))
- может, здесь для аппликативной модели просто будет бесконечная рекурсия? Тогда программа решает свою задачу, мягко скажем, неоптимально.
* Есть ли принципиальное отличие определения функции (deffunc в Common Lisp) от define, setq и let? Я знаю, что они немного отличаются синтаксически, но отличаются ли функционально?
* Что в русском PDF-е SICP-а с чарсетом? На PC показывает русские буквы, но Copy-n-Paste вклеивает мусор в кодировке us-ascii. Наладонник показывает тот же us-ascii. Может, кто-то знает, как подредактироват этот PDF на предмет информации о чарсете?
Просьба остальным участникам трека, хоть они и далеко впереди, просмотреть первые главы и написать аналогичный документик.
Потом его можно распечатать и предложить остальным пройтись по нему.
Да, Саша Долгин так и не получил от нас вразумительного ответа, что же хорошо писать на Лиспе, кроме неизвестных почти никому задач ИИ. Будем искать :)
Цитаты:
(Сергей забыл на работе документы на машину) "Бегать за документами ногами - это по си-плюс-плюсному. Позвони гардам".
(по поводу каких-то рецептов того, как писать хороший код) "Чтобы попки были сухими и чистыми, их надо чисить и сушить".
Tags:
(no subject)
22/11/05 07:44 (UTC)(no subject)
22/11/05 07:51 (UTC)