Comparison of functional programming languages
Default Evaluation | Effects | Typing | Pure | |
---|---|---|---|---|
Haskell | lazy | IO type + monads | static | yes |
PureScript | eager | Effect type + monads | static | yes |
Elm | eager | Cmd/Sub events | static | yes |
Clean | lazy | uniqueness | static | yes |
Miranda | lazy | lazy lists | static | yes |
F# | eager | raw side-effects | static | no |
ML | eager | raw side-effects | static | no |
Scheme | eager | raw side-effects | dynamic | no |
Typed Racket | eager | raw side-effects | gradual | no |
Clojure | eager | raw side-effects | dynamic + type hints | no |
Erlang | eager | raw side-effects | dynamic + type hints | no |