Comparison of functional programming languages: Difference between revisions

From HaskellWiki
(added Miranda to table)
mNo edit summary
 
(3 intermediate revisions by 3 users not shown)
Line 3: Line 3:
{| 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 25: Line 37:
| static
| static
| yes
| 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 annotations 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