LISP

Материал из Lurkmore
Версия от 19:25, 27 ноября 2020; 127.0.0.1 (обсуждение) (→(defsection «история-создания»: дополнение)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

(defarticle LISP

(epigraph

(defquote '(

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

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

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

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

В Лиспе, если охота аспектно-ориентированного программирования, нужно лишь настругать немного макрокоманд, и готово. В 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 ссылки

'(

(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))

))))


w:LISP en.w:LISP ae:Lisp