Почему LISP?

Jan 13, 2011 14:05


Как говорил Ворошилов, вопрос к Знатокам (к знатокам LISP-а в данном случае)! Почему таки LISP? Или, если конкретнее, вопроса три:
  1. Для каких именно задач LISP подходит больше, чем другие языки?
  2. За счёт чего для них он подходит больше?
  3. В чём именно выражается его преимущество?

Если не в лом, приведите, pls, коротенькие иллюстрации на LISP-е (или ( Read more... )

Leave a comment

Comments 263

freiksenet January 13 2011, 19:11:14 UTC
Во-первых писать LISP прописными буквами - плохо. Если вы имеете ввиду лиспоподобные языки - пишите lisp.

Во-вторых, языка "lisp" нет. Есть много языков, которые относят к лиспу. Какой именно лисп вас интересует? Common Lisp, Scheme, Clojure, Arc, newLISP, Kernel? Три первых можно считать "актино используемыми" лиспами и все три разные. Даже Dylan и Ruby иногда к лиспам относят.

Reply

freiksenet January 13 2011, 19:13:07 UTC
Еще Emacs Lisp забыл, из активно юзаемых.

Reply

aralex January 13 2011, 21:13:05 UTC
Как человек, не разбирающийся в lisp-ах, выбираю первые два :)

Reply

freiksenet January 14 2011, 00:40:56 UTC
lisp-nazi детектед :)

Reply


zhectjahsik January 13 2011, 19:25:36 UTC
Так, для размышления ( ... )

Reply

zhectjahsik January 13 2011, 19:27:17 UTC
3. ... старых ...

Reply

aralex January 13 2011, 21:17:25 UTC
Да, вопрос достоин долгих и тягостных раздумий.

Reply


zupernintendo January 13 2011, 19:32:44 UTC
говорят для подсчета факториалов весьма неплох.

Reply

zupernintendo January 13 2011, 21:13:04 UTC
lisp не нужен
haskell лучше подходит для факториалов

Reply

aralex January 13 2011, 21:18:25 UTC
Ну, что ж... Достойный повод для создания специального ЯП ;)

Reply


anonymous January 13 2011, 20:22:22 UTC
1,2,3. Для создания eDSL(embedded DSL) - специализированных языков которые очень близко описывают проблемную область. Лучше всего - за счет того что программа на лиспе - по сути, абстрактное синтаксическое дерево, и генерировать код становится очень просто.

На первый взгляд некоторые задачи довольно плохо ложаться на этот подход, тут важно умение увидеть более общие концепции стоящие за конкретной задачей. В принципе это можно научиться делать и на других языках, но на Common Lisp и Haskell это более наглядно.

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

Reply

aralex January 13 2011, 21:19:45 UTC
Понятно. Язык, возникший на стыке программирования и философии :)

Reply

anonymous January 13 2011, 21:34:18 UTC

kit1980ukr January 13 2011, 20:53:20 UTC
Для задач, где непонятно, что именно делать (http://en.wikipedia.org/wiki/Exploratory_programming)
При этом можно добиться хорошего быстродействия.
Пример - победитель недавно прошедшего Google AI Challenge использовал именно Lisp.

Reply

aralex January 13 2011, 21:21:46 UTC
Ну, быстродействие - это очень важно! Особенно в задачах с неопределённой целью ;)

Reply

kit1980ukr January 13 2011, 21:51:53 UTC
Имеется ввиду, что когда станет понятно, что все-таки делать, не придется обязательно переписывать прототип на чем-то быстром.

Reply


Leave a comment

Up