LINUX.ORG.RU

История изменений

Исправление lovesan, (текущая версия) :

Всё ж стоит определиться, что первично.

Диалекты лиспа называются … Lisp. Когда делается другой язык, название берется другое. Даже если что-то там от лиспа есть.

А что? Что делает его лиспом, а схему не лиспом?

Да наличие специальных операторов, базовых структур данных, и функций которые тянутся прямо из первых диалектов лиспа - из MacLisp какого-нибудь. Вон как пример - true и false в схеме. Это из самого простого. В лиспе нет true и false. В лиспе есть «generalized boolean», когда символ nil, он же пустой список - это одновременно false, а все остальное - true.

Далее, динамические переменные. В ранних лиспах только одни они и были вообще(вот оттуда они в Emacs Lisp). В поздних лиспах типо CL, они скорее используются как исключение чем как правило, но они есть.

Названия макросов и функций. Всякие там defun, mapcar, nreverse и прочее. Макросы. В лиспе они другие.

Глобальная область видимости. В схеме она статическая, в лиспе - динамическая. Схема и ее потомки, типа racket - не нацелены на «разработку в образе», вообще.

Дохренища всего такого.

Clojure - еще дальше от лиспа, чем Scheme, это вообще другой язык, это не Лисп. А то так можно договориться что Python это лисп. Или до того что Java это Си.

Исправление lovesan, :

Всё ж стоит определиться, что первично.

Диалекты лиспа называются … Lisp. Когда делается другой язык, название берется другое. Даже если что-то там от лиспа есть.

А что? Что делает его лиспом, а схему не лиспом?

Да наличие специальных операторов, базовых структур данных, и функций которые тянутся прямо из первых диалектов лиспа - из MacLisp какого-нибудь. Вон как пример - true и false в схеме. Это из самого простого. В лиспе нет true и false. В лиспе есть «generalized boolean», когда символ nil, он же пустой список - это одновременно false, а все остальное - true.

Далее, динамические переменные. В ранних лиспах только одни они и были вообще(вот оттуда они в Emacs Lisp). В поздних лиспах типо CL, они скорее используются как исключение чем как правило, но они есть.

Названия макросов и функций. Всякие там defun, mapcar, nreverse и прочее. Макросы. В лиспе они другие.

Глобальная область видимости. В схеме она статическая, в лиспе - динамическая. Схема и ее потомки, типа racket - не нацелены на «разработку в образе», вообще.

Дохренища всего такого.

Clojure - еще дальше от лиспа, чем Scheme, это вообще другой язык, это не Лисп. А то так можно договориться что Python это лисп. Или до того что C# это Си.

Исправление lovesan, :

Всё ж стоит определиться, что первично.

Диалекты лиспа называются … Lisp. Когда делается другой язык, название берется другое. Даже если что-то там от лиспа есть.

А что? Что делает его лиспом, а схему не лиспом?

Да наличие специальных операторов, базовых структур данных, и функций которые тянутся прямо из первых диалектов лиспа - из MacLisp какого-нибудь. Вон как пример - true и false в схеме. Это из самого простого. В лиспе нет true и false. В лиспе есть «generalized boolean», когда символ nil, он же пустой список - это одновременно false, а все остальное - true.

Далее, динамические переменные. В ранних лиспах только одни они и были вообще(вот оттуда они в Emacs Lisp). В поздних лиспах типо CL, они скорее используются как исключение чем как правило, но они есть.

Названия макросов и функций. Всякие там defun, mapcar, nreverse и прочее. Макросы. В лиспе они другие.

Глобальная область видимости. В схеме она статическая, в лиспе - динамическая. Схема и ее потомки, типа racket - не нацелены на «разработку в образе», вообще.

Дохренища всего такого.

Clojure - еще дальше от лиспа, чем Scheme, это вообще другой язык, это не Лисп. А то так можно договориться что Python это лисп.

Исходная версия lovesan, :

Всё ж стоит определиться, что первично.

Диалекты лиспа называются … Lisp. Когда делается другой язык, название берется другое. Даже если что-то там от лиспа есть.

А что? Что делает его лиспом, а схему не лиспом?

Да наличие специальных операторов, базовых структур данных, и функций которые тянутся прямо из первых диалектов лиспа - из MacLisp какого-нибудь. Вон как пример - true и false в схеме. Это из самого простого. В лиспе нет true и false. В лиспе есть «generalized boolean», когда символ nil, он же пустой список - это одновременно false, а все остальное - true.

Далее, динамические переменные. В ранних лиспах только одни они и были вообще(вот оттуда они в Emacs Lisp). В поздних лиспа типо CL, они скорее используются как исключение чем как правило, но они есть.

Названия макросов и функций. Всякие там defun, mapcar, nreverse и прочее. Макросы. В лиспе они другие.

Глобальная область видимости. В схеме она статическая, в лиспе - динамическая. Схема и ее потомки, типа racket - не нацелены на «разработку в образе», вообще.

Дохренища всего такого.

Clojure - еще дальше от лиспа, чем Scheme, это вообще другой язык, это не Лисп. А то так можно договориться что Python это лисп.