Lecturer(s)
|
|
Course content
|
1. Scheme - data structures (s-expressions) 2. Scheme - functions and special forms 3. Scheme - recursion and list operations 4. Scheme - lambda function, currying, closures 5. Scheme - high-order functions (map, zip, fold) 6. Scheme - macros and lazy evaluations (streams) 7. Scheme - continuations and corutines 8. Haskell - pattern matching 9. Haskell - static type system 10. Haskell - comprehensions and non strict evaluation 11. Haskell - algebraic data types 12. Haskell - type classes 13. Haskell - IO monads 14. Haskell - monads (principles)
|
Learning activities and teaching methods
|
unspecified
|
Learning outcomes
|
Basic principles and tools of functional programming in the Schema and Haskell programming language. Main target: practical knowledge of functional programming approaches (recursion, closures, high-order functions, lazy evolution) and its application in main-stream OOP languages (Java, C#, Boo), which contains increasing number of functional constructs.
|
Prerequisites
|
unspecified
|
Assessment methods and criteria
|
unspecified
homework assignment short sample program written in one of the languages (taught in this course) using the approaches of functional programming
|
Recommended literature
|
-
Skoupil D. Programy a projekty v jazyce Scheme I. Katedra informatiky PřF UP Olomouc.
|