?

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-19 12:15 pm (UTC)
> Первый результат поиска - статья в Википедии. И в русскоязычной и в англоязычной версиях определений несколько, и там и там названное мной определение есть.

> In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow.э

> Согласно первому определению, программа «декларативна», если она описывает каково́ нечто, а не как его создать.

> Согласно второму определению, программа «декларативна», если она написана на исключительно функциональном, логическом или константном языке программирования.

И где ваше определение?

> Во-первых мешает, потому как энергичная модель неполна по тьюрингу.

Прекрасно, машина тьюринга - тьюринг-неполна. Этот результат тянет на докторску, как минимум.

> А смысл в том, что это прогресс - можно не работать, когда работать не нужно.

Ну и где же вы при энергичном порядке вычислений совершаете бОльшую работу?

> но если мы зафиксируем модель вычислений - от порядка результат уже не поменяется.

Ну и что?
(Reply) (Parent) (Thread)
From: (Anonymous)
2011-01-19 12:37 pm (UTC)
"И где ваше определение?"

http://en.wikipedia.org/wiki/Declarative_programming#Definition
1) A program that describes what computation should be performed and not how to compute it

Это определение ваше. Согласно ему декларатинная программа декларативна. Смысла в нем столько же, сколько в определении "веревка - это вервие простое".

2) Any programming language that lacks side effects (or more specifically, is referentially transparent)

Это мое определение.

3) A language with a clear correspondence to mathematical logic.

Это, на самом деле, тоже мое но в несколько завуалированной форме.

"Прекрасно, машина тьюринга - тьюринг-неполна."

Ну разумеется нет. Просто какое она имеет отношение к "энергичной модели", то есть аппликативному порядку?

"Ну и что?"

То, что и при декларативности нельзя в общем случае говорить "Никакого ограничения на модель вычисления тут нет". Потому что есть.
(Reply) (Parent) (Thread)