Comparison of functional programming languages: Difference between revisions

From HaskellWiki
m (wikitable)
mNo edit summary
 
(7 intermediate revisions by 6 users not shown)
Line 1: Line 1:
==Haskell compared to other Functional Programming Languages==
[[Category:Glossary]]


{| class="wikitable" style="text-align:center;"
{| class="wikitable" style="text-align:center;"
|
|
! Evaluation
! Default Evaluation
! IO
! 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
| strict
| eager
| side-effects
| raw side-effects
| static
| static
| no
| no
|-
|-
! Scheme
! Scheme
| strict
| 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
| strict
| eager
| side-effects
| raw side-effects
| ?dynamic w/ compiler annotions for static typing
| dynamic + type hints
| no
| no
|}
|}

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