LISP
Материал из Lurkmore
(epigraph
| ( | 
 Любая достаточно сложная программа на C или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp[1]  | |
| — (Филип Гринспен)) | ||
| ( | 
 …в том числе и сам Common Lisp  | |
| — (Роберт Моррис)) | ||
| ( | 
 В Лиспе, если охота аспектно-ориентированного программирования, нужно лишь настругать немного макрокоманд, и готово. В Java, нужен Грегор Кичалес, создающий новую фирму, и месяцы и годы попыток заставить всё работать.  | |
| — (Петер Норвиг))) | ||
(defarticle LISP (это такой язык программирования (состоящий из смайликов (чуть более чем целиком))))
(Считается, что[2] LISP (означает (LISt Processor — обработчик списков.)))
(quote
| 
 (Ибо воистину. Первый Язык, жемчужина посреди простых камней, и нет языков кроме Него. Скобки, в которых пустота — тело Его, мистическое двуединство кода и данных — дух Его, божественная рекурсия — сердце Его. Истинно говорю вам, избегающий света Его есть безумец, вот, свершается кара над главой его, и убогостью отмечены поделия его, подобные пустым глиняным горшкам рядом с хрустальным сосудом благодати Его. Принявший же и постигший истинный свет Его подобен прямой и отточенной стреле, чисты помыслы его и крепка рука его, и благословенны творения его, дарующие радость и утоляющие печали, ибо одухотворены духом Его и отмечены благодатью Его.)  | 
| (ЛОР о Лиспе))) | 
Содержание | 
[править] (defsection история-создания
(list
- (Перволисп был открыт Джоном Маккарти (R.I.P.), реализовавшем процедуру eval для инструкций, записанных в списки вместе с данными, что позволило объединить данные и код в единый тип S-expression (symbolic expression) и отказаться от отдельного M-expression (meta expression) для инструкций, имевшего другой синтаксис.
 - (Emacs Lisp разработан Ричардом Столлманом для редактора GNU Emacs. Является самым старым лиспом из остающихся в ходу.
 - (ANSI Common Lisp (стандарт ANSI X3.226-1994) был разработан, чтобы объединить воедино в одном стандарте разнообразные лиспы (Interlisp, LML и пр.), является наиболее практическим диалектом, на котором пишут вебсерверы, вебсайты и вебдваноль.
 - (Scheme создали Гай Стил[3] и Джеральд Сассман в качестве учебного языка для демонстрации колдовских возможностей машины и написания книги SICP. В процессе работы над языком они достигли такой глубины сатори, что сочиняли до десятка разных интерпретаторов в неделю.
 - (Инженеры из Apple Computer, не останавливаясь на достигнутом (Object Pascal), создали Dylan, совмещающий синтаксис Паскаля с возможностями Lisp, но всем было похуй. А потом вернулся Джобс, и в Apple воцарился Objective C, совмещающий типобезопасность C со скоростью SmallTalk.)))))))
 
[править] (defsection кошерность
(list
- (функциональная основа (хотя на самом деле лисп — язык мультипарадигменный);
 - (прямой доступ к AST — на лиспе очень легко метапрограммировать. За это его любит, например, Луговский, Лейн;
 - (истинные макрокоманды, а не всякое препроцессорное говно;
 - (интерпретатор Лиспа, написанный на Лиспе, занимает 15 строк, который еще раз показывает, что лисп — это вам не хухры-мухры (http://www.rsdn.ru/article/philosophy/languages.xml);
 - (возможность отлаживать, модифицировать, обновлять работающую программу, не перезагружая ее;
 - (мощный рантайм[4];
 - (эффективные кроссплатформенные реализации;
 - (уважается Луговским — nuff said.))))))))))
 
[править] (defsection галерея
[править] (defsection см-также
[править] (defsubsection статьи
(list
[править] (defsubsection ссылки
(list
- (Единственно правильное мнение о лиспе
 - (Английская педивикия о лиспе
 - (SICP — http://mitpress.mit.edu/sicp/
 - (http://lisper.ru/
 - (http://lisp.ru/
 - (http://clisp.linkfly.ru/
 - (Парадокс Блаба
 - (Рыцари лямбда-исчисления
 - (http://paulgraham.com/onlisp.html
 - (уроки ЛИСПа для чайников
 - (Interview with an Adware Author — интервью с программистом фирмы Direct Revenue, который писал на Scheme трояны, гадившие на декстопе и в браузерах рекламными поп-апами.)))))))))))))
 
[править] (defsubsection примечания
(list- ↑ (Т.н. „Десятое правило Гринспена“
 - ↑ (Есть мнение, что на самом деле LISP означает Lots of Irritating Superfluous Parentheses, хотя некоторые говорят что на самом деле это Lost in a Sea of Parentheses. Существует также трактовка Lots of Incomprehensible Statements with Parenthesis
 - ↑ (Впоследствии соавтор Явы
 - ↑ (let ((x '(a b))) (setf (cdr x) x))
 
    | 
      
             [ + ]  Любой программист без словаря поймёт, что такое LISP
          | 
      ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
            
  | 
      |||||||||||


