Difference between revisions of "Comparison of functional programming languages"
Jump to navigation
Jump to search
JaredUpdike (talk | contribs) |
m |
||
(9 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Glossary]] |
||
− | ==Haskell compared to other Functional Programming Languages== |
||
+ | {| class="wikitable" style="text-align:center;" |
||
− | {| border=1 cellspacing=0 cellpadding=5 |
||
| |
| |
||
− | ! Evaluation |
+ | ! Default Evaluation |
− | ! |
+ | ! Effects |
! Typing |
! Typing |
||
− | ! Pure |
+ | ! [[Pure]] |
|- |
|- |
||
! Haskell |
! Haskell |
||
| lazy |
| lazy |
||
− | | monads |
+ | | IO type + monads |
+ | | static |
||
+ | | yes |
||
+ | |- |
||
+ | ! PureScript |
||
+ | | eager |
||
+ | | Effect type + monads |
||
+ | | static |
||
+ | | yes |
||
+ | |- |
||
+ | ! Elm |
||
+ | | eager |
||
+ | | Cmd/Sub events |
||
| static |
| static |
||
| yes |
| yes |
||
Line 19: | Line 31: | ||
| static |
| static |
||
| yes |
| yes |
||
+ | |- |
||
− | |- |
||
+ | ! Miranda |
||
+ | | lazy |
||
+ | | lazy lists |
||
+ | | static |
||
+ | | yes |
||
+ | |- |
||
+ | ! F# |
||
+ | | eager |
||
+ | | raw side-effects |
||
+ | | static |
||
+ | | no |
||
+ | |- |
||
! ML |
! ML |
||
− | | |
+ | | eager |
− | | side-effects |
+ | | raw side-effects |
| static |
| static |
||
| no |
| no |
||
|- |
|- |
||
! Scheme |
! Scheme |
||
− | | |
+ | | eager |
− | | side-effects |
+ | | raw side-effects |
| dynamic |
| dynamic |
||
+ | | no |
||
+ | |- |
||
+ | ! Typed Racket |
||
+ | | eager |
||
+ | | raw side-effects |
||
+ | | gradual |
||
+ | | no |
||
+ | |- |
||
+ | ! Clojure |
||
+ | | eager |
||
+ | | raw side-effects |
||
+ | | dynamic + type hints |
||
| no |
| no |
||
|- |
|- |
||
! Erlang |
! Erlang |
||
− | | |
+ | | eager |
− | | |
+ | | raw side-effects |
− | | |
+ | | dynamic + type hints |
+ | | no |
||
− | | ?yes (shadows old version of variable) |
||
|} |
|} |
Latest revision as of 21:43, 3 May 2024
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 |