Search this site
Embedded Files
Skip to main content
Skip to navigation
Lorenzo Clemente
Home
Talks
Publications
Research
Master/PhD topics
PhD and postdoc positions
Teaching
Lorenzo Clemente
Home
Talks
Publications
Research
Master/PhD topics
PhD and postdoc positions
Teaching
More
Home
Talks
Publications
Research
Master/PhD topics
PhD and postdoc positions
Teaching
Programming Languages and Paradigms
(summer semester 2017-2018,
moodle
)
Resources
Haskell
Haskell: The Craft of Functional Programming
,
Simon Thompson, Third Edition, 2011.
Pearls of Functional Algorithm Design
,
Richard Bird, 2010.
Purely Functional Data Structures
, Chris Okasaki, 1996.
Monads:
The essence of functional programming
, Ph. Wadler, In Proc. of POPL'92.
Applications:
Game programming in Haskell
[
slides
].
Cryptocurrencies:
Project Cardano
.
Smart contracts:
Pact
.
Prolog
The Art of Prolog
, Leon S. Sterling and Ehud Y. Shapiro, Second Edition, 1999.
Smalltalk
Smalltalk-80: the language and its implementation
, Adele Goldberg, David Robson, 1983.
Haskell Labs
Introduction [
00.pdf
][
00-sol.pdf
]
All shades of Fibonacci [
01.pdf
][
01-sol.pdf
]
Filter, map, fold [
02.pdf
][
02-sol.pdf
]
Collatz, real fast [
03.pdf
][
time.hs
][
03-sol.pdf
]
Functor, Trees [
04.pdf
][
04-sol.pdf
]
Assignment
. Arithmetic expressions [
05.pdf
][
05-sol.pdf
]
Monads: Identity, Maybe, List [
06.pdf
][
06-sol.pdf
]
More monads: List (cont.), Stream, Probabilistic, Tree [
07.pdf
][
07-sol.pdf
]
Project
. Even more monads: Reader, Writer, State. Tying the knot [
08.pdf
][
08-sol.pdf
]
State monad (cont.). Comonads (sketch). [
09.pdf
][
09-sol.pdf
]
Monad transformers. Composition of monads [
10.pdf
][
10-sol.pdf
]
Parsing: Basic combinators. Parsing expressions in Polish notation [
11.pdf
][
11-sol.pdf
].
Parsing expressions in infix notation [
12.pdf
][
12-sol.pdf
].
Type checking and type reconstruction [
13.pdf
][
13-sol.pdf
].
PROLOG LABS
Basic relations, Peano numbers [
E00.pdf
].
Lists [
E01.pdf
].
Arithmetic. The accumulator technique [
E02.pdf
].
Quicksort. Flattening nested lists [
E03.pdf
].
Green and red cuts. Difference lists [
E04.pdf
].
Trees and graphs [
E05.pdf
].
SMALLTALK LABS
Installation, initialisation, class and method creation. See
moodle
.
Implementing a stack and a queue; primality testing [
notes.pdf
].
Shuffling a deck of cards [
notes.pdf
].
Google Sites
Report abuse
Google Sites
Report abuse