Наверное все, кто изучал информатику и вычислительную технику в университете, так или иначе, в курсе функционального программирования, например, столкнулся с Scheme – языком функционального программирования, произошедшем от Lisp, и известным как язык со скобками, то есть где всё является так называемыми S-выражениями. Скорее всего это был MIT/GNU Scheme или Racket. Но на самом деле реализаций Scheme великое множество. В этой статье собраны в таблицы различные реализации Scheme, указаны поддерживаемые ими версии языка, является ли реализация компилятором или интерпретатором, и другая информация.
Как-то заглянув на GitHub, обнаружил Koka – язык функционального программирования со статической типизацией. Koka разрабатывается с 2012 года Daan Leijen в Microsoft Research, USA. Его исходники выкладываются на GitHub под лицензией Apache 2.0. Как признаются его авторы, он ещё не готов для промышленного применения: у него нет библиотек, менеджера пакетов и полной поддержки в средах разработки. При этом сам язык достаточно стабилен, а компилятор полностью разработан. Отдельными моментами язык напоминает Rust, Haskell и Scala. Сам же по себе он интересен контролем побочных эффектов. Это его основная фишка. Приглашаю познакомиться с Koka и обсудить его свойства.
fun main(): console ()
println("Hello, World!")
Сначала пробежимся по свойствам языка, а затем рассмотрим один небольшой пример.
С момента публикации статьи Инструменты разработчика на языке Elm прошло полтора года. За это время в инструментарии для языка разработки веб-интерфейсов Elm произошли многочисленные изменения: появилась более удобная система сборки с возможностью генерации нового проекта; для редактора Atom набор дополнений в некоторых отношениях теперь лучше, чем для популярного тогда среди разработчиков на Elm редактора LightTable; заработал инспектор состояния приложения. Давайте пройдёмся по этому набору на простом примере.
Elm это функциональный язык программирования для разработки веб-приложений, работающих в браузере. Elm строгий, статически типизированный. Elm похож на Haskell, однако это лишь поверхностное сходство, ведь Elm изначально заточен для быстрой разработки веб-приложений. Эта статья представляет из себя шпаргалку для начинающих по основам разработки на языке Elm, а именно, здесь рассматривается организация проекта, инструментарий Elm и среда разработки Light Table. Часть шагов, если не актуально или не применимо, можно пропустить.
Начиная или продолжая изучать что-либо, мы интересуемся тем, а что нам бы ещё интересного и полезного об этом почитать? И вот, здесь я отвечаю на этот вопрос и привожу ссылки на наиболее интересные на мой взгляд источники информации на русском языке как о функциональном программировании вообще, так и об отдельных языках функционального программирования в частности, таких как Haskell, Scala, Elm.