LINUX.ORG.RU

Lisp как платформа.


0

1

В продожение: http://www.linux.org.ru/view-message.jsp?msgid=2450305&page=1&nocache...

Часть ответов в ветке приведенной выше.

Вопрос в следующем:

- Чем вызвано утверждение о продуктивности Лиспа высказываемое его адептами (типа Грэхема) по сравнению со всеми другими? ( и вследствие: - Насколько адекватным является использование Lisp как платформы в современных условиях? - После perl, bash, Tcl, ECMAscript, C++, C какие концепции языка позволяющие повысить продуктивность оставаются в Лиспеб на которые стоит обратить внимание и которые могут повысить продуктивность? )

Мотивация к созданию ветки:

- Время изучения по личным ощущениям,кажется непопорционально долгим по сравнению с отдачей (сравнивалось c приведенными языками). - Усложнена компиляция, проблемы с переносимостью, упомянутые в первоначальной ветке. - Вакансии на Лисп существуют в мифах. - Для Web-programming существуют более развитые, документированые и переносимые вещи типа Perl, Ruby. - По результатм здесь: http://shootout.alioth.debian.org/ например, компактностью, мощностью, и потреблением памятью особенно Lisp не блещет. - Поиск личной мотивации к продолжению разборок с Лиспом, ввиду личного разочарования, отсутствия новых для себя концепций и не нахождения практической пользы. Создается впечатление что изучение его того не стоит, и полезнее углубляться в тот же perl, тем более ФП в нем присутствует, и без работы остаться сложнее.

Знаю что примеры успешных проектов на Лиспе есть, но их очень мало в потоке мэйнстрима.

Аргументы за и против полезны были бы для определения дальнейшего развития.

(lisp или что нибудь дпугое)

Background: Что такое lisp closures и macroses знаю, SICP прочел. hyperspec пока не осилил и не вижу пока практической пользы.

В емаксе пишу простенькие функции редактирования.

anonymous

Ответ на: комментарий от bugmaker

>> более человекоподобный синтаксис > Ну чтож, давай-ка методики сравнения степени человекоподобности > синтаксиса. По остальным вопросам, как я вижу, ты ситуацией не владеешь.

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

Если уж эксперт, объясни пожалуйста по русски понятно, на фига нужен весь этот хлам, раз уж требуешь от дугих таких объяснений как дело доходит до отсутствия каких-либо фич в Лиспе.

Да, дело в образовании. Объясняю: Как и большинство здесь учился в самой обычной физматшколе с самой обычной математикой, а далее в вузе с самой обычной продвинутой высшей математикой. Синтаксис лиспа весьма далек от того что привычно там. (Хотя скобочные грамматики как это в СССР еще наверное называлось, в вузах конечно проходят, и дальше идут, вместо закапывания в скобках и их порождених, и не делая это религией).

А языки програмирования создаются для решения задач людьми.

А так да, можно на ассемблере писать, утверждая преимущества наличия NOP в языке, и на брэйнфаке писать (машине тьюринга), и даже на лиспе.

Да, спор похож на разговор слепого с глухим, но возращаясь к сабжу хочется все таки иметь доступное обяснение зачем стоит углубляться в Лисп при огромном выборе других языков ( Аналогия: Восстанавливать слух если угодно, глухому. Песпектива нахождения в неприятном шуме удручает, а плюсов не видно. )

Да и большинство practical лисперов, как по используемым модулям емакса видно, плевали на все это богатство фич и используют basics чего им вполне хватает.

anonymous
()
Ответ на: комментарий от Darkman

>> Вменяемых аргументов на тему "почему плох Питон" просить не стану, вряд ли будут.

> Там уже лямбда нормальная появилась ?

И это всё? :D

лямбда в Питоне сделана по принципу 80/20 - для карринга хватает, остальное нужно редко, и для таких случаев можно и сделать локальную именованную функцию.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

>Да, дело в образовании. Объясняю: Как и большинство здесь учился в самой обычной физматшколе с самой обычной математикой, а далее в вузе с самой обычной продвинутой высшей математикой. Синтаксис лиспа весьма далек от того что привычно там. (Хотя скобочные грамматики как это в СССР еще наверное называлось, в вузах конечно проходят, и дальше идут, вместо закапывания в скобках и их порождених, и не делая это религией).

Я хоть в физмат школе не учился, но отвечу. Лямбда-исчисление, которое является одной из теоретических моделей вычислений практически один в один укладывается в синтаксис Лиспа.

anonymous
()
Ответ на: комментарий от anonymous

во-во теоретическая модель.

А брэйнфак это машина тьюринга - более близкая к практике.

Это же не значит что этот фак надо как платформу брать.

anonymous
()
Ответ на: комментарий от anonymous

>Я хоть в физмат школе не учился, но отвечу. Лямбда-исчисление, которое является одной из теоретических моделей вычислений практически один в один укладывается в синтаксис Лиспа.

Я в физмат школе учился, значит тем более отвечу. Лямбда-исчисление, которое является одной из теоретических моделей вычислений один в один укладывается в синтаксис Хаскелля.

imp ★★
()
Ответ на: комментарий от imp

> Чем Хаскелл то хуже? С монадами там импертивный код даже легче чем на лиспе писать учитывая развитый синтаксис и кучу функций и оперторов над монадами. А против макросов у нас есть Template Haskell...

мож и так, мож я в чём-то не разобрался. Но после лицезрения трёхсотмегового бинаря разбираться охота пропала. Возможно, потом ещё раз попробую.

bugmaker ★★★★☆
()
Ответ на: комментарий от vsemnazlo

> А вы предлагаете копать Лиспом? Знаю, вы скажете, копать, мол, не барское дело, лучше Лиспом заняться и т. д. Но те, кто не копают, обычно лопату не ругают с такой страстью (или вас её стукнули)?

Я *НЕ* предагаю. Если внимательно прочтёшь всё с начала, то обнаружишь: брат ананимус развёл сопли на тему что он по своей тупости ниасилил лиспа и просит его всё-таки уговорить. А по мне, кому чем хочется, тот тем и копает.

> Вменяемых аргументов на тему "почему плох Питон"

Я разве говорил, что он плох? Он слишком жалок, смехотворен и убог, чтобы быть плохим.

> просить не стану, вряд ли будут.

Дополнительные вряд ли, эт точно. И так уже всё высказано. Только с появлением питона весь мир осознал, что "пхп это глобально и надёжно" (С) чей-то.

bugmaker ★★★★☆
()
Ответ на: комментарий от Darkman

>> Вменяемых аргументов на тему "почему плох Питон" просить не стану, вряд ли будут.

> Там уже лямбда нормальная появилась ?

Я слыхивал, в следущей версии и ненормальную собираются убрать. В итоге, от питона останется его прародитель уайтспейс, и это закономерно.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>> Там уже лямбда нормальная появилась ?

> Я слыхивал, в следущей версии и ненормальную собираются убрать.

Брехня :)

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Так же как и [digital noise skipped]

Где методики сравнения степени человекоподобности синтаксиса???

> Если уж эксперт, объясни пожалуйста по русски понятно, на фига нужен весь этот хлам,

Какой именно?

> Как и большинство здесь учился в самой обычной физматшколе с самой обычной математикой, а далее в вузе с самой обычной продвинутой высшей математикой. Синтаксис лиспа весьма далек от того что привычно там.

А то, что синтаксис самой обычной продвинутой высшей математики весьма далёк от привычного синтаксиса того Слова, которое ты третьеклашкой на заборах писал, тебя не смутило? Тролль, унылый тролль :(

> возращаясь к сабжу хочется все таки иметь доступное обяснение зачем стоит углубляться в Лисп при огромном выборе других языков ( Аналогия: Восстанавливать слух если угодно, глухому. Песпектива нахождения в неприятном шуме удручает, а плюсов не видно. )

that's you again? oh no... Ещё раз, если не нравится, не углубляйся. Лично мне непонятно, зачем юз огромный выбор убогих, недоделанных, недоотлаженных, алогичных, уродливых, неоправданно заумно сложных, а подчас и откровенно безграмотных поделий, если в лиспе всё есть, и достаточно давно, и отлично вылизано, и продолжает интенсивно развиаваться?

> Да и большинство practical лисперов, как по используемым модулям емакса видно, плевали на все это богатство фич и используют basics чего им вполне хватает.

Ты совсем глупъ? В емаксе как минимум не комон лисп и всех фич там попросту нету, и именно *там* они особо без надобности наверное, как ты думаешь?

bugmaker ★★★★☆
()
Ответ на: комментарий от tailgunner

> Брехня :)

Возможно. Это я знаю только по слухам. Но звучит вполне правдоподобно, а до истины мне докапываться непошто. В питоне всё убогое, включая лямбду, и от её убирания ничего по сути не изменится.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>Я *НЕ* предагаю. Если внимательно прочтёшь всё с начала, то обнаружишь: брат ананимус развёл сопли на тему что он по своей тупости ниасилил лиспа и просит его всё-таки уговорить. А по мне, кому чем хочется, тот тем и копает.

А я читать умею. Всё, что про Лисп, мне понятно. Непонятно, откуда такая ненависть к Питону.

>Я разве говорил, что он плох? Он слишком жалок, смехотворен и убог, чтобы быть плохим.

Странно, что вы о нём ещё помните...

>Дополнительные вряд ли, эт точно. И так уже всё высказано.

Ничего не высказано.

>Только с появлением питона весь мир осознал, что "пхп это глобально и надёжно" (С) чей-то.

Одни лозунги, да ещё дурацкие.

Тема-то про Лисп, но всё же.

PS Может, это у вас просто такая форма змеебоязни?

vsemnazlo
()
Ответ на: комментарий от bugmaker

>Я слыхивал, в следущей версии и ненормальную собираются убрать. В итоге, от питона останется его прародитель уайтспейс, и это закономерно.

Враньё.

vsemnazlo
()
Ответ на: комментарий от bugmaker

>Но после лицезрения трёхсотмегового бинаря разбираться охота пропала

O_o чтож вы делаете чтоб такие бинари получать? А вообще это проблема с gtk что оно кучу либ линкует, без гтк бинари 400-500 Кб выходят обычно...

imp ★★
()
Ответ на: комментарий от imp

> O_o чтож вы делаете чтоб такие бинари получать?

Статически прилинковалось гтк со всеми своими надобностями. Как сделать динамически, не осознал. Насколько понял, это не было возможно вообще.

> без гтк бинари 400-500 Кб выходят обычно...

Без гтк нехочу.

bugmaker ★★★★☆
()
Ответ на: комментарий от vsemnazlo

> Странно, что вы о нём ещё помните...

Чё делать, работа такая.

> Ничего не высказано.

Последыш гика детецтед ._.

> Одни лозунги, да ещё дурацкие.

Ога, не я начал беседу в такой манере. Стартовый топег глянь.

> PS Может, это у вас просто такая форма змеебоязни?

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

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

> как по используемым модулям емакса видно, плевали на все это богатство фич

Это по каким же модулям ? И что видно ? У меня в Emacs только под Lisp только сторонних модулей установлено штук 6, не считая тех что идут в самом Emacs'е и хорошего куска кода в .emacs

Darkman ★★★
()
Ответ на: комментарий от bugmaker

> Где методики сравнения степени человекоподобности синтаксиса??? Тебе в форме бумаги оформить? Ну и если и да, почему ты решил что ты поймешь, если до сих пор не понял?

> Какой именно? ну например clos.

> А то, что синтаксис самой обычной продвинутой высшей математики весьма далёк от привычного синтаксиса того Слова, которое ты третьеклашкой на заборах писал, тебя не смутило? Тролль, унылый тролль :(

Подтверждение неадекватности автора цитаты.

> that's you again? oh no... Ещё раз, если не нравится, не > углубляйся. Лично мне непонятно, зачем юз огромный выбор убогих, недоделанных, недоотлаженных, алогичных, уродливых, неоправданно заумно сложных, а подчас и откровенно безграмотных поделий, если в лиспе всё есть, и достаточно давно, и отлично вылизано, и продолжает интенсивно развиаваться?

Ну, тебе показалось.

> Ты совсем глупъ? еще одно подтверждение неадеквата.

> В емаксе как минимум не комон лисп и всех фич там попросту нету, и именно *там* они особо без надобности наверное, как ты думаешь?

Думаю здесь ты прав. а ты как думаешь?

Тут есть еще кто нибудь, кто Лиспом пользуется и может ответить на сабджект темы?

anonymous
()
Ответ на: комментарий от Darkman

И в каких из них успешно и втему используется .cl ?

anonymous
()
Ответ на: комментарий от tailgunner

> лямбда в Питоне сделана по принципу 80/20 - для карринга хватает, остальное нужно редко, и для таких случаев можно и сделать локальную именованную функцию.

Т.е. в вот таком вот замыкании:

(defmethod foo ((map-descr map-level) (element map-element)) (let ((map-probability (second (get-land-type-tuple element map-descr)))) #'(lambga (map) (multiple-value-bind (x y) (get-random-map-position element) (when (< (random 1.0) map-probality) (place-map-element map x y element)))) ))

Я должен вместо лямбды городить именованую функцию ? И после этого

> "почему плох Питон"

???

Тут кстати еще и multiply dispatching, как с ним в Питоне?

Darkman ★★★
()
Ответ на: комментарий от anonymous

> Тебе в форме бумаги оформить?

Хватит словоблудить. Где методики сравнения степени человекоподобности синтаксиса???

> Ну и если и да, почему ты решил что ты поймешь, если до сих пор не понял?

Пока не увижу, откуда мне знать, пойму я её или нет?

> Подтверждение неадекватности автора цитаты.

Возражений, знач, нету?

> Ну, тебе показалось.

Ну, знач у меня искажённое восптиятие. Какое дело до моего восприятия *тебе*?

> еще одно подтверждение неадеквата.

Ещё одно признание отсосутствия нормальной аргументации?

bugmaker ★★★★☆
()
Ответ на: комментарий от Darkman

Блин. форматирование.

> лямбда в Питоне сделана по принципу 80/20 - для карринга хватает, остальное нужно редко, и для таких случаев можно и сделать локальную именованную функцию. 

Т.е. в вот таком вот замыкании: 

(defmethod foo ((map-descr map-level) (element map-element)) 
   (let ((map-probability 
           (second (get-land-type-tuple element map-descr))))
      #'(lambga (map) (multiple-value-bind (x y)
                         (get-random-map-position element) 
          (when (< (random 1.0) map-probality) 
            (place-map-element map x y element)))) 
    )) 

Я должен вместо лямбды городить именованую функцию ? И после этого 

> "почему плох Питон" 

??? 

Тут кстати еще и multiply dispatching, как с ним в Питоне?

Darkman ★★★
()
Ответ на: комментарий от bugmaker

>детецтед

К логопеду?..

>питон - это не змея, а змеюко позорное, шалнг, сосущий моск, член без лапок.

Нет, к психиатру. :(

vsemnazlo
()
Ответ на: комментарий от Darkman

Т.е. в вот таком вот замыкании: (defmethod foo ((map-descr map-level) (element map-element)) (let ((map-probability (second (get-land-type-tuple element map-descr)))) #'(lambga (map) (multiple-value-bind (x y) (get-random-map-position element) (when (< (random 1.0) map-probality) (place-map-element map x y element)))) ))

Знаешь, этому коду от одной локальной именованной функции хуже не станет :D

> Тут кстати еще и multiply dispatching, как с ним в Питоне?

multiplE, AFAIK. Искаропки нет в Питоне такого, понадобится - на декораторе сделаю за час :)

tailgunner ★★★★★
()
Ответ на: комментарий от bugmaker

> Статически прилинковалось гтк со всеми своими надобностями. Как сделать динамически, не осознал. Насколько понял, это не было возможно вообще.

Незнай у меня динамически линкуется, бинарь <3Мб...

imp ★★
()
Ответ на: комментарий от tailgunner

> Знаешь, этому коду от одной локальной именованной функции хуже не станет :D

Там ниже есть нормально отформатированный код. 
По существу есть что сказать ?

> Искаропки нет в Питоне такого, понадобится - на декораторе сделаю за час :) 

Переизобретаем велосипед ?

А если я добавлю optional и keywords параметров:

(defmethod foo ((map-descr map-level) &optional (options 11)
    &key ((element map-element) (get-default-element)))
 ....
)

Причём как видно ключевые параметры тоже с диспатчингом. 
Что будете делать ? 


Darkman ★★★
()
Ответ на: комментарий от Darkman

>> Знаешь, этому коду от одной локальной именованной функции хуже не станет :D

> Там ниже есть нормально отформатированный код.

Я не о форматировании, вообще-то, а о том, что с именованной локальной функцией код становится всего на 1 строку длиннее, чем с неименованной (это в Питоне, в Лиспе - на 0 строк, мне кажется).

> По существу есть что сказать ?

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

>> Искаропки нет в Питоне такого, понадобится - на декораторе сделаю за час :)

> Переизобретаем велосипед ?

Да назови это как хочешь. Кстати, судя по огромному количеству целых _диалектов_ Лиспа, велосипедостроительство присуще лисперам, так что кто бы говорил...

> А если я добавлю optional и keywords параметров:

Не проблема.

tailgunner ★★★★★
()

Кстати, в порядке флейма есть желание высказать одно наглое соображание.

Предельная простота синтаксиса лиспа - это его недосаток. Я не призываю к эклектике C# 3.0, но все-таки синтаксис не может быть *настолько* однообразным. Программы на Лиспе синтаксически и визуально выглядит как спальный район из одинаковых многоэтажек, монотонно и отупляюще.

Есть ли согласные с этим утверждением?

sv75 ★★★★★
()
Ответ на: комментарий от sv75

> Предельная простота синтаксиса лиспа - это его недосаток.

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

> Есть ли согласные с этим утверждением?

Да.

tailgunner ★★★★★
()
Ответ на: комментарий от sv75

> Есть ли согласные с этим утверждением?

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

stassats ★★★★
()
Ответ на: комментарий от stassats

> Если бы я не знал лисп, то я тоже бы ничего не понимал в нем.

Вы разницу между синтаксисом и семантикой чувствуете?

sv75 ★★★★★
()

На самом деле, лисп просто весьма сложный язык, на мой взгляд сложнее того же хаскеля (страшные имена функций, макросы, квотирование, специальные формы убивают).

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

pierre
()
Ответ на: комментарий от sv75

> Есть ли согласные с этим утверждением?

Есть. Мне лисповый код компактный - за раз охватывается много сущностей - читать легче.

Darkman ★★★
()
Ответ на: комментарий от tailgunner

> Я не о форматировании, вообще-то, а о том, что с именованной локальной функцией код становится всего на 1 строку длиннее, чем с неименованной (это в Питоне, в Лиспе - на 0 строк, мне кажется).

Это прежде всего неудобно. Если мне посреди метода надо прогнать map* или find с хитрой лямбдой, то проще описать её прямо здесь же, а не плодить идиотизм с именованной функцией (имя которой нафиг не сдалось и только засоряет namespace) плюс её еще надо писать отдельно а не сдесь же, что убивает читабельность.

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

Понятно. Сегодня в колбасе потребности нет.

> Кстати, судя по огромному количеству целых _диалектов_ Лиспа, велосипедостроительство присуще лисперам, так что кто бы говорил...

Ну назови-ка "огромное количество" _распространённых_ диалектов Лиспа.

> Не проблема.

А можно увидеть хоть набросочную реализацию и пример использования ?

Darkman ★★★
()
Ответ на: комментарий от pierre

> Из еще минусов по сравнению с хаскелем -- нет пристойной статической типизации

Я как-то уже говорил - если нужно будет чтобы компилер лупил меня по рукам - я возьму Аду. Что часто и делаю. В Лиспе статическая типизация дальше той что есть - нафиг не сдалась - только мешать будет.

> Может быть, еще отсутствие синтаксиса.

А это - плюс. Иначе писать макры можно было бы повесится.

Darkman ★★★
()
Ответ на: комментарий от Darkman

> Я как-то уже говорил - если нужно будет чтобы компилер лупил меня по рукам - я возьму Аду. Что часто и делаю. В Лиспе статическая типизация дальше той что есть - нафиг не сдалась - только мешать будет.

А вот я очень люблю, когда меня лупят по рукам сразу. Причем в пристойном функциональном языке :-) Я отлашивать ленюсь.

Кстати, в хаскеле есть статическая типизация для неполиморфных значений (Data.Dynamic).

pierre
()
Ответ на: комментарий от pierre

> Кстати, в хаскеле есть статическая типизация для неполиморфных значений (Data.Dynamic).

Прошу прощения, динамическая конечно же.

pierre
()
Ответ на: комментарий от Darkman

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

>Понятно. Сегодня в колбасе потребности нет.

Скорее уж в каком-нить фуагра

>> Кстати, судя по огромному количеству целых _диалектов_ Лиспа, велосипедостроительство присуще лисперам, так что кто бы говорил...

>Ну назови-ка "огромное количество" _распространённых_ диалектов Лиспа.

Я не могу оценивать их распространенность, потому что не варюсь в этой среде... CL, Scheme, newLisp, Emacs Lisp - это только разные языки. В рамках CL - CLisp, gcl, ecl, SBCL, в рамках Схемы - bigloo, kawa, guile, MzScheme. Это только по памяти, и только свободные.

А, еще Arc вроде как вышел.

>> Не проблема.

> А можно увидеть хоть набросочную реализацию

У меня "сегодня в колбасе потребности нет" :) Примеров декораторов, которые используются для проверки параметров, довольно много: http://wiki.python.org/moin/PythonDecoratorLibrary

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

tailgunner ★★★★★
()
Ответ на: комментарий от bugmaker

> Где методики сравнения степени человекоподобности синтаксиса???

Где обьяснение что такое clos???

И зачем оно, ага. Только от себя, да, не копипастой из Википедии, ok?

> (...) если в лиспе всё есть, и достаточно давно, и отлично вылизано, и продолжает интенсивно развиаваться?

В обратную сторону тоже верно (s/в лиспе/вне лиспа/), следовательно не аргумент.

anonymous
()
Ответ на: комментарий от pierre

> А вот я очень люблю, когда меня лупят по рукам сразу. Причем в пристойном функциональном языке :-) Я отлашивать ленюсь.

Из-за того что в Лиспе есть REPL - отлаживать можно моментально после любого количества изменений, после жуткого цикла Edit->Compile->Run test->Edit, отдыхаешь душой.

Darkman ★★★
()
Ответ на: комментарий от Darkman

> Из-за того что в Лиспе есть REPL - отлаживать можно моментально после любого количества изменений, после жуткого цикла Edit->Compile->Run test->Edit, отдыхаешь душой.

А я-то и не знал, что в хаскеле repl'a нету :-)

pierre
()

Всем отметившимся спасибо - мне как раз надо будет будет рожать обоснование выбора языковых средств.

marsijanin ★★
()
Ответ на: комментарий от tailgunner

> CL, Scheme, newLisp, Emacs Lisp

Scheme - для обучения, велосипед оправдан.

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

newLisp - вот уж действительно велосипед. Вопрос насколько распространённый ? Я о нём раза два всего в виде упоминаний слышал.

> CLisp, gcl, ecl, SBCL

Это исключительно реализаций разной степени стандартности. Мы же не называем кучу C компиляторов велосипедами.

> в рамках Схемы - bigloo, kawa, guile, MzScheme

Это надо сказать абсолютно неприспособленному для реального программирования стандарту Схемы. Вот и извращаются как хотят.

> http://wiki.python.org/moin/PythonDecoratorLibrary

У меня от этих self и __ в глазах рябит - прямо как у некоторых от скобок.

> Если вкратце, то декоратор - это функция, которая возвращает другую функцию, и последняя вызывается вместо декорированной. Через интроспекцию декоратор может очень многое.

IMHO смахивает на CLOS'овское замещение методов.

Darkman ★★★
()
Ответ на: комментарий от Darkman

>У меня от этих self и __ в глазах рябит - прямо как у некоторых от скобок.

В функциях-декораторах self не используется вообще :)

> IMHO смахивает на CLOS'овское замещение методов.

ИМХО, это квалификатор :around (хотя я мало знаю о CLOS))

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Где обьяснение что такое clos???

в спецификации

> И зачем оно, ага. Только от себя, да, не копипастой из Википедии, ok?

Хороший ИМХО пример применения в uncommon web и в cells

> В обратную сторону тоже верно (s/в лиспе/вне лиспа/), следовательно не аргумент.

А вот товарищ говорит что вне оно не нада, а если понадобится, то проще чережжёпу. Кому верить?

Итак, где методики сравнения степени человекоподобности синтаксиса???

bugmaker ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.