Ответы пользователя по тегу Lisp
  • Как выбрать архитектуру приложения с учетом необходимости использования нескольких языков программирования?

    @potan
    Функциональный программист
    Самый правильный способ взаимодействия в этом случае - микросервисы обменивающиеся сообщаниями. Надо поискать подходящий брокер сообшений, поддерживаемый нужными языками, и строить инфраструктуру на его базе. Классическое решение - RabbitMQ, но может быть будет удобнее взять MQTT или что-то, что уже есть под рукой (в .net вроде какой-то есть).
    Ответ написан
    Комментировать
  • В чем смысл макро программирования?

    @potan
    Функциональный программист
    Макросы позволяют вводить в DSL новые переменные. Через функции высших порядков это делать проблематично, а переменные Lisp (или другого языка, в котором макросами реализуется DSL) могут быть в этом DSL неудобны. Например, макросами можно реализовать pattern matching.
    Макросы позволяют делать более эффективный код, с функциями высших порядков приходится полагаться на оптимизатор и runtime.
    Отлаживать функции высших порядков не всегда проще. Макрос можно раскрыть и оттестировать правильность раскрытия, с функциями приходится тестировать практически всю функциональность сразу.
    Ответ написан
    Комментировать
  • Несколько вопросов по Scheme и языкам функционального программирования?

    @potan
    Функциональный программист
    Scheme используется в "Инфосистемах Джет" - на ней (Racket) написан один из продаваемых ими продуктов. Но сейчас там больше используют Scala. Еще я видел примеры скриптов для какого-то САПРа для микроэлектроники (в распечатке руководства приводились примеры на TCL и Scheme). Есть достаточно пощный форматер SGML (и XML) - DSSSL с входным языком, близким к Schema.
    Пожалуй это все, что можно сказать про Scheme. Язык очень приятный, но учить его можно только just for fun или чтения SICP. Применить на практике врядли удасться.

    У Erlang есть достаточно специфическая область - телеком. Так же его активно применяют для распределения видеопотоков. Есть мощные фреймвоки для web, например Zotonic. Почему он мало применяется в других областях (он бы хорошо подошел для робототехники и корпоративных приложений) я не понимаю.

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

    Про Clojure слышал про ее применение в анализе данных. Но язык приятный и может быть применен вместе с Java (или даже со Scala).

    Еще стоит обратить внимание на F#. .NET платформа активно развивается, а этот язык мощный и не слишком сложный.
    Ответ написан
    Комментировать
  • COMMON LISP как первый язык программирования. Плюсы и минусы?

    @potan
    Функциональный программист
    CL переусложнен. Если Вы не чувствуйте себя монстром в математике, логике и философии, то как первый язык лучше взять что-нибудь по проще (Scheme из SICP - хороший вариант, можно взять статически типизированный Haskell).
    Ответ написан
    Комментировать
  • Язык lisp и что изучать далее?

    @potan
    Функциональный программист
    SICP - это про программирование вообще. Scheme - простой язык, позволяющий изучать программирование, а не язык.
    После SICP программировать можно на чем угодно, освоить новый синтаксис не сложно. Если нравятся скобочки, можно заняться Clojure.
    Но не надо воспринимать SICP как учебник LISP. Даже в простой Scheme есть много тонкостей, про которые в книге и не упомянается. Тем более в таком монстре, как Common Lisp или современных Racket и Clojure.
    Ответ написан
    Комментировать