Programowanie funkcyjne jest stylem programowania opartym na obliczaniu wartości wyrażeń, w przeciwieństwie do programowania imperatywnego, wykorzystującego modyfikacje stanu programu przez instrukcje. Celem wykładu jest przedstawienie odmiennego paradygmatu programowania i pokazanie sytuacji, w jakich jest on użyteczny.
W trakcie wykładu będą przedstawione pojęcia i techniki programowania funkcyjnego w oparciu o konstrukcje języka OCaml (język z rodziny ML). Język F# z platformy .Net jest w znacznym stopniu kompatybilny z językiem OCaml. Będzie omawiany m.in. system typow z polimorfizmem parametrycznym, funkcje wyższych rzędow, rekursja ogonowa, mechanizm dopasowania wzorca, sygnatury, struktury i funktory, strategie wartościowania wyrażeń. Będzie też omawiany język Scheme jako przedstawiciel językow z typizacją dynamiczną. Będą też odniesienia do języka Haskell, znanego z przedmiotu "Programowanie", jako przedstawiciela językow funkcyjnych z ewaluacją leniwą.
Wymagania:
Programowanie
Czwartki godz.12:00-12:45 (konieczne jest wcześniejsze uzgodnienie). Możliwe są też inne terminy po uzgodnieniu za pośrednictwem poczty elektronicznej: zs@cs.uni.wroc.pl.