Leave a comment

Comments 39

mehanizator September 11 2012, 20:40:30 UTC
а есть ли у вас мнение про OCaml?

Reply

thesz September 11 2012, 20:49:44 UTC
Есть.

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

Хороший высокоуровневый язык. Если не хотите сильно ломать себе шаблон, то вполне.

Как-то так.

Reply

mehanizator September 11 2012, 20:53:45 UTC
спасибо.

а если в сравнении с Хаскелем? в особенности интересует развитость платформ для разного продакшена.

Reply

thesz September 11 2012, 21:48:50 UTC
Хаскель более развит - cabal, поддержка многопоточности (и скоро - распределённых вычислений), великолепная библиотека времени выполнения (размер зелёной нити меньше, чем у Эрланга в полтора раза).

OCaml сейчас пользуется поддержкой некоторых банков и тоже стал подбираться к уровню Хаскеля, но всё ещё не дотягивает.

Reply


(The comment has been removed)

thesz September 11 2012, 21:45:22 UTC
А сможете ли вы перепрыгнуть со стека на замыкания в куче? Когда записи активации находятся в куче, а не в стеке.

Вот тут пример, почему полезно: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.8219

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

Reply


mega_mosk September 11 2012, 21:16:58 UTC
Лисп на данный момент мертвый. Окамл и хаскел для кодогенерирующих. Скорее окамл.

Reply

thesz September 11 2012, 21:49:29 UTC
Что означает "для кодогенерирующих"?

Reply

nivanych September 13 2012, 07:13:11 UTC
Ни на что хаскель больше не годится, кроме как делать DSL'и - как-то так я понял ;-)

Reply

ext_1035828 September 12 2012, 06:26:33 UTC
А кложура как же?

Reply


vshabanov September 11 2012, 23:03:38 UTC
Еще у макросов есть проблема, что "вы можете сделать на лиспе любой DSL, если только он является лиспом". Т.е. если на том же хаскеле можно вводить свои операторы, пользоваться OverloadedStrings/Num/fromIntegral/do-notation, в результате чего можно получить достаточно прикольно выглядящий DSL, то на лиспе будут скобочки и приплыли ( ... )

Reply

thesz September 12 2012, 08:50:41 UTC
Конструкторы значений могут быть закодированы по Чёрчу с помощью функций. То есть, это такие специально обрабатываемые ФВП. Поэтому и "ФВП с маскировочной сеткой".

У Лиспа есть ещё более совершенно оружие, называется reader macros или как-то так. С ним можно получить полноценный синтаксис.

Но практически никто им не пользуется. ;)

Reply

vshabanov September 12 2012, 09:35:07 UTC
> Но практически никто им не пользуется. ;)

Конечно, потому что там надо синтаксический разбор самому писать (что несколько сложнее, чем написать infixr/infixl для оператора). В этом то и фишка фразы, что "на лиспе вы можете сделать DSL с любым синтаксисом, если этот синтаксис -- лисп"

Reply

dmytrish September 12 2012, 13:15:55 UTC
Еще у макросов есть проблема, что "вы можете сделать на лиспе любой DSL, если только он является лиспом"
- не совсем: https://gist.github.com/3706515
Но да, это дикое извращение и фактически свой собственный парсер.

Reply


ext_687890 September 12 2012, 05:24:22 UTC
Максимовский код был портирован с маклиспа на коммон лисп и несет много рудиментов. Я бы, хоть и запоздало, порекомендовал зайти сюда: http://www.cliki.net/index, и выбрать в разделе Free Software Lisp Libraries понравившуюся тематику и посмотреть как там обстоят дела. Может parenscript - кодогенерация в яваскрипт.

Reply

thesz September 12 2012, 07:37:34 UTC
Спасибо.

Но я не думаю, что это изменит моё мнение. Вот попробуйте ответить на те же вопросы: переносимы ли приёмы из макро-определений parenscript на другие языки? Не являются ли макро-определения в parenscript обходом недостаточной выразительности Лиспа, как такового?

Reply

ext_1394242 September 12 2012, 07:47:20 UTC
Ни на один вопрос ответить не могу. Просто знаю как работает и пользуюсь.

Reply

thesz September 12 2012, 08:39:04 UTC
И о чём это нам говорит? Это говорит нам, что вы считаете Лисп вершиной языков программирования. Ибо другие вам неинтересны.

В противном случае у вас были бы ответы.

Reply


Leave a comment

Up