?

Log in

Почему 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 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)
From: va_sav
2011-01-14 03:33 pm (UTC)
Согласен. Читать CLtL гораздо приятнее, чем любой из найденных учебников Haskell'а.

(Reply) (Parent) (Thread)
[User Picture]From: permea_kra
2011-01-14 09:48 pm (UTC)
>ANSI CL
ANSI. Т.е. институт стандартизации. Т.е. для баранов.
(Reply) (Parent) (Thread)
[User Picture]From: 13_49
2011-01-14 09:57 pm (UTC)
Ты, может быть, на раёне круче всех, но иди сосни хуйца у Гая Л. Стила.
(Reply) (Parent) (Thread)
[User Picture]From: permea_kra
2011-01-14 10:18 pm (UTC)
Мальчик не понимает разницы между "бараны" и "для баранов" ? Или мальчегу стыдно признаться, что он читал что-то из категории "для баранов"? Первое - позор, а второе - не стыдно, оно, зачастую, быстрее, особенно если не в теме.
(Reply) (Parent) (Thread)
[User Picture]From: 13_49
2011-01-14 11:19 pm (UTC)
Я, конечно, сражён высоким слогом, но назвать баранами инженеров, которые по своей сути должны работать со стандартами, может только конченный ебанат, не понимающий, что он говорит.

Стандарты пишут не спесивые пидорки, писающие в штанишки в ахуе от собственной крутости, а такие же инженеры, и для инженеров. Стандарт - это общий язык между людьми, есличо.
(Reply) (Parent) (Thread)
[User Picture]From: permea_kra
2011-01-15 06:11 am (UTC)
>для инженеров
ой. Как всё запущено-то.

>Стандарт - это общий язык между людьми, есличо.
Ну дык. Как называется человек, не знающий общего языка? Баран. В лучшем случае.
(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-14 10:20 pm (UTC)
Как с Хаскелем?
(Reply) (Parent) (Thread)
[User Picture]From: grundik
2011-01-16 07:17 am (UTC)
У Хаскеля объективно синтаксис и семантика сильно сложнее, чем у лиспа.
(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-16 10:02 am (UTC)
Алан Кей считает иначе, как минимум, насчёт семантики.

Кому из вас верить?
(Reply) (Parent) (Thread)
[User Picture]From: grundik
2011-01-16 10:50 am (UTC)
Ты сам проверь ;)

Алан Кей, конечно, имеет авторитет, но его область применения инструментов, условия его работы, и, главное, его background сильно отличается от моего.

Ну и это, ты опять троллишь :) А именно выдаёшь свою интерпретацию слов Кея за его слова. А он ведь не говорил того, что Хаскель проще Лиспа в семантике.

Плюс товарищ Кей говорит про Лисп-2, при этом не обращая внимания на то, что есть (хотя, возможно, в то время его не было) Лисп-1 (это к вопросу о том, насколько критики Лиспа вообще в нём разбираются). Опять же, называть лисп функциональным языком есть ошибка (или сознательный троллинг). Лисп мультипарадигменен, и функционален он не больше, чем императивен или ООП-шен.

И последнее. Судя по всему, Кей говорит не про Common Lisp, а про какой-то другой лисп. Это тоже распространённый fail в спорах о лиспе, ибо лиспов дохренища, и между собой они заметно отличаются. И часто те недостатки, что есть в Common Lisp, отсутствуют, например, в scheme (или в Racket).
(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-16 11:06 am (UTC)
>Ну и это, ты опять троллишь :) А именно выдаёшь свою интерпретацию слов Кея за его слова. А он ведь не говорил того, что Хаскель проще Лиспа в семантике.

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

Правильно ли я интерпретирую его слова сейчас?

Будешь ли ты утверждать, что специальные формы и макросы не имеют отношения к семантике Лиспа?
(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
[User Picture]From: thesz
2011-01-16 11:07 am (UTC)
>И последнее. Судя по всему, Кей говорит не про Common Lisp, а про какой-то другой лисп. Это тоже распространённый fail в спорах о лиспе, ибо лиспов дохренища, и между собой они заметно отличаются. И часто те недостатки, что есть в Common Lisp, отсутствуют, например, в scheme (или в Racket).

А вот теперь ты уводишь разговор в сторону.

Присутствует ли указанный Кеем недостаток в Scheme, CL и других известных тебе Лиспах? Присутствуют ли там макросы и специальные формы?
(Reply) (Parent) (Thread) (Expand)
From: (Anonymous)
2011-01-16 11:10 am (UTC)
То, что лисп мультипарадигменный - заблуждение, если только не считать способы декомпизиции (функциональная, объектная и т.д.) парадигмами, ну а тогда все языки мультипарадигменные. Парадигма там одна - императивное программирование. Декларативно в лиспе писать нельзя (нет, в теории можно встроить декларативный язык, но на практике никто так не делает и делать не будет, потому как все библиотеки императивные и вообще инфраструктура не способствует), а вот Хаскель поддерживает обе парадигмы.
(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
(Deleted comment)
From: (Anonymous)
2011-01-16 03:10 pm (UTC)
А зачем кому-то верить? Можно же самому посмотреть. Вот http://lambda-the-ultimate.org/node/971 для лиспа. Теперь надо для хаскеля найти. У вас нигде соответствующего линка не завалялось? Было бы действительно интересно сравнить.
(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-16 03:18 pm (UTC)
Тут мне комментарий пришёл на тему семантик.

Вот денотационная семантика Хаскеля: http://en.wikibooks.org/wiki/Haskell/Denotational_semantics

Вот про семантику RSR5: http://lambda-the-ultimate.org/node/971

Это простой вариант Лисп, практически, самый простейший из всех широко применимых, которому специально упрощали семантику.
(Reply) (Parent) (Thread)
From: (Anonymous)
2011-01-19 12:17 pm (UTC)
> Это простой вариант Лисп

Это не простой вариант, там много лишних фич. Оригинальная семантика в самом r5rs есть.

И сравнивать денотационную семантику с операционной по сложности нельзя, ясное дело.
(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-16 10:03 am (UTC)
Хотя я хотел спросить 13_49 насчёт справился ли он с Хаскелем. ;)
(Reply) (Parent) (Thread)
[User Picture]From: grundik
2011-01-16 10:34 am (UTC)
Я понял твой вопрос сразу, да :)

Просто я-то как раз с лиспом дружу, а с хаскелем - не особо. Как раз потому, что в лиспе путь от "надо что-то сделать" до "что-то сделано" гораздо быстрее (даже в случае, когда я не знаю лиспа), чем в хаскеле. Конкретно в моём случае. Как оно в общем случае, мне пофигу.

Ну то есть мне насрать на то, как оно там с академической точки зрения, у меня есть практика в реальной реальности, и просто по факту в этой моей реальной реальности лисп используется мною, а хаскель - нет.

При этом никакого предубеждения к хаскелю у меня нету (вот к джаве и C++ - есть предубеждение). Просто лисп проще, вот и всё.

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

PS: под лиспом я понимаю "лисп вообще", а не common lisp. Конкретно я юзаю Racket.
(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
From: (Anonymous)
2011-01-16 11:01 am (UTC)
Семантика ленивого языка объективно проще семантики строгого. По мере добавления строгости, разумеется, сложность семантики нарастает.
А синтаксис Хаскеля да, сложнее. Синтаксис как раз и усложняют для улучшения читабельности, потому как языки с простым синтаксисом (брейнфак, лисп) читаются плохо и медленно, хотя научится их читать хоть как-то можно очень быстро.
(Reply) (Parent) (Thread)
From: (Anonymous)
2011-01-16 04:28 pm (UTC)
> Семантика ленивого языка объективно проще семантики строгого. По мере добавления строгости, разумеется, сложность семантики нарастает.

Скажем так - если нас есть язык и он имеет некую семантику, то есть некоторое "подмножество" этой семантики, которое упростится при переходе к ленивой стратегии вычислений. Дополнение этого "подмножества" будет неизменным.
(Reply) (Parent) (Thread)
[User Picture]From: nivanych
2011-01-16 04:34 pm (UTC)
У ленивого Тьюринг-полного языка заметно сложнее _ресурсная_ семантика.
(Reply) (Parent) (Thread) (Expand)
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand
(no subject) - (Anonymous) Expand