A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp. A>По каким книгам это обычно делают?
Я изучал вот по этому, а потом по этому и этому.
A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp.
Аналогично A>По каким книгам это обычно делают?
Ну не знаю, как обычно, но нармальные пацаны предпочитают курсы MIT. здесь
Здравствуйте, Кодт, Вы писали: К>Был такой двухтомник "Мир Лиспа", написанный двумя финнами. М.:Мир,1990. Очень симпатичная книга, но, боюсь, только оффлайн.
Я уже здесь постил — http://www.dvo.ru/tech/lisp/index.html — "Мир Лиспа" он-лайн
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Astaroth, Вы писали:
A>>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp. A>>По каким книгам это обычно делают?
К>Был такой двухтомник "Мир Лиспа", написанный двумя финнами. М.:Мир,1990. Очень симпатичная книга, но, боюсь, только оффлайн.
Здравствуйте, 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 году. Хрен (извиняюсь за свой французский) Вы ее где-нибудь найдете, но если найдете — поздравляю. Книга из серии "ЧИТАТЬ ОБЯЗАТЕЛЬНО". На мой взгляд, из всех перечисленных книг, эта книга почти так же важна и интересна, как и самая первая из моего списка (см.выше).
В общем — успехов
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Здравствуйте, fplab, Вы писали:
F>1. http://mitpress.mit.edu/sicp/full-text/book/book.html. Эту книгу Вам уже советовали. И это, как мне кажется, лучшее из всего что есть. Повторно упоминаю ее потому, что есть русский перевод. Насколько мне известно какое-то издательство собиралось ее печатать, но что-то там не получилось и некоторое время перевод торчал в Интернете, откуда я ее успел качнуть. Правда, без английского оригинала все равно не обойтись, поскольку в русском переводе нет рисунков, но сам перевод очень даже ничего. Если нужно — мыльте и я перешлю. Объем в сжатом виде 3 Мб;
Можно мне? zverok@imho.com.ua
Заранее спасибо
Хмм... А лисп-то рулит, господа! Я тут подумал — выходит, что принципиально невозможно создать язык с такими же простыми и могучими средствами метапрограммирования. Сила лиспа как раз в его @#$%$^& скобках, мать их! А точнее, в отсутствии грамматики.
Здравствуйте, Gaperton, Вы писали:
G>Хмм... А лисп-то рулит, господа! Я тут подумал — выходит, что принципиально невозможно создать язык с такими же простыми и могучими средствами метапрограммирования. Сила лиспа как раз в его @#$%$^& скобках, мать их! А точнее, в отсутствии грамматики.
Ну, в прологе тоже средства метапрограммирования неслабые. Впрочем, причина та же.
Здравствуйте, Трурль, Вы писали:
Т>Здравствуйте, Gaperton, Вы писали:
G>>Хмм... А лисп-то рулит, господа! Я тут подумал — выходит, что принципиально невозможно создать язык с такими же простыми и могучими средствами метапрограммирования. Сила лиспа как раз в его @#$%$^& скобках, мать их! А точнее, в отсутствии грамматики. Т>Ну, в прологе тоже средства метапрограммирования неслабые. Впрочем, причина та же.
Кстати, коллеги ! Лисп & Пролог это, конечно, квадратиш практиш гут ! Но что касается метапрограммирования, то есть еще один язык — Рефал (http://www.refal.org/). Когда-то "Компьютерра" посвятила целый номер его создателю — Валентину Турчину. Поглядите, кому интересно.
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp. A>По каким книгам это обычно делают?
Вот еще одна книга. Очень хорошее введение в язык, описываются многие фичи и много нетривиальных примеров. Книга в данный момент готовится к печати, поэтому позже может исчезнуть из открытого доступа — http://www.gigamonkeys.com/book/
Но есть в ней и минусы. Автор (Peter Seibel) явно императивщик, это заметно по его желанию все время что-нибуль присвоить переменным, по любви к массивам, объектам и т.п. Функциональному подходу уделено очень мало внимания, функции высшего порядка почти не используются. Поэтому не стоит читать эту книгу не имея представления о функциональном программировании.
Прочитав статью я выслушал ИМХО одного человека(автора статьи). Теперь хотелось бы выслушать мнения остальных, кто сталкивался с этим языком. Настолько ли он хорош и коково его будующее?
Здравствуйте, 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 изучить безусловно стоит.
Здравствуйте, 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% — то же самое. Но Кнут не устаревает и это правильно, товарищи
Аналогично и с Хендерсоном. Это концептуальная, но в то же время и очень практическая книга. Так что продолжаю ее рекомендовать
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
Кнут, "Искусство программирования" — хорошая работа, это как математический справочник, маловероятно, что он устареет. Но, ведь, не учат математику по справочнику, или языки по словарю.
Хотя есть и другая крайность, некоторые люди в программировании сейчас видят не "Алгоритмы + Структуры данных = Программы", а "Программы = Кнопки + Тулбары".
Но, ведь как это у Мейерса, последний совет — "Improve your understanding of C++", вот для этого и стоит читать МакКарти, Хендерсона.
Здравствуйте, fplab, Вы писали:
F>1. http://mitpress.mit.edu/sicp/full-text/book/book.html. Эту книгу Вам уже советовали. И это, как мне кажется, лучшее из всего что есть. Повторно упоминаю ее потому, что есть русский перевод. Насколько мне известно какое-то издательство собиралось ее печатать, но что-то там не получилось и некоторое время перевод торчал в Интернете, откуда я ее успел качнуть. Правда, без английского оригинала все равно не обойтись, поскольку в русском переводе нет рисунков, но сам перевод очень даже ничего. Если нужно — мыльте и я перешлю. Объем в сжатом виде 3 Мб;
Если нетрудно, залейте, пожалуйста, этот перевод на drugs57@mail.ru.
Здравствуйте, maxal, Вы писали:
M>Кнут, "Искусство программирования" — хорошая работа, это как математический справочник, маловероятно, что он устареет. Но, ведь, не учат математику по справочнику, или языки по словарю.
Да ну. Никакой это не справочник, хорошая книга — легко и понятно читается подряд.
Здравствуйте, 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
Перевод, кажется, и правда ничего.
Здравствуйте, Аноним, Вы писали:
А>Только что сделал благое дело и положил собственноручно сконвертированную в pdf русскую SICP (aka Purple aka Wizard Book) (с картинками!) вот сюда: А>http://tinyurl.com/a2yot А>Перевод, кажется, и правда ничего.
Спасибо! У меня уже был русский PDF SICP, но настолько корявый, что иногда проще было читать английский. А исходники перевода можешь опубликовать?
Re[6]: Изучение Lisp
От:
Аноним
Дата:
29.07.05 09:17
Оценка:
Кё>Спасибо! У меня уже был русский PDF SICP, но настолько корявый, что иногда проще было читать английский. А исходники перевода можешь опубликовать?
1. Построение абстракций с помощью процедур
2. Построение абстракций с помощью данных
3. Модульность объекты и состояние
4. Метаязыковая абстракция
5. Вычисления на регистровых машинах
По ходу дела разрываются различные интересные темы,
такие как:
* функциональный стиль,
(включая отложенные/ленивые вычисления и ленивые списки,
освещается роль рекурсии),
* ОО программирование и передача сообщений,
* вопросы сочетания/приведения типов и диспетчеризация по типам,
* символьные вычисления,
* системы с распространением ограничений,
* построение языков,
* абстрактные модели вычислений.
Текст сопровождается увлекательными ессе о построении абстракций и
моделей, синтаксическом сахаре, рекурсии, параллелизме, идентичности и
изменяемости.
Книга может быть рекомендована как студентам, так и опытным
специалистам — как углубляющая понимание программирования как
дисциплины, и идей реализованных в самых разных языках.
Что же касается качества перевода и доступности хорошей литературы, то
досточтимые коллеги забывают, что переводы в настоящее время зачастую
выполнятся энтузиастами в свободное от основной работы время.
Всегда интересно, посодействовал ли критик появлению, хотя бы одной
хорошей переводной книги в любой форме, кроме критики.
Например мне стало известно, от автора перевода, что издательство
планирует выпустить минимальный тираж — 1000 экземпляров, т.к. не
видит спроса со слов автора перевода: "ожидается, что продать будет
тяжело".
Итого предлагаю интересующимся:
1. Прочесть книгу Structure and Interpretation of Computer Programs,
на доступном им языке и в удобном формате.
2. Поблагодарить автора перевода: Юрия Бронникова (George Bronnikov),
за возможность познакомится с этим трудом, для тех, кто,
затрудняется читать 550 стр с экрана в HTML формате на
английском языке или заказать эту книгу за $$$ от туда,
и теперь имеет возможность распечатать и прочесть SICP
это по-русски.
3. Возможно следует попросить автора написать аннотацию на RSDN,
приурочив ее в выходу книги.
Уж 1000 тираж думаю раскупят.
Критики смогут поднапрячься, предложить изменения,
и второй тираж будет лучше (перевод) и больше (экземпляров).
Здравствуйте, opossum, Вы писали:
O>Наличие перевода труда, O>"Structure and Interpretation of Computer Programs", O>являющегося вводным курсом в MIT O>следует признать хорошей вещью. O>Вы сможете познакомится со следующими главами:
Расслабься, тут не международный научный семинар
O> Уж 1000 тираж думаю раскупят. O> Критики смогут поднапрячься, предложить изменения, O> и второй тираж будет лучше (перевод) и больше (экземпляров).
Кто издает? И дай ссылку на издательство, если есть.
O>>"Structure and Interpretation of Computer Programs", O>>Вы сможете познакомится со следующими главами: Кё>Расслабься, тут не международный научный семинар
Тут дается обзор литературы.
Что посчитал нужным и интересным другим читателям, то и написал.
Если бы не сломанное поломанное копирование русских букв из pdf,
конвертированного из формата ps, просто приложил бы оглавление.
O>> Уж 1000 тираж думаю раскупят. O>> Критики смогут поднапрячься, предложить изменения, O>> и второй тираж будет лучше (перевод) и больше (экземпляров).
Кё>Кто издает? И дай ссылку на издательство, если есть.
Запросил. Будет ответ — отпишу.
Здравствуйте, opossum, Вы писали:
O>>>"Structure and Interpretation of Computer Programs", O>>>Вы сможете познакомится со следующими главами: O>Тут дается обзор литературы. O>Что посчитал нужным и интересным другим читателям, то и написал. O>Если бы не сломанное поломанное копирование русских букв из pdf, O>конвертированного из формата ps, просто приложил бы оглавление.
Не думаю, что эта книга нуждается в рекламе Но на всякий случай вот:
Кё>У меня нормально скопировалось.
2 Кодёнок:
А можно попросить ссылку ?
Т.к. не удобно работать с документом
когда в моей версии копирование
и поиск не работают?
---
Что бы не плодить злостный off-topic, приведу для интересующихся
ссылку:
собственно обсуждаемая нами книга находится в разделе:
# Electrical Engineering and Computer Science
* 6.001 Structure and Interpretation of Computer Programs
По мимо этого там много других полезных курсов и статей в данном
разделе. Хотя читая их начинаешь чувствовать себя не уютно, в смысле
сравнивая уровень тех документов, что можешь сам выдать, как
сопроводительную документацию к своим проектам, по отношению к тем что
производит MIT.
A>Собственно, прочитав эту статью, решил-таки попробовать изучить Lisp. A>По каким книгам это обычно делают?
Почитав Common Lisp the Language, 2nd Edition, захотелось поглядеть на иерархию типов сего чуда, так сказать, en masse. В инете не нашёл, нарисовал сам. Замечания будут?