Programowanie funkcyjne 1000-234aPFU
1. Wstęp do programowania funkcyjnego: jego zalety i wady.
2. Podstawowe konstrukcje programistyczne: wyrażenia, definicje, dopasowywanie wzorców itp.
3. Funkcje: deklarowanie i wykorzystywanie funkcji; typy funkcyjne; funkcje wyższego rzędu; dowodzenie własności funkcji.
4. Typy: ich deklaracje; typy algebraiczne; rekurencyjne definicje typów; wzorce dla typów algebraicznych; indukcja strukturalna.
5. Polimorfizm: typy polimorficzne, system typów.
6. Wyjątki: mechanizmy ich deklaracji i wykorzystywania.
7. Konstrukcje imperatywne w funkcyjnym języku programowania; łączenie programowania imperatywnego i funkcyjnego.
8. Strategie ewaluacji wyrażeń; leniwa ewaluacja i jej implementacja.
9. Zastosowania leniwej ewaluacji wyrażeń: wartości odroczone, spamiętywanie, strumienie.
10. Strumieniowy paradygmat programowania.
11. Modularyzacja: struktury, sygnatury, funktory.
Rodzaj przedmiotu
Literatura
* [AS] H. Abelson, G. J. Sussman, Struktura i interpretacja programów komputerowych, WNT 2002.
* [Reade] Ch. Reade, Elements of Functional Programming, Addison-Wesley, 1993.
* [L] X. Leroy, The Objective Caml system, http://caml.inria.fr/pub/docs/manual-ocaml/index.html.
* [ChMP] E. Chailloux, P. Manoury, B. Pagano, Developing Applications with Objective Caml, http://caml.inria.fr/oreilly-book/.
* [Remy] D. Rémy, Using, Understanding and Unraveling the Ocaml Language, http://caml.inria.fr/pub/docs/u3-ocaml/.
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: