Programowanie funkcyjne: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
→Języki mieszane: lit., int. |
BartekChom (dyskusja | edycje) m WP:SK, poprawa łącza |
||
Linia 1:
'''Programowanie funkcyjne''' (lub '''programowanie funkcjonalne''')
W czystym programowaniu funkcyjnym, raz zdefiniowana funkcja zwraca zawsze tą samą wartość dla danych wartości argumentów, tak jak prawdziwe funkcje matematyczne.
== Historia ==
Podstawą teoretyczną programowania funkcyjnego jest opracowany w latach 30. XX wieku przez [[Alonzo Church]]a [[rachunek lambda]], a dokładnie [[rachunek lambda z typami]].
Pierwszym funkcyjnym językiem programowania był [[IPL|Information Processing Language]] (IPL) opracowany przez Allena Newella, Cliffa Shawa i Herberta Simona w połowie lat 50. XX wieku dla maszyny JOHNNIAC. Jednakże przełom dla programowania funkcyjnego stanowiło opracowanie przez Johna McCarthy pod koniec lat pięćdziesiątych języka [[LISP]] dla maszyn IBM 700/7000. [[LISP]] wprowadził wiele cech spotykanych we współczesnych językach programowania. Opracowany w latach 70. język [[Scheme]] miał za zadanie uproszczenie i poprawienie języka [[LISP]].
Linia 18:
Do tej grupy należą języki, w których nie występują zmienne ani [[Skutek uboczny (informatyka)|efekty uboczne]], a wartościowanie jest [[wartościowanie leniwe|leniwe]].
Wejście/wyjście w takich językach musi się odbywać jakimś alternatywnym mechanizmem, np. za pomocą [[
Przedstawiciele tej podgrupy to [[Haskell]] oraz [[Clean]].
Linia 25:
Języki tej grupy są popularniejsze niż języki czysto funkcyjne. Umożliwiają one stosowanie zmiennych, pozwalają na efekty uboczne, tradycyjne wejście/wyjście i mieszanie stylu funkcyjnego z [[programowanie imperatywne|imperatywnym]] bądź [[programowanie obiektowe|obiektowym]]. Wartościowanie w nich jest przeważnie [[wartościowanie zachłanne|zachłanne]].
Do grupy tej należą [[Lisp|LISP]] z wszystkimi pochodnymi (np. [[Clojure]], [[Scheme]]), [[Erlang (język programowania)|Erlang]], [[
== Linki zewnętrzne ==
|