avva: (Default)
[personal profile] avva
В этом году исполняется 50 лет языку Лисп.

В честь этого события я распечатал и прочитал LISP 1.5 Programmer's Manual, полную спецификацию первой версии Лиспа, которая широко распостранилась за пределами MIT. Это 62-й год. Очень интересная книга. Забавно наблюдать смешение универсального и конкретных подробностей имплементации на архитектуре IBM 7090, одного из больших компьютеров того времени (32k слов по 36 бит каждое - около 140kb памяти в сегодняшних байтах).

Одна из самых странных особенностей этой книги с точки зрения современного Лиспа состоит в том, что к тому времени Маккарти еще не отказался от отдельного синтаксиса для M-expressions - мета-языка программ, отдельного от S-expressions, из которых состоит собственно Лисп. Все алгоритмы в книге написаны на M-expressions, и отдельно указано, как переводить их в программы для системы LISP. Это обстоятельство не мешает LISP 1.5 "схлопывать" уровни данных, программ, и интерпретатора программ, как это свойственно Лиспу в целом, просто это схлопывание не столь очевидно выражено в книге, из-за использования отдельного метаязыка для описания большинства функций.

Один из лучших советов, которые я могу дать программистам, стремящимся расширить свой кругозор: выучите Лисп. Это далеко не так страшно, не так сложно, и не так архаично, как кажется издалека; вы многому научитесь и на многое сможете смотреть по-другому, даже и продолжая работать с любым другим языком.

Я изучил Лисп год назад, после того, как много лет - больше десяти - это откладывал по тем или иным зряшным причинам. Современный учебник, который обычно хвалят знатоки Лиспа - Practical Common Lisp - заслуживает все эти похвалы, и доступен как в виде книги, так и в сетевой версии. Сделайте себе одолжение, и если вы хотите научиться чему-то новому в 2008 году, и еще не знаете Лисп, попробуйте ее прочитать.

Date: 2008-01-04 09:02 pm (UTC)
From: [identity profile] amigofriend.livejournal.com
Спасибо за совет. Поставить что ли в планы на год "расширение кругозора"?

П.ЭС. Именные часы не желаешь?
http://amigofriend.livejournal.com/560743.html

;)

Date: 2008-01-04 09:52 pm (UTC)

Date: 2008-01-04 09:08 pm (UTC)
From: [identity profile] alexott.livejournal.com
может быть даже не лисп, а схему - тогда очень пригодится sicp. в общем, схема даже наверное лучше - сам язык проще по сравнению с лиспом

Date: 2008-01-04 09:44 pm (UTC)
From: [identity profile] avva.livejournal.com
Проще, но с другой стороны больше соблазн во время обучения списать его как игрушечный теоретический язык (хоть это и недалекая точка зрения).

В Лиспе начинаешь ценить его многонастроенность, и богатый набор примитивов, и, я думаю, новичку он более убедительным будет в качестве практически полезного языка, чем схема.

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2008-01-04 10:35 pm (UTC) - Expand

(no subject)

From: [identity profile] pingva.livejournal.com - Date: 2008-01-05 12:49 am (UTC) - Expand

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2008-01-05 01:06 am (UTC) - Expand

Date: 2008-01-04 09:30 pm (UTC)
From: [identity profile] theukrainian.livejournal.com
Image (http://www.flickr.com/photos/carlzimmer/sets/72157601351535771/)

Date: 2008-01-04 09:31 pm (UTC)
From: [identity profile] ex-alexkon.livejournal.com
А как относятся знатоки Лиспа к Scheme? Хвалят или ругают? В «Practical Common Lisp» в сносках иногда упоминаются отличия Scheme, но без углубления в детали. Насколько я понимаю, разница между этими диалектами Лиспа (http://community.schemewiki.org/?scheme-vs-common-lisp) не ограничиваются парой-тройкой мелочей. Не могу решить, что выбрать для подробного ознакомления: Common Lisp или Scheme? Интересно узнать скорее не факты о наличии/отсутствии фич, а личные впечатления человека, который писал и читал код на обоих языках.

Date: 2008-01-04 09:36 pm (UTC)
From: [identity profile] alexott.livejournal.com
если быстро учить, то выбор за схеме - язык очень простой, по сравнению с common lisp. но в коммон лиспе есть много интересных и удобных вещей, например, CLOS. Правда сейчас стандарт Scheme становится больше и сложнее.
у меня был опыт коммерческого программирования на схеме, конкретно на mzscheme - так что могу ее порекомендовать. А common lisp у меня для всяких моих поделок :-)

Date: 2008-01-04 09:38 pm (UTC)
From: [identity profile] grundik.livejournal.com
Изучать лучше scheme, а промышленно писать на common lisp.

Date: 2008-01-04 09:46 pm (UTC)
From: [identity profile] avva.livejournal.com
Я бы сказал, что во-первых лучше Common Lisp, а во-вторых, это не очень важный выбор. Важнее начать один из них, чем пытаться выбрать между двумя :)

(я не писал код на схеме, впрочем)

Date: 2008-01-04 10:29 pm (UTC)
From: [identity profile] smilga.livejournal.com
Писал на обоих, и сейчас Коммон у меня один из основных языков разработки. На мой взгляд, большой разницы, с чего начинать, нет. (Так для зрелого программиста; юноше, обдумывающему житьё, начинать скорее стоит со Схемы.)

кстати, забыл

Date: 2008-01-04 09:38 pm (UTC)
From: [identity profile] alexott.livejournal.com
есть проект перевода Practical Common Lisp на русский язык - http://pcl.catap.ru
Проект пока в стадии перевода, хотя много что переведено, но требуется вычитка. Я надеюсь, что ссылка будет полезна для многих

Date: 2008-01-04 09:55 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Я несколько раз садился за изучение лиспа и схемы, и ни разу не дошел до стадии, когда мог бы сказать, что я "знаю" этот (эти) язык(и). Однако, основные концепции, все же, знаю. Вот и думаю, стоит ли - если практической пользы не ожидается (разве что я вдруг перейду с вима на имакс :)).

Date: 2008-01-04 09:56 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Что интересно в этом всем, это осознание того, что люди, изучавшие самые первые версии лиспа в универе, только сейчас выходят на пенсию.

(no subject)

From: [identity profile] spamsink.livejournal.com - Date: 2008-01-04 10:03 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2008-01-04 10:10 pm (UTC) - Expand

(no subject)

From: [identity profile] pingva.livejournal.com - Date: 2008-01-05 01:14 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2008-01-05 04:28 pm (UTC) - Expand

(no subject)

From: [identity profile] potan.livejournal.com - Date: 2008-01-05 01:41 pm (UTC) - Expand

Date: 2008-01-04 09:56 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Много лет назад мне кто-то рассказывал, что Схеме пытались учить детей с отставанием в развитии, и даже чему-то научили - якобы лучше, чем процедурным языкам.

Date: 2008-01-04 10:18 pm (UTC)
stas: (Don't panic!)
From: [personal profile] stas
T.e. теперь тот факт, что мне не удалось толком выучить Схему, можно толковать как свидетельство отсутствия отставаний в моем развитии?

(no subject)

From: [identity profile] spamsink.livejournal.com - Date: 2008-01-04 10:22 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2008-01-04 10:30 pm (UTC) - Expand

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2008-01-04 10:54 pm (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2008-01-05 07:17 am (UTC) - Expand

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2008-01-05 07:25 am (UTC) - Expand

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2008-01-05 08:02 am (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2008-01-05 08:18 am (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2008-01-05 04:59 am (UTC) - Expand

(no subject)

From: [identity profile] spamsink.livejournal.com - Date: 2008-01-05 05:08 am (UTC) - Expand

Date: 2008-01-04 10:00 pm (UTC)
From: [identity profile] jerom.livejournal.com
А что больше смысла учить: lisp или haskell, если я сейчас не знаком ни с одним?

Date: 2008-01-04 10:04 pm (UTC)
From: [identity profile] avva.livejournal.com
Лисп. Он намного сильнее отзывается в других языках и ситуациях. Хаскель больше замкнут в себе, своих понятиях и идиомах. Его тоже очень стоит изучить, но я бы посоветовал начать с Лиспа.

(no subject)

From: [identity profile] http://users.livejournal.com/_navi_/ - Date: 2008-01-04 10:14 pm (UTC) - Expand

(no subject)

From: [identity profile] kouzdra.livejournal.com - Date: 2008-01-04 10:17 pm (UTC) - Expand

(no subject)

From: [identity profile] ahaxopet.livejournal.com - Date: 2008-01-05 01:02 am (UTC) - Expand

Date: 2008-01-04 10:00 pm (UTC)
From: [identity profile] kot-begemot.livejournal.com
Честно говоря, лисп как язык совершенно не вызывает никакого желания его учить. То есть совсем. Может быть потому что я уже лет пятнадцать его использую?

Date: 2008-01-04 10:42 pm (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
Сейчас читаю SICP, почти через силу. Не знаю почему, но очень неприятно писать упраженения, нет ощущения выливающегося кода на кончиках пальцев, а то что выходит или то что видишь в книге - противно выглядит... Во многом из-за "словесности" кода, и что одна конструкция не отличается от других, и часто используемые встроенные от своих собственных (if, cond, ...), всё сливается в монотонную массу.

Date: 2008-01-05 12:07 am (UTC)
From: [identity profile] meanab.livejournal.com
Возьмите редактор, умеющий работать с Лисповским кодом, в частности правильно его выравнивать и подсвечивать. Например (фанфары), emacs.

(no subject)

From: [identity profile] http://users.livejournal.com/_winnie/ - Date: 2008-01-05 12:11 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_winnie/ - Date: 2008-01-05 12:17 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/_winnie/ - Date: 2008-01-05 12:21 am (UTC) - Expand

(no subject)

From: [identity profile] meanab.livejournal.com - Date: 2008-01-05 01:06 am (UTC) - Expand

Date: 2008-01-05 12:05 am (UTC)
From: [identity profile] os80.livejournal.com
А я (хотя мне далеко до всех вас-профи) полюбил Схему с первого взгляда. Практически очень полезные для себя вещи начал писать буквально через день с момента знакомства, а вот Руби-Перл и Яву пришлось "списать за ненадобностью".

Date: 2008-01-05 12:31 am (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
Как бы мне в схеме нарисовать что-нибудь, или ещё что-нибудь, может у меня тогда пойдёт веселей, я уже досыта абстрактных задач про деревья для студентов из SICP. Сейчас установлена виндовая MzScheme.

Date: 2008-01-05 12:28 am (UTC)
From: [identity profile] max630.livejournal.com
> Один из лучших советов, которые я могу дать программистам, стремящимся расширить свой кругозор: выучите Лисп. Это далеко не так страшно, не так сложно, и не так архаично, как кажется издалека; вы многому научитесь и на многое сможете смотреть по-другому, даже и продолжая работать с любым другим языком.

Я лиспа не знаю хорошо, но у меня впечатление обратное: есть польза от знакомства с haskell или прологом или прочими нетрадиционными языками. Потому что потом знание про них можно протащить в программирование на других языках.

А в lisp идей, которых хотелось бы унести с собой, я что-то не нашёл, а вот сам язык постоянно хочется использовать.

Date: 2008-01-05 03:23 am (UTC)
From: [identity profile] begemotv2718.livejournal.com
А вот интересен такой таксономический вопрос.

Возьмем систему Mathematica. Сама по себе она написана на C, насколько я знаю. Но сам язык подозрительно похож на Лисп, вот например, внутреннее представление выражения a*x^2+b*x+c:

In[1]:=FullForm[a x^2 + b x + c]
Out[1]=Plus[c, Times[b, x],Times[a,Power[x, 2]]].

Основные операторы Mathematicа, вроде Map, Apply, Head etc имеют, вроде, прямые аналоги в Лиспе.

Спрашивается, насколько Mathematica близка к Лиспу с точки зрения классификации языков?

Date: 2008-01-05 04:55 am (UTC)
From: [identity profile] ygam.livejournal.com
Математика - это и есть Лисп в М-выражениях.

(no subject)

From: [identity profile] begemotv2718.livejournal.com - Date: 2008-01-05 07:14 am (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2008-01-05 07:18 am (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2008-01-05 06:44 pm (UTC) - Expand

(no subject)

From: [identity profile] polter.livejournal.com - Date: 2008-01-08 01:57 am (UTC) - Expand

(no subject)

From: [identity profile] ygam.livejournal.com - Date: 2008-01-08 01:59 am (UTC) - Expand

Date: 2008-01-05 04:21 am (UTC)
From: [identity profile] ex-decil.livejournal.com
хехе, я помнится на втором курсе даж реализацию написал интерпретатора Лиспа на Делфи, под CAD Компас. Много чего не учел, конечно, но вполне получалось портировать программы с AutoLisp. И даже среда отладки/разработки имелась вменяемая, с консолью... Эх, время было... Или это первый курс был :-\

Date: 2008-01-05 05:27 am (UTC)
From: [identity profile] http://users.livejournal.com/malfet_/
Спасибо за ссылки - очень в тему. С lispом я познакомился еще в школе(нас на трудах учили), но ничего сложнее чем редактирование емаксовских скриптов мне в последнее время с лиспом делать не приходилось...

Date: 2008-01-05 08:44 am (UTC)
From: [identity profile] fairplay.livejournal.com
Larry Wall on LISP
By policy, LISP has never really catered to mere mortals.
And, of course, mere mortals have never really forgiven LISP for not catering to them.

Date: 2008-01-05 11:53 am (UTC)
From: [identity profile] cmm.livejournal.com
кажется ли Вам этот отрывок правдивым (если да, то почему) или смешным (если да, то почему)?

(no subject)

From: [identity profile] fairplay.livejournal.com - Date: 2008-01-05 02:03 pm (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2008-01-05 04:11 pm (UTC) - Expand

Date: 2008-01-07 10:47 am (UTC)
From: [identity profile] oleg-pavliv.livejournal.com
Я пытался выучить лисп, может быть даже по вашему совету годичной или двухгодичной давности, прочитал учебник, проникся мощью языка после того как увидел, что CLOS написана на самом лиспе. Но дальше проблема. Чтобы использовать его хотя бы для себя нужны библиотеки, а многие лисповские - какие-то недоделанные бета версии. А если язык не использовать, он забываеться, остаеться только самая общая картинка.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 05:03 am
Powered by Dreamwidth Studios