205.1 Functional Programming
Table of Contents
- Lessons
- Lesson 1 - Evaluation
- Lesson 2 - Higher order functions
- Lesson 3 - Data structures
- Lesson 4 - Lists and pattern matching
- Lesson 5 - Advanced lists and High order functions
- Midterm preparation
- Midterm
- Lesson 6 - Tuples and comprehensions
- Lesson 7 - Advanced typing and infinite lists
- Lesson 8 - Futures and parallel collections
- Lesson 9 - DSLs
- Assignments
- Assignment 1 - Square root
- Assignment 2 - Map-reduce
- Assignment 3 - Binary tree
- Assignment 4 - Lists and pattern matching
- Assignment 5 - High-order functions on lists
- Assignment 6 - Sequence comprehension and tuples
- Assignment 7 - Advanced typing and infinite lists
- Assignment 8 - Advanced typing and infinite lists
- Assignment 9 - DSLs
Lessons
Lesson 1 - Evaluation
- Call by name / Call by value
- State-less functions
Lesson 2 - Higher order functions
- Curryfication
- Recursion
- Tail recursion
Lesson 3 - Data structures
- Functional data structures
- Binary tree
- Operation precedence
Lesson 4 - Lists and pattern matching
- List
- Pattern matching
- Genericity
Lesson 5 - Advanced lists and High order functions
- Lists
- High order functions
Midterm preparation
Midterm
Lesson 6 - Tuples and comprehensions
- Tuples
- For-comprehension
- Yield
- Flatmap
Lesson 7 - Advanced typing and infinite lists
- Types
- Bounds
- Traits
- Variance, covariance and contra-variance
- Infinite sequences
Lesson 8 - Futures and parallel collections
- Futures
- Actors
- Parallel collections
Lesson 9 - DSLs
- DSL
Assignments
Assignment 1 - Square root
- Recursion
- Newton
- Tail recursion
Assignment 2 - Map-reduce
- Fibonacci
- Sum
- Map-reduce
Assignment 3 - Binary tree
- Int set
- Binary tree
- Union / intersection / foreach
Assignment 4 - Lists and pattern matching
- Expression interpreter
- Binary tree
- List functions
- Predicates (any / every)
Assignment 5 - High-order functions on lists
- High-order functions
- Lists
- Map
- Fold
- Zip
Assignment 6 - Sequence comprehension and tuples
- Tuples
for
comprehension
Assignment 7 - Advanced typing and infinite lists
- Genericity
- Infinite lazy lists
Assignment 8 - Advanced typing and infinite lists
- Parallel collections
- Futures
Assignment 9 - DSLs
- DSL
Description
Languages
Scala
98.5%
SuperCollider
1.5%