Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Abstraction (computer science) wikipedia , lookup
Object-oriented programming wikipedia , lookup
Programming language wikipedia , lookup
Reactive programming wikipedia , lookup
Falcon (programming language) wikipedia , lookup
Go (programming language) wikipedia , lookup
C Sharp (programming language) wikipedia , lookup
Corecursion wikipedia , lookup
Structured programming wikipedia , lookup
Monad (functional programming) wikipedia , lookup
Functional Programming (MTAT.05.106) • Lecturers: Varmo Vene & Kalmer Apinis. • On Tuesdays (r612) and Thursdays (r611) 10:15 to 12:00. • 5x homework + presentation/attendance (20%) + exam (20%) • For more information: courses & moodle. Grading • 5x Homework exercises (10% + 10% + 10% + 10% + 20%) 1. Pure Haskell 2. Pretty-Printing in Haskell 3. Combinatory logic in OCaml 4. Monadic programming 5. Compiling to the TIM • Participation or Presentation (20%) • Topics will be on courses.cs.ut.ee • Final Exam (mostly theory, 20%) Course plan – Theory and Practice • λ-calculus • Reduction • Church-Rosser theorem • Combinatory logic • Quick intro to Haskell • Intermediate Haskell programming • Pretty-Printing • Computability • QuickCheck • Church thesis • Monadic Parsing • Elements of type theory • Simply typed λ-calculus • Curry-Howard isomorphism • Polymorphic λ-calculus • Hindley-Milner type system • Monads • Quick intro to OCaml • Compiling functional languages • Type-classes • From reduction-based to reduction free • Three Instruction Machine • Vectorized continuation