?

Log in

No account? Create an account
Почему LISP? - Жить не можем без проблем! [entries|archive|friends|userinfo]
Жить не можем без проблем!

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Почему LISP? [Jan. 13th, 2011|02:05 pm]
Жить не можем без проблем!

ru_lisp

[aralex]

Как говорил Ворошилов, вопрос к Знатокам (к знатокам LISP-а в данном случае)! Почему таки LISP? Или, если конкретнее, вопроса три:

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

Если не в лом, приведите, pls, коротенькие иллюстрации на LISP-е (или ссылочку на них). Заранее благодарен!

Исходно данный пост был размещён в сообществе ru_programming, но там Знатоков, способных ответить внятно и по сути, увы, не нашлось :(

linkReply

Comments:
From: dmzlj
2011-01-14 08:34 am (UTC)
А по поводу хаскелла и учебников --- давайте устроим срач в ru_lisp ?


dmz@x200:~$ apt-cache search ghc | wc -l
508

dmz@x200:~$ cabal list | egrep '^\*' | wc -l
2739

из них для вычисления факториала:

dmz@x200:~$ cabal list | egrep '^\*' | grep -i factorial

(ноль)


это всякие библиотеки и тулзы, написанные для хаскелля и на хаскелле. Из этого можно отметить: драйвера для различных СУБД, веб-фреймворки, средства для работы с xml, изображениями, нейронными сетями,

не многовато ли для учебников?



(Reply) (Parent) (Thread)
From: va_sav
2011-01-14 09:03 am (UTC)
я о себе говорю. На Lisp'е я довольно много писал в 90-х. И сейчас временами пишу. И взаимодействую с людьми, которые активно используют Lisp и разные библиотеки под него. А вот вокруг куча народа "изучает Haskell" - путем прогона примеров из разных учебников. Пока в локальной среде ничего полезного/рабочего на Haskell не видел.

Может быть более политкорректно это звучит примерно так: "Haskell тоже функциональный язык, но у него входной порог (уровень с которого можно легко писать полезные программы) заметно выше чем у Lisp'а"
(Reply) (Parent) (Thread)
[User Picture]From: b00ter
2011-01-14 09:16 am (UTC)
Я тоже не видел полезного софта ни на Haskell, ни на Lisp. Значит ли это, что оба языка бесполезны в принципе?
(Reply) (Parent) (Thread)
From: va_sav
2011-01-14 09:57 am (UTC)
Вопрос был о применении. На Lisp'е есть опыт писания прототипов медицинской и лингвистической экспертных систем. А также построения решателей для задач, сводившихся к теории расписаний. Вполне себе полезные и применявшиеся у заказчиков программы, хотя, конечно, это не тиражный софт. В принципе читал, что где-то народ что крутое пишет и на Haskell - я просто лично такого не видел.
(Reply) (Parent) (Thread)
[User Picture]From: b00ter
2011-01-14 10:02 am (UTC)
Простите мою необразованность, но экспертные системы разве не проще писать на Прологе?
(Reply) (Parent) (Thread)
From: va_sav
2011-01-17 06:38 am (UTC)
Любые программы лучше писать на хорошо известном программисту языке программирования. Это как философское обоснование.

Впрочем, писали программы и на Прологе, но там свои заморочки. Поскольку в исходных данных чего только не было - и числовые значения, и описания и логические флаги - Lisp оказался удобней.

(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-14 10:24 pm (UTC)
>На Lisp'е есть опыт писания прототипов медицинской и лингвистической экспертных систем.

Это ваш личный опыт?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: permea_kra
2011-01-14 09:20 am (UTC)
У хаскеля входной порог для написания полезных программ нулевой. Потому что в нем есть ghci и его вполне можно использовать как продвинутый калькулятор. Для свистоподелок он вполне заменяет perl, но дает какие-то проверки корректности.
(Reply) (Parent) (Thread)
From: (Anonymous)
2011-01-14 09:32 am (UTC)
В качестве продвинутого калькулятора ghci сосет у действительно продвинутых калькуляторов, а при попытке написания любого приложения вылезает IO, которое и поднимает порог вхождения на недосягаемые высоты по сравнению с другими языками.
(Reply) (Parent) (Thread)
[User Picture]From: permea_kra
2011-01-14 09:43 am (UTC)
>у действительно продвинутых калькуляторов
Это которые?
>вылезает IO
Prelude.interact .
(Reply) (Parent) (Thread) (Expand)
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
From: va_sav
2011-01-14 10:04 am (UTC)
?

вы хотите сказать, что любой язык, имеющий полноценный интерпретатор имеет нулевой порог вхождения. - это совершенно удивительное и неправильное понимание термина "порог вхождения".

Порог вхождения - это скорее совокупность знаний и различных деталей, которые приходится держать в голове, чтобы написать не совсем тривиальную программу на выбранном языке. Типичный пример языка с очень низким порогом вхождения - PHP.
(Reply) (Parent) (Thread)
[User Picture]From: permea_kra
2011-01-14 10:09 am (UTC)
>совокупность знаний и различных деталей, которые приходится держать в голове, чтобы написать не совсем тривиальную программу на выбранном языке. Типичный пример языка с очень низким порогом вхождения

Хаскелл. Объективно. Ниже только у перла.
(Reply) (Parent) (Thread) (Expand)
(no subject) - (Anonymous) Expand
From: dmzlj
2011-01-14 09:46 am (UTC)
Ну, с последним спорить не буду --- действительно, входной порог есть, хотя теперь непонятно, почему.
(Reply) (Parent) (Thread)
[User Picture]From: permea_kra
2011-01-14 10:10 am (UTC)
Да потому что мануалы к стандартной библиотеке писали высоколобые академики.
(Reply) (Parent) (Thread)
[User Picture]From: 13_49
2011-01-14 12:05 pm (UTC)
Cltl2 и ANSI CL тоже не бараны писали, но мне в пору ньюбства там всё понятно было.
(Reply) (Parent) (Thread) (Expand)
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(Deleted comment)
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand