1.5 KiB
1.5 KiB
Table
Topic | Description | Confidence |
---|---|---|
Signatures | Checking whether the expression types are correct | 😐 |
Programming | Writing code to solve an algorithmic problem | 😐 |
Higher order functions | Demonstrate understanding of higher order functions, usually by chaining them | 😊 |
List comprehensions | Demonstrate understanding of list comprehensions | 😊 |
Recursion/infinite lists | Infinitely generating lists, usually by recursion and/or list comprehensions | 😐 |
ADTs | Algebraic Data Types, usually defining a data type and writing functions that operate on it | 😕 |
Proof on lists | Proving properties of functions that operate on lists | 😕 |
Proof on trees/ADTs | Proving properties of functions that operate on trees or ADTs | 😕 |
expr = (:) . (:)
(:) :: a -> [a] -> [a]
(.) :: (c -> d) -> (b -> c) -> b -> d
=>
a -> ([a] -> [a]) = b -> c
b = a
c = [a] -> [a]
---
a' -> [a'] -> [a'] = c -> d
a -> [a] -> [a] = b -> c
b = a
c = [a] -> [a]
a' = [a] -> [a]
[[a] -> [a]] -> [[a] -> [a]] = d
expr :: b -> d
=>
expr :: a -> [[a] -> [a]] -> [[a] -> [a]]
f = \x y -> x (x (x y))
Rigorous solution of the above.
Look into
How does one do the equations?
CLI is functional lol
Lazy and singly-linked lists
Y combinator - ?