Известно, что все функциональные языки обладают некоторыми базовыми свойствами, такими как использование функций в качестве основного блока построения для программ со всеми последствиями, такими как использование рекурсии вместо итерации. Однако существуют и некоторые фундаментальные различия. Lisp использует единственное представление для кода и данных Lisp, тогда как ML не имеет стандартного представления кода ML. Erlang имеет встроенный актерский дизайн concurrency. У Хаскелла есть монады. Haskell делает различие в системе статического типа между чистыми и нечистыми функциями; ML не делает.
Каковы отличительные основные различия между другими функциональными языками (Clojure, F #, Arc, любой другой)? Под фундаментальным я подразумеваю то, что влияет на то, как вы развиваетесь на этом языке, а не, например, интегрировано ли оно с какой-то широко распространенной средой выполнения.