Личные инструменты
Счётчики

LISP

Материал из Lurkmore

(Перенаправлено с Lisp)
Перейти к: навигация, поиск

(defarticle LISP

(epigraph

(defquote '(

Любая достаточно сложная программа на C или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp[1]

)
— '(Филип Гринспен))
(defquote '(

…в том числе и сам Common Lisp

)
— '(Роберт Моррис-мл.))
(defquote '(

В Лиспе, если охота аспектно-ориентированного программирования, нужно лишь настругать немного макрокоманд, и готово. В Java, нужен Грегор Кичалес, создающий новую фирму, и месяцы и годы попыток заставить всё работать.

)
— '(Петер Норвиг)))

(defterm LISP («язык программирования» (состоящий (из (смайликов (чуть (более (чем (целиком)))))))))

(defstatement Считается, что[2] LISP (означает '(LISt Processor — обработчик списков.)))

(defquote '(Ибо воистину. Первый Язык, жемчужина посреди простых камней, и нет языков кроме Него. Скобки, в которых пустота — тело Его, мистическое двуединство кода и данных — дух Его, божественная рекурсия — сердце Его. Истинно говорю вам, избегающий света Его есть безумец, вот, свершается кара над главой его, и убогостью отмечены поделия его, подобные пустым глиняным горшкам рядом с хрустальным сосудом благодати Его. Принявший же и постигший истинный свет Его подобен прямой и отточенной стреле, чисты помыслы его и крепка рука его, и благословенны творения его, дарующие радость и утоляющие печали, ибо одухотворены духом Его и отмечены благодатью Его.)

'(ЛОР о Лиспе)))

Содержание

[править] (defsection «история-создания»

'(

  • «Перволисп был открыт Джоном Маккарти (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 кошерность

'(

Holy vsl lisp.jpg
  • «функциональная основа (хотя на самом деле лисп — язык мультипарадигменный)»
  • «прямой доступ к AST — на лиспе очень легко метапрограммировать. За это его любит, например, Луговский, Лейн»
  • «истинные макрокоманды, а не всякое препроцессорное говно»
  • «интерпретатор Лиспа, написанный на Лиспе, занимает 15 строк, который еще раз показывает, что лисп — это вам не хухры-мухры [4]»
  • «возможность отлаживать, модифицировать, обновлять работающую программу, не перезагружая ее»
  • «мощный рантайм»[5]
  • «эффективные кроссплатформенные реализации»
  • «уважается Луговским — nuff said.»))

[править] (defsection галерея

)

[править] Гоатсе!

(((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 ссылки

'(

[править] (defsubsection примечания

'(

  1. (Т.н. „Десятое правило Гринспена“ (первых девяти не существует))
  2. (Есть мнение, что на самом деле LISP означает Lots of Irritating Superfluous Parentheses, хотя некоторые говорят что на самом деле это Lost in a Sea of Parentheses. Существует также трактовка Lots of Incomprehensible Statements with Parenthesis
  3. (Впоследствии соавтор Явы
  4. ни асилил на RSDN [1]
  5. (let ((x '(a b))) (setf (cdr x) x))
))))


Источник — «http://lurkmore.to/LISP»