Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Lectures

Date Title Slides Other
Feb 15 (17) 1. Introduction Slides Log Snake imperative Snake functional
Feb 22 (24) 2. Lists Slides Log tasks.json
Mar 1 (3) 3. Higher order functions Slides Log dfs.rkt
Mar 8 (10) 4. Closures and persistent data structures Slides Log bfs.rkt
Mar 15 (17) 5. Streams and pattern matching Slides Log pattern-matching.rkt
Mar 22 (24) 6. Mutable data and interpreters Slides Log brainfuck.rkt
Mar 29 (31) 7. Lambda calculus Slides Log
Apr 5 (7) 8. Introduction to Haskell Slides Log snake.hs map.txt
Apr 12 (14) 9. Haskell types Slides Log
Apr 19 (21) 10. Type classes Slides Log Json.hs
Apr 26 (28) 11. Monads and Haskell IO Slides Log
May 3 (5) 12. Monadic parsing Slides Log Parser.hs
May 10 (12) 13. State monad Slides Log State.hs brainfuck.zip IOState.hs
May 17 (19) 14. Monoids and Foldables Slides Log FUP-hw.csv

Other resources

[1] Harold Abelson and Gerald Jay Sussman and Julie Sussman: Structure and Interpretation of Computer Programs, MIT Press, 1996. https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html

[2] R. Kent Dybvig: The Scheme Programming Language, Fourth Edition, MIT Press, 2009. https://www.scheme.com/tspl4/

[3] Raul Rojas: A Tutorial Introduction to the Lambda Calculus. http://www.inf.fu-berlin.de/lehre/WS03/alpi/lambda.pdf

[4] Greg Michaelson: An Introduction to Functional Programming Through Lambda Calculus, Dover edition, 2011.

[5] Graham Hutton: Programming in Haskell, Cambridge University Press, 2016.

Functors, Applicatives, and Monads In Pictures: https://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html

Lexical scopes: https://docs.racket-lang.org/guide/eval.html

Lazy evaluation: https://sites.ualberta.ca/~jhoover/325/CourseNotes/section/Scheme_3.htm

Streams: https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html

Side effects in scheme: https://courses.cs.washington.edu/courses/cse341/05au/lectures/scheme-side-effects.html

“Objects” in scheme: http://sarabander.github.io/sicp/html/3_002e1.xhtml

All sorts of materials on Haskell: https://haskell.org/documentation/

Creating Haskell types: http://learnyouahaskell.com/making-our-own-types-and-typeclasses

Haskell pattern matching: https://www.haskell.org/tutorial/patterns.html

Haskell modules: https://www.haskell.org/tutorial/modules.html

Haskell IO: https://wiki.haskell.org/Introduction_to_IO

Haskell IO: https://wiki.haskell.org/IO_inside

Haskell Monads: https://www.schoolofhaskell.com/user/bartosz/basics-of-haskell/10_Error_Handling

Haskell Functors: http://learnyouahaskell.com/functors-applicative-functors-and-monoids

courses/fup/lectures/start.txt · Last modified: 2022/05/17 10:01 by xhorcik