Difference between revisions of "Comparison of functional programming languages"

From HaskellWiki
Jump to navigation Jump to search
m (Comparison moved to Comparison of functional programming languages)
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  +
[[Category:Glossary]]
==Haskell compared to other Functional Programming Languages==
 
   
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
 
|
 
|
! Evaluation
+
! Default Evaluation
! IO
+
! Effects
 
! Typing
 
! Typing
 
! Pure
 
! Pure
Line 10: Line 10:
 
! 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 09:20, 31 January 2019


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