Лисп/Литература: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Нет описания правки
мНет описания правки
Строка 2: Строка 2:
[[Лисп/Историософия|Природные особенности Лиспа]] привели к тому, что хорошая учебная литература о нём расходится по двум дидактическим крайностям. В одной — исчерпывающие, мелко покрошенные спецификации конкретных лисповых машин, реализаций или отдельных аспектов строения столь многоаспектного языка. В другой — учебники отдельных отраслей науки и техники, применяющие Лисп если и не всегда в крайне специальных примерах, то так или иначе «применяющие…», — без претензий на всестороннее мастерство в обращении именно с Лиспом.
[[Лисп/Историософия|Природные особенности Лиспа]] привели к тому, что хорошая учебная литература о нём расходится по двум дидактическим крайностям. В одной — исчерпывающие, мелко покрошенные спецификации конкретных лисповых машин, реализаций или отдельных аспектов строения столь многоаспектного языка. В другой — учебники отдельных отраслей науки и техники, применяющие Лисп если и не всегда в крайне специальных примерах, то так или иначе «применяющие…», — без претензий на всестороннее мастерство в обращении именно с Лиспом.


Однако за последние 10-20 лет (т. е. уже́ после стандартизации диалектов Common Lisp и Scheme) развитие информационных технологий вошло в турбулентную фазу, и теперь любой взмах бабочкиного крыла где-нибудь в Европе, — даже такой неуклюжий, как, например, WWW, Linux, PHP или <small>(ох, батюшки святы…)</small> ColdFusion, — может вызвать торнадо форумов, проектов… — порою даже новых революционных парадигм! — в Силиконовой долине.
Однако за последние 10-20 лет (уже́ после стандартизации диалектов Common Lisp и Scheme) развитие информационных технологий вошло в турбулентную фазу, и теперь любой взмах бабочкиного крыла где-нибудь в Европе, — даже такой неуклюжий, как, например, WWW, Linux, PHP или <small>(ох, батюшки святы…)</small> ColdFusion, — может вызвать торнадо форумов, проектов… — порою даже новых революционных парадигм! — в Силиконовой долине.


Такая непогода мутит перспективу общего состояния дел в вычислительных профессиях. Для каждой системы программирования появляются учебники, порочащие репутацию соответствующих технологий самой лишь попыткой казаться авторитетным завершённым их описанием («изучи Джаву за два часа»). Имплицитно такие учебники ставят свой язык в центр программистской вселенной, представляя его как универсальное средство… и обычно делая это на примерах вычисления факториалов или работе с реляционными базами данных. Наш учебник, в силу установленных [[Лисп|в начале]] стремлений, сможет избежать такой судьбы.
Такая непогода мутит перспективу общего состояния дел в вычислительных профессиях. Для каждой системы программирования появляются учебники, порочащие репутацию соответствующих технологий самой лишь попыткой казаться авторитетным завершённым их описанием («изучи Джаву за два часа»). Имплицитно такие учебники ставят свой язык в центр программистской вселенной, представляя его как универсальное средство… и обычно делая это на примерах вычисления факториалов или работе с реляционными базами данных. Наш учебник, в силу описанных [[Лисп|в начале]] стремлений, сможет избежать такой судьбы.
</div>
==«Строение и толкование компьютерных программ»==
Хэролд Абелсон и Гералд Сассман, профессора Массачусетсского технологического института
{{Эпиграф|Раз Лисп не мэйнстримный язык, то почему же мы берём его за основу наших рассуждений о программировании? Потому, что этот язык имеет уникальные особенности, делающие его отличной средой для исследования важных программных конструкций и структур данных, и для их соотношения с языковыми свойствами, их поддерживающими.
{{Подпись|(из первой главы)}}}}
<div style="max-width:52em;margin:1em auto 0 4%;">
Книга канона если и не информатики, то уж «разработки программного обеспечения» автоматом. [http://mitpress.mit.edu/sicp/ Английский оригинал] и [http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ видеозаписи лекций]
общедоступны, [http://lj.rossia.org/users/gogabr/65698.html?view=393122 русский перевод] вышел в печатном издании, но также и доступен в Сети.
</div>
</div>
==«Мир Лиспа»==
==«Мир Лиспа»==
Э. Хювёнен и И. Сеппянен
Э. Хювёнен и И. Сеппянен
<div style="max-width:52em;margin:1em auto 0 4%;">
<div style="max-width:52em;margin:1em auto 0 4%;">
На русском языке пока известно одно дидактическое издание, посвящённое самому Лиспу — «Двухтомник финских программистов» — ([http://www.ystok.ru/lisp/ru/links.html Хювенен Э., Сеппянен И. Мир Лиспа. В 2-х т. - М.: Мир, 1990]); да и то перевод. В Рунете ее повсюду хаят и бранят за рассмотрение одних только основ, — дескать, она годится только как самое общее введение. Действительно, после прочтения одной этой книги вы, скорее всего, не сможете писать полноценные программы, зато получите полное представление о том, как работает язык, узнаете много полезных тонкостей. Вы близко познакомитесь с рекурсией — мощным инструментом, часто упускаемом в других вводных учебниках, написанных провинциальными программистами. На такой ноте мы перейдём к следующей доступной в Сети книги о Лиспе на русском языке:
На русском языке пока известно одно более-менее законченное дидактическое издание, посвящённое самому Лиспу — «Двухтомник финских программистов» — ([http://www.ystok.ru/lisp/ru/links.html Хювенен Э., Сеппянен И. Мир Лиспа. В 2-х т. - М.: Мир, 1990]); да и то перевод. В Рунете ее повсюду хаят и бранят за рассмотрение одних только основ, — дескать, она годится только как самое общее введение. Действительно, после прочтения одной этой книги вы, скорее всего, не сможете писать полноценные программы, зато получите полное представление о том, как работает язык, узнаете много полезных тонкостей. Вы близко познакомитесь с рекурсией — мощным инструментом, часто упускаемом в других вводных учебниках, написанных провинциальными программистами. На такой ноте мы перейдём к следующей доступной в Сети книги о Лиспе на русском языке:
</div>
</div>
==«Практический Общий Лисп»==
==«Практический Общий Лисп»==
Питер Зейбель
Питер Зейбель
{{Эпиграф|Прочитанное понравилось? Так подсоби же разнести слух. Рекомендуй эту книгу своим друзьям. Напиши отзыв на Амазоне. Запости в свой блог. Дай линк со своего сайта. Ну и ваще. Эй-пресс ведь рискнули, издавая эту книгу, когда как иные издательства мнили, будто рынок не захочет книгу про Лисп. Хотя я вряд ли разбогатею с гонорара, нам не обязательно распродать такой уж огромный тираж, чтобы наварить Эйпрессу прибыль и показать негативщикам, что Лисп ещё очень даже шевелится.
{{Эпиграф|Прочитанное понравилось? Так подсоби же разнести слух. Рекомендуй эту книгу своим друзьям. Напиши отзыв на Амазоне. Запости в свой блог. Дай линк со своего сайта. Ну и ваще. «Эй-пресс» ведь рискнули, издавая эту книгу, когда как иные издательства мнили, будто рынок не захочет книгу про Лисп. Хотя я вряд ли разбогатею с гонорара, нам не обязательно распродать такой уж огромный тираж, чтобы наварить Эйпрессу прибыль и показать негативщикам, что Лисп ещё очень даже шевелится.
{{Подпись|— Питер Зейбель на [http://gigamonkeys.com/book/ сайте] своей книги «Прэктикал Коммон Лисп»}}}}
{{Подпись|— Питер Зейбель на [http://gigamonkeys.com/book/ сайте] своей книги «Прэктикал Коммон Лисп»}}}}
<div style="max-width:52em;margin:1em auto 0 4%;">
<div style="max-width:52em;margin:1em auto 0 4%;">
Строка 19: Строка 27:


Мы будем ссылаться на русский перевод (благо, он также сделан в вики-среде) вместо пояснения частных конструкций Общего Лиспа, — вроде того же КЛОСа (см. [http://pcl.catap.ru/doku.php?id=pcl:oopgenericfunctions соответствующую главу в общедоступном переводе]).
Мы будем ссылаться на русский перевод (благо, он также сделан в вики-среде) вместо пояснения частных конструкций Общего Лиспа, — вроде того же КЛОСа (см. [http://pcl.catap.ru/doku.php?id=pcl:oopgenericfunctions соответствующую главу в общедоступном переводе]).
</div>
==«Структура и толкование компьютерных программ»==
Хэролд Абелсон и Гералд Сассман, профессора Массачусетсского технологического института
{{Эпиграф|Раз Лисп не мэйнстримный язык, то почему же мы берём его за основу наших рассуждений о программировании? Потому, что этот язык имеет уникальные особенности, делающие его отличной средой для исследования важных программных конструкций и структур данных, и для их соотношения с языковыми свойствами, их поддерживающими.
{{Подпись|(из первой главы)}}}}
<div style="max-width:52em;margin:1em auto 0 4%;">
Книга канона если и не информатики, то уж «разработки программного обеспечения» автоматом. [http://mitpress.mit.edu/sicp/ Английский оригинал] и [http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ видеозаписи лекций]
общедоступны, [http://lj.rossia.org/users/gogabr/65698.html?view=393122 русский перевод] вышел в печатном издании.
</div>
</div>
==На английском языке==
==На английском языке==
<div style="max-width:52em;margin:1em auto 0 4%;">
<div style="max-width:52em;margin:1em auto 0 4%;">
Мы не стали бы советовать читателям нашего русского учебника английскую литературу по Лиспу, если бы та литература не была столь важной в понимании Лиспа, а часто — и ключевых понятий информатики.
Мы не стали бы советовать читателям нашего русского учебника английскую литературу по Лиспу, если бы та литература не была всё ещё незаменимой в понимании Лиспа, а часто — и ключевых понятий информатики.
</div>
===[http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html Common Lisp the Language]===
Guy L. Steele Jr., 1984, 1990 (2nd. edition)
<div style="max-width:52em;margin:1em auto 0 4%;">
Завершённое описание языка от репутабельнейшего автора, теснейше знакомого с началами Common Lisp’а.
</div>
</div>
===The Anatomy of Lisp===
===The Anatomy of Lisp===
Строка 42: Строка 37:
<div style="max-width:52em;margin:1em auto 0 4%;">
<div style="max-width:52em;margin:1em auto 0 4%;">
Такое резюме весьма расходится со впечатлением заглавия — «Анатомия Лиспа». Действительно, средний язык программирования в своей «анатомии» имеет что угодно, но не философские камни понимания основ информатики. Но Лисп — не средний язык программирования, и книга это раскрывает с академическим тщанием.
Такое резюме весьма расходится со впечатлением заглавия — «Анатомия Лиспа». Действительно, средний язык программирования в своей «анатомии» имеет что угодно, но не философские камни понимания основ информатики. Но Лисп — не средний язык программирования, и книга это раскрывает с академическим тщанием.
</div>
===[http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html Common Lisp the Language]===
Guy L. Steele Jr., 1984, 1990 (2nd. edition)
<div style="max-width:52em;margin:1em auto 0 4%;">
Завершённое описание языка от репутабельнейшего автора, теснейше знакомого с началами Common Lisp’а.
</div>
</div>
===[http://paulgraham.com/onlisptext.html On Lisp]===
===[http://paulgraham.com/onlisptext.html On Lisp]===

Версия от 21:35, 20 января 2009

Природные особенности Лиспа привели к тому, что хорошая учебная литература о нём расходится по двум дидактическим крайностям. В одной — исчерпывающие, мелко покрошенные спецификации конкретных лисповых машин, реализаций или отдельных аспектов строения столь многоаспектного языка. В другой — учебники отдельных отраслей науки и техники, применяющие Лисп если и не всегда в крайне специальных примерах, то так или иначе «применяющие…», — без претензий на всестороннее мастерство в обращении именно с Лиспом.

Однако за последние 10-20 лет (уже́ после стандартизации диалектов Common Lisp и Scheme) развитие информационных технологий вошло в турбулентную фазу, и теперь любой взмах бабочкиного крыла где-нибудь в Европе, — даже такой неуклюжий, как, например, WWW, Linux, PHP или (ох, батюшки святы…) ColdFusion, — может вызвать торнадо форумов, проектов… — порою даже новых революционных парадигм! — в Силиконовой долине.

Такая непогода мутит перспективу общего состояния дел в вычислительных профессиях. Для каждой системы программирования появляются учебники, порочащие репутацию соответствующих технологий самой лишь попыткой казаться авторитетным завершённым их описанием («изучи Джаву за два часа»). Имплицитно такие учебники ставят свой язык в центр программистской вселенной, представляя его как универсальное средство… и обычно делая это на примерах вычисления факториалов или работе с реляционными базами данных. Наш учебник, в силу описанных в начале стремлений, сможет избежать такой судьбы.

«Строение и толкование компьютерных программ»

Хэролд Абелсон и Гералд Сассман, профессора Массачусетсского технологического института

Раз Лисп не мэйнстримный язык, то почему же мы берём его за основу наших рассуждений о программировании? Потому, что этот язык имеет уникальные особенности, делающие его отличной средой для исследования важных программных конструкций и структур данных, и для их соотношения с языковыми свойствами, их поддерживающими.

(из первой главы)

Книга канона если и не информатики, то уж «разработки программного обеспечения» автоматом. Английский оригинал и видеозаписи лекций общедоступны, русский перевод вышел в печатном издании, но также и доступен в Сети.

«Мир Лиспа»

Э. Хювёнен и И. Сеппянен

На русском языке пока известно одно более-менее законченное дидактическое издание, посвящённое самому Лиспу — «Двухтомник финских программистов» — (Хювенен Э., Сеппянен И. Мир Лиспа. В 2-х т. - М.: Мир, 1990); да и то перевод. В Рунете ее повсюду хаят и бранят за рассмотрение одних только основ, — дескать, она годится только как самое общее введение. Действительно, после прочтения одной этой книги вы, скорее всего, не сможете писать полноценные программы, зато получите полное представление о том, как работает язык, узнаете много полезных тонкостей. Вы близко познакомитесь с рекурсией — мощным инструментом, часто упускаемом в других вводных учебниках, написанных провинциальными программистами. На такой ноте мы перейдём к следующей доступной в Сети книги о Лиспе на русском языке:

«Практический Общий Лисп»

Питер Зейбель

Прочитанное понравилось? Так подсоби же разнести слух. Рекомендуй эту книгу своим друзьям. Напиши отзыв на Амазоне. Запости в свой блог. Дай линк со своего сайта. Ну и ваще. «Эй-пресс» ведь рискнули, издавая эту книгу, когда как иные издательства мнили, будто рынок не захочет книгу про Лисп. Хотя я вряд ли разбогатею с гонорара, нам не обязательно распродать такой уж огромный тираж, чтобы наварить Эйпрессу прибыль и показать негативщикам, что Лисп ещё очень даже шевелится.

— Питер Зейбель на сайте своей книги «Прэктикал Коммон Лисп»

Вышедшая книга Петера Зейбеля «Practical Common Lisp», поначалу рецензированная «программистами на Лиспе» и анонимами с форумов, была впоследствии примечена обществом и даже переведена на русский язык народными усилиями.

Мы будем ссылаться на русский перевод (благо, он также сделан в вики-среде) вместо пояснения частных конструкций Общего Лиспа, — вроде того же КЛОСа (см. соответствующую главу в общедоступном переводе).

На английском языке

Мы не стали бы советовать читателям нашего русского учебника английскую литературу по Лиспу, если бы та литература не была всё ещё незаменимой в понимании Лиспа, а часто — и ключевых понятий информатики.

The Anatomy of Lisp

John Allen, 1978

This book uses LISP as a means for relating topics which normally get treated in several separate courses. The point is not that we can do this in LISP, but rather that it is natural to do it in LISP. The high-level notation for algorithms is beneficial in explaining and understanding complex algorithms. The use of abstract data structures and abstract LISP programs shows the intent of structured programming and step-wise refinement. Much of the current work in mathematical theories of computation is based on LISP-like languages. Thus LISP is a formalism for describing algorithms, for writing programs, and for proving properties of algorithms. We use data structures as the main thread in our discussions because a proper appreciation of data structures as abstract objects is a necessary prerequisite to an understanding of modern computer science.

Такое резюме весьма расходится со впечатлением заглавия — «Анатомия Лиспа». Действительно, средний язык программирования в своей «анатомии» имеет что угодно, но не философские камни понимания основ информатики. Но Лисп — не средний язык программирования, и книга это раскрывает с академическим тщанием.

Common Lisp the Language

Guy L. Steele Jr., 1984, 1990 (2nd. edition)

Завершённое описание языка от репутабельнейшего автора, теснейше знакомого с началами Common Lisp’а.

On Lisp

Paul Graham, 1990

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

[…]