Изучение Lisp
От: Astaroth Россия  
Дата: 07.01.05 13:30
Оценка: 1 (1)
Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.
По каким книгам это обычно делают?
http://livejournal.com/users/breqwas
Re: Изучение Lisp
От: eugals Россия  
Дата: 07.01.05 14:25
Оценка: 2 (1)
Здравствуйте, Astaroth, Вы писали:


A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.

A>По каким книгам это обычно делают?
Я изучал вот по этому, а потом по этому и этому.
... << RSDN@Home 1.1.4 @@subversion >>
Re: Изучение Lisp
От: Gaperton http://gaperton.livejournal.com
Дата: 08.01.05 18:50
Оценка: 16 (2)
Здравствуйте, Astaroth, Вы писали:


A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.

Аналогично
A>По каким книгам это обычно делают?
Ну не знаю, как обычно, но нармальные пацаны предпочитают курсы MIT.
здесь
Re: Изучение Lisp
От: Кодт Россия  
Дата: 10.01.05 18:08
Оценка: 1 (1)
Здравствуйте, Astaroth, Вы писали:

A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.

A>По каким книгам это обычно делают?

Был такой двухтомник "Мир Лиспа", написанный двумя финнами. М.:Мир,1990. Очень симпатичная книга, но, боюсь, только оффлайн.
Перекуём баги на фичи!
Re[2]: Изучение Lisp
От: fefelov Россия  
Дата: 10.01.05 21:44
Оценка: 46 (3) +1
Здравствуйте, Кодт, Вы писали:
К>Был такой двухтомник "Мир Лиспа", написанный двумя финнами. М.:Мир,1990. Очень симпатичная книга, но, боюсь, только оффлайн.
Я уже здесь постил — http://www.dvo.ru/tech/lisp/index.html — "Мир Лиспа" он-лайн
Re[2]: Изучение Lisp
От: Зверёк Харьковский  
Дата: 11.01.05 13:55
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Astaroth, Вы писали:


A>>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.

A>>По каким книгам это обычно делают?

К>Был такой двухтомник "Мир Лиспа", написанный двумя финнами. М.:Мир,1990. Очень симпатичная книга, но, боюсь, только оффлайн.


Слюшай, дарагой, зачем офлайн? В Гугл-джяне первый же ссылка: http://fenster.forestnet.org/docs/clisp/
Оно?
сам слушаю и вам рекомендую: в тишине сижу
FAQ — це мiй ай-кью!
Re[3]: Изучение Lisp
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 11.01.05 14:02
Оценка: 29 (4)
Здравствуйте, fefelov, Вы писали:

F>Здравствуйте, Кодт, Вы писали:

К>>Был такой двухтомник "Мир Лиспа", написанный двумя финнами. М.:Мир,1990. Очень симпатичная книга, но, боюсь, только оффлайн.
F>Я уже здесь постил — http://www.dvo.ru/tech/lisp/index.html — "Мир Лиспа" он-лайн

Можно и я чуток поучаствую ? Значится так Все, что Вам насоветовали — хорошо и правильно. Кроме того, крайне полезными (разумеется ИМХО) являются следующие книги:
1. http://mitpress.mit.edu/sicp/full-text/book/book.html. Эту книгу Вам уже советовали. И это, как мне кажется, лучшее из всего что есть. Повторно упоминаю ее потому, что есть русский перевод. Насколько мне известно какое-то издательство собиралось ее печатать, но что-то там не получилось и некоторое время перевод торчал в Интернете, откуда я ее успел качнуть. Правда, без английского оригинала все равно не обойтись, поскольку в русском переводе нет рисунков, но сам перевод очень даже ничего. Если нужно — мыльте и я перешлю. Объем в сжатом виде 3 Мб;
2. http://www-2.cs.cmu.edu/~dst/LispBook/. Очень ясная и понятная книга. В свободном доступе, но на английском.
3. Двухтомник финнов (ИМХО, конечно) уже староват, хотя читается интересно. Кое-какие разделы просто великолепны, но в целом я бы не советовал слишком на него ориентироваться.
4. Есть в эл.виде оригинальная книга создателя Лиспа Дж.МакКарти. Для начинающего она ни к чему. Книга написана довольно сухо и реферативно. И порядочно таки устарела (как никак ей уже сорок с лишним лет). Книга ценна на мой неискушенный взгляд 1). солидным математическим обоснованием предмета и 2). замечаниями и рассуждениями в стиле "Дисциплины программирования" Эдсгера Дейкстры.
5. П.Хендерсон "Функциональное программирование.Применение и реализация". Выходила в серии "Математическое обеспечение ЭВМ" в 1983 году. Хрен (извиняюсь за свой французский) Вы ее где-нибудь найдете, но если найдете — поздравляю. Книга из серии "ЧИТАТЬ ОБЯЗАТЕЛЬНО". На мой взгляд, из всех перечисленных книг, эта книга почти так же важна и интересна, как и самая первая из моего списка (см.выше).
В общем — успехов
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re[4]: Изучение Lisp
От: Зверёк Харьковский  
Дата: 11.01.05 14:34
Оценка:
Здравствуйте, fplab, Вы писали:

F>1. http://mitpress.mit.edu/sicp/full-text/book/book.html. Эту книгу Вам уже советовали. И это, как мне кажется, лучшее из всего что есть. Повторно упоминаю ее потому, что есть русский перевод. Насколько мне известно какое-то издательство собиралось ее печатать, но что-то там не получилось и некоторое время перевод торчал в Интернете, откуда я ее успел качнуть. Правда, без английского оригинала все равно не обойтись, поскольку в русском переводе нет рисунков, но сам перевод очень даже ничего. Если нужно — мыльте и я перешлю. Объем в сжатом виде 3 Мб;

Можно мне? zverok@imho.com.ua
Заранее спасибо
сам слушаю и вам рекомендую: в тишине сижу
FAQ — це мiй ай-кью!
Re[4]: Изучение Lisp
От: Трурль  
Дата: 11.01.05 15:20
Оценка: +1
Здравствуйте, fplab, Вы писали:

On Lisp забыли.
Re[5]: Изучение Lisp
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 11.01.05 15:32
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, fplab, Вы писали:


Т>On Lisp забыли.

Да, точно Спасибо — книга то, что надо.
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re: О Lisp-е
От: Gaperton http://gaperton.livejournal.com
Дата: 16.01.05 22:27
Оценка:
Хмм... А лисп-то рулит, господа! Я тут подумал — выходит, что принципиально невозможно создать язык с такими же простыми и могучими средствами метапрограммирования. Сила лиспа как раз в его @#$%$^& скобках, мать их! А точнее, в отсутствии грамматики.
Re[2]: : О Lisp-е
От: fefelov Россия  
Дата: 16.01.05 23:23
Оценка: 24 (1)
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/
Может пригодиться кому...
Re[2]: : О Lisp-е
От: Трурль  
Дата: 17.01.05 07:11
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Хмм... А лисп-то рулит, господа! Я тут подумал — выходит, что принципиально невозможно создать язык с такими же простыми и могучими средствами метапрограммирования. Сила лиспа как раз в его @#$%$^& скобках, мать их! А точнее, в отсутствии грамматики.

Ну, в прологе тоже средства метапрограммирования неслабые. Впрочем, причина та же.
Re[3]: [2]: : О Lisp-е
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 17.01.05 07:18
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Gaperton, Вы писали:


G>>Хмм... А лисп-то рулит, господа! Я тут подумал — выходит, что принципиально невозможно создать язык с такими же простыми и могучими средствами метапрограммирования. Сила лиспа как раз в его @#$%$^& скобках, мать их! А точнее, в отсутствии грамматики.

Т>Ну, в прологе тоже средства метапрограммирования неслабые. Впрочем, причина та же.

Кстати, коллеги ! Лисп & Пролог это, конечно, квадратиш практиш гут ! Но что касается метапрограммирования, то есть еще один язык — Рефал (http://www.refal.org/). Когда-то "Компьютерра" посвятила целый номер его создателю — Валентину Турчину. Поглядите, кому интересно.
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re: Изучение Lisp
От: Quintanar Россия  
Дата: 28.02.05 10:01
Оценка:
Здравствуйте, Astaroth, Вы писали:


A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.

A>По каким книгам это обычно делают?

Вот еще одна книга. Очень хорошее введение в язык, описываются многие фичи и много нетривиальных примеров. Книга в данный момент готовится к печати, поэтому позже может исчезнуть из открытого доступа — http://www.gigamonkeys.com/book/
Но есть в ней и минусы. Автор (Peter Seibel) явно императивщик, это заметно по его желанию все время что-нибуль присвоить переменным, по любви к массивам, объектам и т.п. Функциональному подходу уделено очень мало внимания, функции высшего порядка почти не используются. Поэтому не стоит читать эту книгу не имея представления о функциональном программировании.
Re: Ваше мнение о Lisp
От: Erick  
Дата: 02.03.05 11:57
Оценка:
Прочитав статью я выслушал ИМХО одного человека(автора статьи). Теперь хотелось бы выслушать мнения остальных, кто сталкивался с этим языком. Настолько ли он хорош и коково его будующее?
Re[2]: Ваше мнение о Lisp
От: Quintanar Россия  
Дата: 02.03.05 12:41
Оценка: 2 (1)
Здравствуйте, Erick, Вы писали:

E>Прочитав статью я выслушал ИМХО одного человека(автора статьи). Теперь хотелось бы выслушать мнения остальных, кто сталкивался с этим языком. Настолько ли он хорош и коково его будующее?


Как правильно заметил автор статьи, понять, что один язык мощнее другого, можно только изучив более мощный. Макросов Лиспа действительно нигде больше нет, и это действительно очень мощный инструмент. С другой стороны насколько я могу понять, фичи других языков (особенно mainstream) на Лиспе реализуются без особых проблем. Взять хотя бы макрос loop —
(loop for i from 1 to 10 do ....)
(loop for el in '(1 2 3) summing el into total finally (return total))
(loop for i in *random*
   counting (evenp i) into evens
   counting (oddp i) into odds
   summing i into total
   maximizing i into max
   minimizing i into min
   finally (return (list min max total evens odds)))

Да C# с С++ и рядом не валялся по возможностям циклов.
Поэтому Lisp изучить безусловно стоит.
Re: от модератора
От: Кодт Россия  
Дата: 25.04.05 18:42
Оценка: :)
Здравствуйте, все.
Короче, я ветку с "логом фтп" прибил.
"Ррразвели тут!... баррррдак!..."
Перекуём баги на фичи!
Re: Изучение Lisp
От: little_alex  
Дата: 27.04.05 14:41
Оценка: +1
Не у кого нет книги ANSI Common Lisp в электронном варианте.
Re[4]: Изучение Lisp
От: maxal  
Дата: 29.04.05 09:24
Оценка: +1
Здравствуйте, fplab, Вы писали:

F>1. http://mitpress.mit.edu/sicp/full-text/book/book.html

F>2. http://www-2.cs.cmu.edu/~dst/LispBook/
F>3. Двухтомник финнов
F>4. Есть в эл.виде оригинальная книга создателя Лиспа Дж.МакКарти.
F>5. П.Хендерсон "Функциональное программирование.Применение и реализация".
F>В общем — успехов

Вот это должно быть посовременнее.
Practical Common Lisp
http://www.gigamonkeys.com/book/
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[5]: Изучение Lisp
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 30.04.05 07:28
Оценка:
Здравствуйте, maxal, Вы писали:

M>Здравствуйте, fplab, Вы писали:


F>>1. http://mitpress.mit.edu/sicp/full-text/book/book.html

F>>2. http://www-2.cs.cmu.edu/~dst/LispBook/
F>>3. Двухтомник финнов
F>>4. Есть в эл.виде оригинальная книга создателя Лиспа Дж.МакКарти.
F>>5. П.Хендерсон "Функциональное программирование.Применение и реализация".
F>>В общем — успехов

M>Вот это должно быть посовременнее.

M>Practical Common Lisp
M>http://www.gigamonkeys.com/book/
Само собой — эта книга, естественно, современнее МакКарти сейчас актуален лишь для тех, кто интересуется историей и эволюцией ЛИСПа. А вот о книге П.Хендерсона этого никак не скажешь. Не смотря на то, что издан он был больше 20 лет назад, он столь же современен как и книги Кнута. Ведь если сравнить первое издание того же "Искусства программирования" (кажется 1976 года) и современные, то отличий совсем не много: убрали очепятки, обложка не матерчатая, а картонная и лакированная. Кстати, перевод в новом издании поправлен не в лучшую сторону (это, конечно, сугубо IMHO) Но внутри на 99.9% — то же самое. Но Кнут не устаревает и это правильно, товарищи
Аналогично и с Хендерсоном. Это концептуальная, но в то же время и очень практическая книга. Так что продолжаю ее рекомендовать
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Re[6]: Изучение Lisp
От: maxal  
Дата: 02.05.05 12:20
Оценка: +2 :))
Кнут, "Искусство программирования" — хорошая работа, это как математический справочник, маловероятно, что он устареет. Но, ведь, не учат математику по справочнику, или языки по словарю.

Хотя есть и другая крайность, некоторые люди в программировании сейчас видят не "Алгоритмы + Структуры данных = Программы", а "Программы = Кнопки + Тулбары".

Но, ведь как это у Мейерса, последний совет — "Improve your understanding of C++", вот для этого и стоит читать МакКарти, Хендерсона.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[4]: Изучение Lisp
От: T34 Россия  
Дата: 08.06.05 04:42
Оценка:
Здравствуйте, fplab, Вы писали:

F>1. http://mitpress.mit.edu/sicp/full-text/book/book.html. Эту книгу Вам уже советовали. И это, как мне кажется, лучшее из всего что есть. Повторно упоминаю ее потому, что есть русский перевод. Насколько мне известно какое-то издательство собиралось ее печатать, но что-то там не получилось и некоторое время перевод торчал в Интернете, откуда я ее успел качнуть. Правда, без английского оригинала все равно не обойтись, поскольку в русском переводе нет рисунков, но сам перевод очень даже ничего. Если нужно — мыльте и я перешлю. Объем в сжатом виде 3 Мб;


Если нетрудно, залейте, пожалуйста, этот перевод на drugs57@mail.ru.
Re[7]: Изучение Lisp
От: Noobi Россия fff
Дата: 08.06.05 07:08
Оценка:
Здравствуйте, maxal, Вы писали:

M>Кнут, "Искусство программирования" — хорошая работа, это как математический справочник, маловероятно, что он устареет. Но, ведь, не учат математику по справочнику, или языки по словарю.


Да ну. Никакой это не справочник, хорошая книга — легко и понятно читается подряд.
Re[4]: Изучение Lisp
От: Аноним  
Дата: 28.07.05 21:51
Оценка: 15 (1)
Здравствуйте, fplab, Вы писали:

F>1. http://mitpress.mit.edu/sicp/full-text/book/book.html. Эту книгу Вам уже советовали. И это, как мне кажется, лучшее из всего что есть. Повторно упоминаю ее потому, что есть русский перевод. Насколько мне известно какое-то издательство собиралось ее печатать, но что-то там не получилось и некоторое время перевод торчал в Интернете, откуда я ее успел качнуть. Правда, без английского оригинала все равно не обойтись, поскольку в русском переводе нет рисунков, но сам перевод очень даже ничего. Если нужно — мыльте и я перешлю. Объем в сжатом виде 3 Мб;


Только что сделал благое дело и положил собственноручно сконвертированную в pdf русскую SICP (aka Purple aka Wizard Book) (с картинками!) вот сюда:
http://tinyurl.com/a2yot
Перевод, кажется, и правда ничего.
Re[5]: Изучение Lisp
От: Кодёнок  
Дата: 29.07.05 07:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Только что сделал благое дело и положил собственноручно сконвертированную в pdf русскую SICP (aka Purple aka Wizard Book) (с картинками!) вот сюда:

А>http://tinyurl.com/a2yot
А>Перевод, кажется, и правда ничего.

Спасибо! У меня уже был русский PDF SICP, но настолько корявый, что иногда проще было читать английский. А исходники перевода можешь опубликовать?
Re[6]: Изучение Lisp
От: Аноним  
Дата: 29.07.05 09:17
Оценка:
Кё>Спасибо! У меня уже был русский PDF SICP, но настолько корявый, что иногда проще было читать английский. А исходники перевода можешь опубликовать?

Оригинал здесь: http://newstar.rinet.ru/~goga/sicp/sicp.ps.gz Там попорчена 113 страница и нужно руками вычищать мусор.
Re[6]: Изучение Lisp
От: opossum  
Дата: 29.07.05 11:07
Оценка: 47 (6)
Наличие перевода труда,
"Structure and Interpretation of Computer Programs",
являющегося вводным курсом в MIT
следует признать хорошей вещью.

прочтя эту книгу
http://newstar.rinet.ru/~goga/sicp/sicp.pdf

Вы сможете познакомится со следующими главами:

1. Построение абстракций с помощью процедур
2. Построение абстракций с помощью данных
3. Модульность объекты и состояние
4. Метаязыковая абстракция
5. Вычисления на регистровых машинах

По ходу дела разрываются различные интересные темы,
такие как:
* функциональный стиль,
(включая отложенные/ленивые вычисления и ленивые списки,
освещается роль рекурсии),
* ОО программирование и передача сообщений,
* вопросы сочетания/приведения типов и диспетчеризация по типам,
* символьные вычисления,
* системы с распространением ограничений,
* построение языков,
* абстрактные модели вычислений.

Текст сопровождается увлекательными ессе о построении абстракций и
моделей, синтаксическом сахаре, рекурсии, параллелизме, идентичности и
изменяемости.

Книга может быть рекомендована как студентам, так и опытным
специалистам — как углубляющая понимание программирования как
дисциплины, и идей реализованных в самых разных языках.

Что же касается качества перевода и доступности хорошей литературы, то
досточтимые коллеги забывают, что переводы в настоящее время зачастую
выполнятся энтузиастами в свободное от основной работы время.

Всегда интересно, посодействовал ли критик появлению, хотя бы одной
хорошей переводной книги в любой форме, кроме критики.

Например мне стало известно, от автора перевода, что издательство
планирует выпустить минимальный тираж — 1000 экземпляров, т.к. не
видит спроса со слов автора перевода: "ожидается, что продать будет
тяжело".

Итого предлагаю интересующимся:
1. Прочесть книгу Structure and Interpretation of Computer Programs,
на доступном им языке и в удобном формате.
2. Поблагодарить автора перевода: Юрия Бронникова (George Bronnikov),
за возможность познакомится с этим трудом, для тех, кто,
затрудняется читать 550 стр с экрана в HTML формате на
английском языке или заказать эту книгу за $$$ от туда,
и теперь имеет возможность распечатать и прочесть SICP
это по-русски.
3. Возможно следует попросить автора написать аннотацию на RSDN,
приурочив ее в выходу книги.
Уж 1000 тираж думаю раскупят.
Критики смогут поднапрячься, предложить изменения,
и второй тираж будет лучше (перевод) и больше (экземпляров).

Ссылка на книгу (pdf): http://newstar.rinet.ru/~goga/sicp/sicp.pdf
Оригинал (html): http://mitpress.mit.edu/sicp/full-text/book/book.html
Re[7]: Изучение Lisp
От: Кодёнок  
Дата: 29.07.05 12:24
Оценка:
Здравствуйте, opossum, Вы писали:

O>Наличие перевода труда,

O>"Structure and Interpretation of Computer Programs",
O>являющегося вводным курсом в MIT
O>следует признать хорошей вещью.
O>Вы сможете познакомится со следующими главами:

Расслабься, тут не международный научный семинар

O> Уж 1000 тираж думаю раскупят.

O> Критики смогут поднапрячься, предложить изменения,
O> и второй тираж будет лучше (перевод) и больше (экземпляров).

Кто издает? И дай ссылку на издательство, если есть.
Re[8]: Изучение Lisp
От: opossum  
Дата: 29.07.05 13:17
Оценка:
O>>"Structure and Interpretation of Computer Programs",
O>>Вы сможете познакомится со следующими главами:
Кё>Расслабься, тут не международный научный семинар
Тут дается обзор литературы.
Что посчитал нужным и интересным другим читателям, то и написал.
Если бы не сломанное поломанное копирование русских букв из pdf,
конвертированного из формата ps, просто приложил бы оглавление.

O>> Уж 1000 тираж думаю раскупят.

O>> Критики смогут поднапрячься, предложить изменения,
O>> и второй тираж будет лучше (перевод) и больше (экземпляров).

Кё>Кто издает? И дай ссылку на издательство, если есть.

Запросил. Будет ответ — отпишу.
Re[9]: Изучение Lisp
От: Кодёнок  
Дата: 29.07.05 13:52
Оценка:
Здравствуйте, opossum, Вы писали:

O>>>"Structure and Interpretation of Computer Programs",

O>>>Вы сможете познакомится со следующими главами:
O>Тут дается обзор литературы.
O>Что посчитал нужным и интересным другим читателям, то и написал.
O>Если бы не сломанное поломанное копирование русских букв из pdf,
O>конвертированного из формата ps, просто приложил бы оглавление.

Не думаю, что эта книга нуждается в рекламе Но на всякий случай вот:

Оглавление
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Предисловие ко второму изданию . . . . . . . . . . . . . . . . . . . . . vii
Предисловие к первому изданию . . . . . . . . . . . . . . . . . . . . . . ix
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1 Построение абстракций с помощью процедур 1
1.1 Элементы программирования . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Имена и окружение . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3 Вычисление комбинаций . . . . . . . . . . . . . . . . . . . 7
1.1.4 Составные процедуры . . . . . . . . . . . . . . . . . . . . . 10
1.1.5 Подстановочная модель применения процедуры . . . . . . 11
1.1.6 Условные выражения и предикаты . . . . . . . . . . . . . . 14
1.1.7 Пример: вычисление квадратного корня методом Ньютона 18
1.1.8 Процедуры как абстракции типа «черный ящик» . . . . . 22
1.2 Процедуры и порождаемые ими процессы . . . . . . . . . . . . . . 26
1.2.1 Линейные рекурсия и итерация . . . . . . . . . . . . . . . 27
1.2.2 Древовидная рекурсия . . . . . . . . . . . . . . . . . . . . 31
1.2.3 Порядки роста . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.2.4 Возведение в степень . . . . . . . . . . . . . . . . . . . . . 38
1.2.5 Нахождение наибольшего общего делителя . . . . . . . . 41
1.2.6 Пример: проверка на простоту . . . . . . . . . . . . . . . . 42
1.3 Формулирование абстракций с помощью процедур высших по-
рядков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
1.3.1 Процедуры в качестве аргументов . . . . . . . . . . . . . . 48
1.3.2 Построение процедур с помощью lambda . . . . . . . . . 53
1.3.3 Процедуры как обобщенные методы . . . . . . . . . . . . . 56
1.3.4 Процедуры как возвращаемые значения . . . . . . . . . . . 61
2 Построение абстракций с помощью данных 69
2.1 Введение в абстракцию данных . . . . . . . . . . . . . . . . . . . 72
2.1.1 Пример: арифметические операции над рациональными
числами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1.2 Барьеры абстракции . . . . . . . . . . . . . . . . . . . . . . 76
2.1.3 Что значит слово «данные»? . . . . . . . . . . . . . . . . . 78
2.1.4 Расширенный пример: интервальная арифметика . . . . . 81
2.2 Иерархические данные и свойство замыкания . . . . . . . . . . . 84
2.2.1 Представление последовательностей . . . . . . . . . . . . . 86
2.2.2 Иерархические структуры . . . . . . . . . . . . . . . . . . . 93
i
2.2.3 Последовательности как стандартные интерфейсы . . . . . 98
2.2.4 Пример: язык описания изображений . . . . . . . . . . . . 109
2.3 Символьные данные . . . . . . . . . . . . . . . . . . . . . . . . . . 124
2.3.1 Кавычки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
2.3.2 Пример: символьное дифференцирование . . . . . . . . . . 127
2.3.3 Пример: представление множеств . . . . . . . . . . . . . . 132
2.3.4 Пример: деревья кодирования по Хаффману . . . . . . . . 140
2.4 Множественные представления для абстрактных данных . . . . . 147
2.4.1 Представления комплексных чисел . . . . . . . . . . . . . 149
2.4.2 Помеченные данные . . . . . . . . . . . . . . . . . . . . . . 152
2.4.3 Программирование, управляемое данными, и аддитивность 156
2.5 Системы с обобщенными операциями . . . . . . . . . . . . . . . . 163
2.5.1 Обобщенные арифметические операции . . . . . . . . . . . 164
2.5.2 Сочетание данных различных типов . . . . . . . . . . . . . 168
2.5.3 Пример: символьная алгебра . . . . . . . . . . . . . . . . . 175
3 Модульность, объекты и состояние 189
3.1 Присваивание и внутреннее состояние объектов . . . . . . . . . . 190
3.1.1 Внутренние переменные состояния . . . . . . . . . . . . . 191
3.1.2 Преимущества присваивания . . . . . . . . . . . . . . . . . 196
3.1.3 Издержки, связанные с введением присваивания . . . . . 200
3.2 Модель вычислений с окружениями . . . . . . . . . . . . . . . . . 205
3.2.1 Правила вычисления . . . . . . . . . . . . . . . . . . . . . 206
3.2.2 Применение простых процедур . . . . . . . . . . . . . . . . 209
3.2.3 Кадры как хранилище внутреннего состояния . . . . . . . 212
3.2.4 Внутренние определения . . . . . . . . . . . . . . . . . . . 216
3.3 Моделирование при помощи изменяемых данных . . . . . . . . . 219
3.3.1 Изменяемая списковая структура . . . . . . . . . . . . . . 219
3.3.2 Представление очередей . . . . . . . . . . . . . . . . . . . . 227
3.3.3 Представление таблиц . . . . . . . . . . . . . . . . . . . . . 232
3.3.4 Имитация цифровых схем . . . . . . . . . . . . . . . . . . 237
3.3.5 Распространение ограничений . . . . . . . . . . . . . . . . 248
3.4 Параллелизм: время имеет значение . . . . . . . . . . . . . . . . . 257
3.4.1 Природа времени в параллельных системах . . . . . . . . 258
3.4.2 Механизмы управления параллелизмом . . . . . . . . . . . 262
3.5 Потоки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
3.5.1 Потоки как задержанные списки . . . . . . . . . . . . . . . 275
3.5.2 Бесконечные потоки . . . . . . . . . . . . . . . . . . . . . . 282
3.5.3 Использование парадигмы потоков . . . . . . . . . . . . . 288
3.5.4 Потоки и задержанное вычисление . . . . . . . . . . . . . 299
3.5.5 Модульность функциональных программ и модульность
объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
4 Метаязыковая абстракция 309
4.1 Метациклический интерпретатор . . . . . . . . . . . . . . . . . . . 312
4.1.1 Ядро интерпретатора . . . . . . . . . . . . . . . . . . . . . 313
4.1.2 Представление выражений . . . . . . . . . . . . . . . . . . 317
4.1.3 Структуры данных интерпретатора . . . . . . . . . . . . . 324
4.1.4 Выполнение интерпретатора как программы . . . . . . . . 328
4.1.5 Данные как программы . . . . . . . . . . . . . . . . . . . . 331
ii
iii
4.1.6 Внутренние определения . . . . . . . . . . . . . . . . . . . 333
4.1.7 Отделение синтаксического анализа от выполнения . . . . 338
4.2 Scheme с вариациями: ленивый интерпретатор . . . . . . . . . . . 342
4.2.1 Нормальный порядок вычислений и аппликативный поря-
док вычислений . . . . . . . . . . . . . . . . . . . . . . . . 343
4.2.2 Интерпретатор с ленивым вычислением . . . . . . . . . . . 345
4.2.3 Потоки как ленивые списки . . . . . . . . . . . . . . . . . 351
4.3 Scheme с вариациями — недетерминистское вычисление . . . . . 354
4.3.1 Amb и search . . . . . . . . . . . . . . . . . . . . . . . . . 356
4.3.2 Примеры недетерминистских программ . . . . . . . . . . . 359
4.3.3 Реализация amb-интерпретатора . . . . . . . . . . . . . . . 366
4.4 Логическое программирование . . . . . . . . . . . . . . . . . . . . 376
4.4.1 Дедуктивный поиск информации . . . . . . . . . . . . . . . 379
4.4.2 Как действует система обработки запросов . . . . . . . . . 389
4.4.3 Является ли логическое программирование математиче-
ской логикой? . . . . . . . . . . . . . . . . . . . . . . . . . 396
4.4.4 Реализация запросной системы . . . . . . . . . . . . . . . 401
5 Вычисления на регистровых машинах 421
5.1 Проектирование регистровых машин . . . . . . . . . . . . . . . . 422
5.1.1 Язык для описания регистровых машин . . . . . . . . . . 425
5.1.2 Абстракция в проектировании машин . . . . . . . . . . . . 428
5.1.3 Подпрограммы . . . . . . . . . . . . . . . . . . . . . . . . . 430
5.1.4 Реализация рекурсии с помощью стека . . . . . . . . . . . 434
5.1.5 Обзор системы команд . . . . . . . . . . . . . . . . . . . . 442
5.2 Программа моделирования регистровых машин . . . . . . . . . . 443
5.2.1 Модель машины . . . . . . . . . . . . . . . . . . . . . . . . 444
5.2.2 Ассемблер . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
5.2.3 Порождение исполнительных процедур для команд . . . . 451
5.2.4 Отслеживание производительности машины . . . . . . . . 457
5.3 Выделение памяти и сборка мусора . . . . . . . . . . . . . . . . . 460
5.3.1 Память как векторы . . . . . . . . . . . . . . . . . . . . . . 460
5.3.2 Иллюзия бесконечной памяти . . . . . . . . . . . . . . . . 465
5.4 Вычислитель с явным управлением . . . . . . . . . . . . . . . . . 471
5.4.1 Ядро вычислителя с явным управлением . . . . . . . . . . 472
5.4.2 Вычисление последовательностей и хвостовая рекурсия . 478
5.4.3 Условные выражения, присваивания и определения . . . . 480
5.4.4 Запуск вычислителя . . . . . . . . . . . . . . . . . . . . . . 482
5.5 Компиляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
5.5.1 Структура компилятора . . . . . . . . . . . . . . . . . . . . 490
5.5.2 Компиляция выражений . . . . . . . . . . . . . . . . . . . . 495
5.5.3 Компиляция комбинаций . . . . . . . . . . . . . . . . . . . 500
5.5.4 Сочетание последовательностей команд . . . . . . . . . . . 506
5.5.5 Пример скомпилированного кода . . . . . . . . . . . . . . . 509
5.5.6 Лексическая адресация . . . . . . . . . . . . . . . . . . . . 517
5.5.7 Связь скомпилированного кода с вычислителем . . . . . . 520
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Предметный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . 535


У меня нормально скопировалось.

Кё>>Кто издает? И дай ссылку на издательство, если есть.

O>Запросил. Будет ответ — отпишу.
Re[10]: Изучение Lisp
От: opossum  
Дата: 29.07.05 19:19
Оценка:
Кё>У меня нормально скопировалось.
2 Кодёнок:
А можно попросить ссылку ?
Т.к. не удобно работать с документом
когда в моей версии копирование
и поиск не работают?
---

Что бы не плодить злостный off-topic, приведу для интересующихся
ссылку:

Educational Uses of the WWW at MIT
http://web.mit.edu/is/courseweb/courses.html

собственно обсуждаемая нами книга находится в разделе:
# Electrical Engineering and Computer Science
* 6.001 Structure and Interpretation of Computer Programs

По мимо этого там много других полезных курсов и статей в данном
разделе. Хотя читая их начинаешь чувствовать себя не уютно, в смысле
сравнивая уровень тех документов, что можешь сам выдать, как
сопроводительную документацию к своим проектам, по отношению к тем что
производит MIT.
Re[11]: Изучение Lisp
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.07.05 06:32
Оценка:
Здравствуйте, opossum, Вы писали:

O>Т.к. не удобно работать с документом

O>когда в моей версии копирование
O>и поиск не работают?

В PDF-е? Отпчатай его в постскрипт, а потом дистиллиром обратно в PDF переведи. Будет тебе и копироваться и искаться.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Изучение Lisp
От: cranky Украина  
Дата: 29.08.05 11:53
Оценка:
A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.
A>По каким книгам это обычно делают?

Почитав Common Lisp the Language, 2nd Edition, захотелось поглядеть на иерархию типов сего чуда, так сказать, en masse. В инете не нашёл, нарисовал сам. Замечания будут?
You aren't expected to absorb this
Re[2]: Изучение Lisp
От: fefelov Россия  
Дата: 18.09.05 12:04
Оценка:
Еще одна книжка для начинающих нашлась:

Successful Lisp: How to Understand and Use Common Lisp
Re: Изучение Lisp
От: Аноним  
Дата: 22.09.06 09:13
Оценка: -1
Здравствуйте, Astaroth, Вы писали:


A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.

A>По каким книгам это обычно делают?

Похоже единственный сборник книг по лисп http://www.torrentz.com/torrent_881694.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.