EUt+ Mobility
Go back

Course Page ✏️


Functional Programming - UTCN
CS32.00

Description
 | Introduction. Programming Paradigms. Basic concepts of programming in Haskell, Elm: functions, identifiers, recursion.
 | Basic concepts: recursion, constants, primitive data types, tuples, infix operators, evaluation.
 | Basic concepts: local declarations, data types, polymorphism.
 | Lists: list construction, basic operations on lists.
 | Lists: list operators (generators, guards, list comprehensions).
 | Trees: alternative data, pattern matching, exceptions, binary trees, list-tree conversions.
 | Trees: binary search trees, checking AVL balance property for trees, printing.
 | Implementing operations on sets. Propositional reasoner
 | Higher-order functions: anonymous functions, partial application, relations functions – data, combinator functions
 | Higher-order functions for lists (map, filter, fold).
 | Infinite data:  lazy evaluation, unbounded  objects, circular structures.
 | Lambda calculus: Lambda notation, conversions, combinators.
 | Reasoning on program correctness:    structural     induction, equivalence of functions, induction on the number of nodes.
 | Monads. Example of use cases.

ECTS credits
4

Teaching Language
English

Exam Language
English

Support Materials Language
English

Basic Learning Outcomes

Managing Entity (faculty)
Automation and Computer Science Faculty - UTCN