Английская Википедия:Comparison of functional programming languages

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Short description

The table shows a comparison of functional programming languages which compares various features and designs of different functional programming languages.

Name Pure Lazy evaluation Typing Abstract data types Algebraic data types Data is immutable Type classes Garbage collection First appeared
Common Lisp Шаблон:No[1] Шаблон:Partial, simulated with thunks[2] Dynamic[3] Шаблон:Yes[4] Шаблон:Partial, with extension[5] Шаблон:No[6] Шаблон:Dunno Шаблон:Yes 1984
Scheme Шаблон:No[7] Шаблон:Yes[8] Dynamic[7] Шаблон:Yes[9] Шаблон:Partial, simulated with thunks[10] Шаблон:No[11] Шаблон:Dunno Шаблон:Yes 1975
Racket Шаблон:No Шаблон:Yes, default in Lazy Racket[12] Dynamic by default, gradual with Typed Racket[13] Шаблон:Yes[14] Шаблон:Yes2Yes, with Algebraic Racket[15] Шаблон:Partial[16] Шаблон:No Шаблон:Yes 1995
Clojure Шаблон:No[17] Шаблон:Yes[18] Dynamic[19] Шаблон:Yes[20] Шаблон:Yes[21] Шаблон:Yes[22] Шаблон:Dunno Шаблон:Yes 2007
Standard ML Шаблон:No[23] Шаблон:No[24][25] Static[26] Шаблон:Yes Шаблон:Yes Шаблон:Yes[27] Шаблон:No Шаблон:Yes 1983
OCaml Шаблон:No[28] Шаблон:Yes[28] Static[29] Шаблон:Yes[30] Шаблон:Yes[31] Шаблон:Yes[32] Шаблон:Partial, simulated with parametric modules[33] Шаблон:Yes 1996
F# Шаблон:No[34] Шаблон:Yes[35] Static[36] Шаблон:Yes[37] Шаблон:Yes[38] Шаблон:Yes[39] Шаблон:No Шаблон:Yes 2005
Haskell Шаблон:Yes[40] Шаблон:Yes2Default[41] Static[42] Шаблон:Yes[40] Шаблон:Yes[43] Шаблон:Yes[44] Шаблон:Yes[45] Шаблон:Yes 1990
Scala Шаблон:No[46] Шаблон:Yes[47] Static[46] Шаблон:Yes[48] Шаблон:Yes[48] Шаблон:Yes[49] Шаблон:Yes[50] Шаблон:Yes 2004
JavaScript Шаблон:No[51]Шаблон:Unreliable source? Шаблон:Partial, with extension[52] Dynamic[53] Шаблон:Partial, with extension[54] Шаблон:Partial, with extension[55] Шаблон:Partial[56][57] Шаблон:Dunno Шаблон:Yes 1995
Clean Шаблон:Yes[58] Шаблон:Yes, with optional strictness annotations[59] Static with uniqueness/optionally dynamic[60] Шаблон:Yes[59] Шаблон:Yes[59] Шаблон:Yes, except for unique types[59] Шаблон:Yes[59] Шаблон:Yes 1987
Miranda Шаблон:Yes[61] Шаблон:Yes2Default[62] Static[61] Шаблон:Yes[63] Шаблон:Yes[61] Шаблон:Yes Шаблон:No Шаблон:Yes 1986
SASL Шаблон:Yes[64] Шаблон:Yes Dynamic[65] Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes 1972
Elixir Шаблон:No Шаблон:Partial, with the Stream module[66] Dynamic Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:Dunno Шаблон:Yes 2012
Erlang Шаблон:No Шаблон:No[67] Dynamic Шаблон:Yes[68] Шаблон:No Шаблон:Yes[69] Шаблон:Dunno Шаблон:Yes 1986
Elm Шаблон:Yes Шаблон:No Static[70] Шаблон:Dunno Шаблон:Yes[71] Шаблон:Yes[70] Шаблон:No Шаблон:Yes 2012
Futhark Шаблон:Yes Шаблон:No Static[72] Шаблон:Yes Шаблон:Yes Шаблон:Yes[70] Шаблон:No Шаблон:Yes 2014
Python Шаблон:No[73] Шаблон:Partial, simulated with generators Dynamic[74] Шаблон:Yes[75] Шаблон:No Шаблон:Partial[76] Шаблон:Dunno Шаблон:Yes 1991
Idris Шаблон:Yes[77] Шаблон:Yes[77] Static[77] Шаблон:Yes[77] Шаблон:Yes[77] Шаблон:Yes[77] Шаблон:Yes[77] Шаблон:Yes 2007
Nix Шаблон:Yes Шаблон:No Static Шаблон:No Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes 2003
Wolfram Language Шаблон:No Шаблон:No Static Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Yes 1988
Kotlin Шаблон:No Шаблон:Partial, lazy delegation[78] and Sequence[79] Static Шаблон:Yes Шаблон:No Шаблон:Yes Шаблон:No Шаблон:Yes 2011
Swift Шаблон:No Шаблон:No Static Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:No Шаблон:Maybe 2014
Julia Шаблон:No Шаблон:No[80] Dynamic[81] Шаблон:Yes[81] Шаблон:No Шаблон:Partial[81] Шаблон:Dunno Шаблон:Yes 2012
PureScript Шаблон:Yes Шаблон:No Static Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Yes 2013
Rust Шаблон:No Шаблон:Partial, iterators are lazy,[82] external libraries exist[83] Static[84] Шаблон:Yes[85] Шаблон:Yes[86] Шаблон:Yes[87] Шаблон:Yes, through traits[85] Шаблон:No 2010
Bosque Шаблон:No Шаблон:No Static Шаблон:Yes Шаблон:Yes Шаблон:Yes Шаблон:Unknown Шаблон:Yes 2019
D Шаблон:Yes, multiple levels of opt-in[88][89] Шаблон:Yes, but not default[90] Static[91] Шаблон:Dunno Шаблон:Yes Шаблон:Yes[92] Шаблон:No Шаблон:Yes[93] 2001

References

Шаблон:Reflist

  1. Шаблон:Cite web
  2. Шаблон:Cite web
  3. Шаблон:Cite journal
  4. Шаблон:Cite web
  5. Шаблон:Cite web
  6. Шаблон:Cite web
  7. 7,0 7,1 Шаблон:Cite web
  8. Шаблон:Cite web
  9. Шаблон:Cite web
  10. Шаблон:Cite web
  11. Шаблон:Cite web
  12. Шаблон:Cite web
  13. Шаблон:Cite web
  14. Шаблон:Cite web
  15. Шаблон:Cite web
  16. Шаблон:Cite web
  17. Шаблон:Cite web
  18. Шаблон:Cite web
  19. Шаблон:Cite web
  20. Шаблон:Cite web
  21. Шаблон:Cite web
  22. Шаблон:Cite web
  23. Шаблон:Cite web
  24. Шаблон:Cite web
  25. Шаблон:Cite web
  26. Wikibooks:Standard ML Programming/Types
  27. Шаблон:Cite web
  28. 28,0 28,1 Шаблон:Cite web
  29. Шаблон:Cite web
  30. Шаблон:Cite web
  31. Шаблон:Cite web
  32. Шаблон:Cite web
  33. Шаблон:Cite web
  34. Шаблон:Cite web
  35. Шаблон:Cite web
  36. Шаблон:Cite web
  37. Шаблон:Cite web
  38. Шаблон:Cite web
  39. Шаблон:Cite web
  40. 40,0 40,1 Шаблон:Cite web
  41. Шаблон:Cite web
  42. Шаблон:Cite web
  43. Шаблон:Cite web
  44. Шаблон:Cite web
  45. Шаблон:Cite web
  46. 46,0 46,1 Шаблон:Cite web
  47. Шаблон:Cite web
  48. 48,0 48,1 Шаблон:Cite web
  49. Шаблон:Cite web
  50. Шаблон:Cite web
  51. List of multi-paradigm programming languages#Language overview
  52. Шаблон:Cite web
  53. Шаблон:Cite web
  54. Шаблон:Cite web
  55. Шаблон:Cite web
  56. Immutable object#JavaScript
  57. Шаблон:Cite web
  58. Шаблон:Cite web
  59. 59,0 59,1 59,2 59,3 59,4 Шаблон:Cite book
  60. Шаблон:Cite web
  61. 61,0 61,1 61,2 Шаблон:Cite web
  62. Шаблон:Cite web
  63. Шаблон:Cite web
  64. Turner, D.A. "An Implementation of SASL". University of St. Andrews, Department of Computer Science Technical Report. TR/75/4.
  65. Шаблон:Cite book
  66. Шаблон:Cite web
  67. Шаблон:Cite web
  68. Шаблон:Cite web
  69. Шаблон:Cite web
  70. 70,0 70,1 70,2 Шаблон:Cite web
  71. Шаблон:Cite web
  72. Шаблон:Cite web
  73. Шаблон:Cite web
  74. Шаблон:Cite web
  75. Шаблон:Cite web
  76. Immutable object#Python
  77. 77,0 77,1 77,2 77,3 77,4 77,5 77,6 Шаблон:Cite web
  78. Шаблон:Cite web
  79. Шаблон:Cite web
  80. Шаблон:Cite web
  81. 81,0 81,1 81,2 Шаблон:Cite web
  82. Шаблон:Cite web
  83. Шаблон:Cite web
  84. Шаблон:Cite web
  85. 85,0 85,1 Шаблон:Cite web
  86. Шаблон:Cite web
  87. Шаблон:Cite web
  88. Шаблон:Cite web
  89. Шаблон:Cite web
  90. Шаблон:Cite web
  91. Шаблон:Cite web
  92. Шаблон:Cite web
  93. Шаблон:Cite web