LISP
(перенаправлено с «Лисп»)
		
		
		
		Перейти к навигации
		Перейти к поиску
		(defarticle LISP
(epigraph
Любая достаточно сложная программа на C или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp[1]
— '(Филип Гринспен))
…в том числе и сам Common Lisp
— '(Роберт Моррис-мл.))
В Лиспе, если охота аспектно-ориентированного программирования, нужно лишь настругать немного макрокоманд, и готово. В Java, нужен Грегор Кичалес, создающий новую фирму, и месяцы и годы попыток заставить всё работать.
— '(Петер Норвиг)))
(defterm LISP («язык программирования» (состоящий (из (смайликов (чуть (более (чем (целиком)))))))))
(defstatement Считается, что[2] LISP (означает '(LISt Processor — обработчик списков.)))
(defquote '(Ибо воистину. Первый Язык, жемчужина посреди простых камней, и нет языков кроме Него. Скобки, в которых пустота — тело Его, мистическое двуединство кода и данных — дух Его, божественная рекурсия — сердце Его. Истинно говорю вам, избегающий света Его есть безумец, вот, свершается кара над главой его, и убогостью отмечены поделия его, подобные пустым глиняным горшкам рядом с хрустальным сосудом благодати Его. Принявший же и постигший истинный свет Его подобен прямой и отточенной стреле, чисты помыслы его и крепка рука его, и благословенны творения его, дарующие радость и утоляющие печали, ибо одухотворены духом Его и отмечены благодатью Его.)
— '(ЛОР о Лиспе)))
(defsection «история-создания»[править]
'(
- «Перволисп был открыт матершинником Джоном Маккарти (более известным как отец понятия «искусственный интеллект») и программистом Филлис Фокс, реализовавшими в начале 1960 г. процедуру 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 кошерность[править]
'(
- «функциональная основа (хотя на самом деле лисп — язык мультипарадигменный)»
 - «прямой доступ к AST — на лиспе очень легко метапрограммировать. За это его любит, например, Луговский, Лейн»
 - «истинные макрокоманды, а не всякое препроцессорное говно»
 - «интерпретатор Лиспа, написанный на Лиспе, занимает 15 строк, который еще раз показывает, что лисп — это вам не хухры-мухры [4]»
 - «возможность отлаживать, модифицировать, обновлять работающую программу, не перезагружая ее»
 - «мощный рантайм»[5]
 - «эффективные кроссплатформенные реализации»
 - «уважается Луговским — nuff said.»))
 
(defsection галерея[править]
(defentity goat.se! '(
(((L I S P )( L I S P ) ( L I S P ) ( L I S P )))
* (     \             \            )    \       *
B(       )             \          )      )      B
e(       `.             )         )       :     e
a`        )             )        \)       )     a
t \       ) )       )  \\\   --__ \\       :    t
i  \      \)   _--~~          ~--__) \     )    i  
n   \      \_-~                    ~-_\    )    n
g    \_     \        _.--------.______\)   )    g
      \     \______(( _ ___ _ (_(__H  \   )      
t      \   .  S ___)  ______ (_(____t  )  )     t
h       (\ )   I ____)) APPLY\ (_____D  )_)     h
e      ( (\)   C_____)  EVAL )  (___P   )  \    e
      (   (   _P_____)\______)  )) _) )     \    
a     (    \  )__   \\_________)) (__)       )  a
v    ( \    \____)   `----   --'             )  v
e    (  \_          ___\       )_          _) ) e
r   (              )    (     )  \            ) r
a   (             )    (   λ   )  \           ) a
g   (          ) )    (         )  \           )g
e   (         ) )      (__)(___)    )          )e
s  (           )        (    )       )         )s
*  (          )         (    )       )         )*
(((L I S P )( L I S P ) ( L I S P ) ( L I S P )))
)))
(defsection «см. также»[править]
(defsubsection статьи[править]
'(
(defsubsection ссылки[править]
'(
- (deflink ae:Lisp «Единственно правильное мнение о лиспе»)
 - (deflink LISP «Английская педивикия о лиспе»)
 - (deflink lisp.ru/ ())
 - (deflink Knights of the Lambda Calculus «Рыцари лямбда-исчисления»)
 - (deflink paulgraham.com/onlisp.html ())
 - (deflink [1] «уроки ЛИСПа для чайников»)
 - (deflink habrahabr.ru/post/237297/ )
 - Interview with an Adware Author — интервью с программистом фирмы Direct Revenue, который писал на Scheme трояны, гадившие на декстопе и в браузерах рекламными поп-апами.))
 
(defsubsection примечания[править]
'(
- ↑ (Т.н. „Десятое правило Гринспена“ (первых девяти не существует))
 - ↑ (Есть мнение, что на самом деле LISP означает Lots of Irritating Superfluous Parentheses, хотя некоторые говорят что на самом деле это Lost in a Sea of Parentheses. Существует также трактовка Lots of Incomprehensible Statements with Parenthesis
 - ↑ (Впоследствии соавтор Явы
 - ↑ Ниасилил на RSDN
 - ↑ (let ((x '(a b))) (setf (cdr x) x))
 
))))
