?

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: (Anonymous)
2011-01-18 09:33 am (UTC)
> Вы считаете, что эти две вещи мешают друг другу?

Нет, конечно, с чего вы взяли?

> Уберите квантор всеобщности, у вас даже вопроса не получится.

Хорошо:
А зачем нам делать изменения всюду, где это необходимо, если потом спецификация изменится, и нам то, что мы меняли, придется менять снова?

> Наоборот. Дали. Очень много дали. Они показали нам, что программы, правильно реализующие все предыдущие спецификации, не удовлетворяет каким-то критериям.

А зачем нам это знание?

> Мы более уверены, что это не ошибка программы, чем если бы типов не было.

Не понял. Что именно не ошибка программы?
(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-18 08:34 pm (UTC)
>> Вы считаете, что эти две вещи мешают друг другу?
>Нет, конечно, с чего вы взяли?

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

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

Не так? Я неправ?

>Хорошо: А зачем нам делать изменения всюду, где это необходимо, если потом спецификация изменится, и нам то, что мы меняли, придется менять снова?

Потому, что следующая спецификация обязательно будет результатом переработки предыдущей.

Если это не так, то спецификации нам спускают сверху, мы работаем в Индии и получаем $20 в сутки.

>> Наоборот. Дали. Очень много дали. Они показали нам, что программы, правильно реализующие все предыдущие спецификации, не удовлетворяет каким-то критериям.
>А зачем нам это знание?

Для того, чтобы двигаться в правильном направлении. Всем проектом в целом.
(Reply) (Parent) (Thread)
From: (Anonymous)
2011-01-19 03:21 am (UTC)
> Не так? Я неправ?

Не так. Вы не правы. Я хотел сказать, что если у нас есть первое, то ценность второго резко падает. То есть - если мы можем легко найти и исправить ошибку, то цена ее необнаружения на ранней стадии уменьшается.

> Потому, что следующая спецификация обязательно будет результатом переработки предыдущей.

Это ответ на какой-то другой вопрос.

> Для того, чтобы двигаться в правильном направлении.

И как оно помогает двигаться? Вообще для меня очень неожиданна мысль о том, что программа может обладать некоторыми соответствиями спецификации, о которых нам неизвестно. Откуда эти соответствия взялись-то? "Случайно вышло"? Изначально программа ничему не соответствует и только потом мы доказываем, что определенные соответствия есть, так? По-моему, можно считать, что нету никаких других соответствий, кроме доказанных, потому что вероятность такого "случайно вышло" пренебрежимо мала.
(Reply) (Parent) (Thread)
[User Picture]From: thesz
2011-01-19 07:53 am (UTC)
>То есть - если мы можем легко найти и исправить ошибку, то цена ее необнаружения на ранней стадии уменьшается.

Это просто глупость.

Увольте меня от дальнейшей беседы.
(Reply) (Parent) (Thread)
From: (Anonymous)
2011-01-19 12:20 pm (UTC)
То есть по вашему цена ошибки не зависит от того, сколько ресурсов будет затрачено на ее обнаружение и исправление? Замечательное откровение.
(Reply) (Parent) (Thread)