Новые функциональные языки
Функциональное программирование существует по крайней мере с 1958 года (создание Lisp), но сейчас происходит ренессанс со старыми функциональными языками, которые сбрасываются, и создаются новые функциональные языки.
Какие функциональные языки существуют, которые недавно разработаны или находятся в процессе разработки?
Я понимаю, что вы можете писать чисто функциональные программы на большинстве языков высокого уровня, поэтому с функциональными языками я подразумеваю языки, специально предназначенные для функционального программирования, такие как F #.
Если у вас есть ссылки на учебные пособия, примеры вики или кода, я рекомендую вам добавить их в свой ответ!
Ответы
Ответ 1
Вот краткий список тех, которые я тестировал до сих пор (кроме F #, о которых вы уже упоминали):
- Haskell (статически типизированный, чистый) - Обратите внимание на бесплатную электронную книгу Real World Haskell, со всем, что вам нужно знать об этом.
- Clojure (динамически типизированный, нечеткий)
- Scala (статически типизированный, нечеткий) - полное (двухстороннее) взаимодействие с Java
- Newspeak
- Erlang - сделано для удобства обработки concurrency
Ответ 2
Меня удивляет, что древняя работа вроде ML (Caml), Haskell и Erlang передается как "новая". Scala является подлинно новым, а F # является попыткой адаптировать старый язык ML к платформе .NET и обязательно будет интересным.
Если вы хотите что-то действительно новое, Agda - это новый Haskell. Agda включает в себя множество уроков, извлеченных из 20-летних языков, таких как Haskell и 30-летних языков, таких как ML, и он подталкивает конверт к самой последней работе в системах типов. Гарантируйте, чтобы ваша голова взорвалась или удвоила ваши деньги!
Ответ 3
Хотелось бы добавить OCaml в микс. Я был привлечен к нему, потому что он уделяет большое внимание производительности. Если я правильно понимаю, F # является производным от OCaml.
Но он не просто функциональный, он хорошо подходит и для императивного программирования.
Ответ 4
Haskell существует некоторое время, и сделано много всего основного материала (достаточно для написания твердых приложений), но во многих отношениях это еще академический язык. Это красиво, на самом деле: как коммерческий программист, я могу хорошо выполнить свою работу, но у меня есть возможность окунуться в некоторые из более интересных концепций и техник, которые недоступны на других языках, не переключаясь на диалекты где я не могу развернуть мой ежедневный код.
При программировании в Haskell увлекательно видеть будущее настолько близко, что вы можете его коснуться.
Ответ 5
Новый функциональный язык с основным фокусом на метапрограммировании:
http://www.meta-alternative.net/mbase.html
Некоторые примеры: http://www.meta-alternative.net/pfront.pdf
Ответ 6
Nemerle - это функциональный, статически типизированный язык с обширной поддержкой метапрограммирования .NET. Как и F #, он был вдохновлен ML, но его синтаксис тесно связан с С#, что делает его более читаемым. Тип вывода в Nemerle еще более мощный, чем ML, позволяя ему выводить типы из использования в присутствии перегрузки.
Ответ 7
Erlang, OCaml, Haskell, Scheme и языки программирования, такие как R (статистика), Mathematica (символическая математика), J и K (финансовый анализ) и XSLT (XML)
Ответ 8
Хорошо, если вы хотите действительно нового, попробуйте Babel-17. Только поймать: его еще не реализовано:-) Но есть спецификация. Проверьте http://www.babel-17.com.
Ответ 9
Функциональное программирование в настоящее время принято в мейнстриме, поэтому то, что раньше было академическим путем, теперь разделено на академические и промышленные реализации.
F # - высокопрофильный пример промышленного функционального языка в развитии (здесь является примером игры Джона Конвея Жизни с графическим интерфейсом, написанным в 32 строках F #, здесь - моя книга о F #). Другие включают Clojure Rich Hickey и HLVM.
Последние высокоуровневые функциональные языки из академических кругов - ATSLang и Scala.