205.1 Functional Programming
---
Table of Contents
* [Lessons](#lessons)
* [Lesson 1 - Evaluation](#lesson-1---evaluation)
* [Lesson 2 - Higher order functions](#lesson-2---higher-order-functions)
* [Lesson 3 - Data structures](#lesson-3---data-structures)
* [Lesson 4 - Lists and pattern matching](#lesson-4---lists-and-pattern-matching)
* [Lesson 5 - Advanced lists and High order functions](#lesson-5---advanced-lists-and-high-order-functions)
* [Midterm preparation](#midterm-preparation)
* [Midterm](#midterm)
* [Assignments](#assignments)
* [Assignment 1 - Square root](#assignment-1---square-root)
* [Assignment 2 - Map-reduce](#assignment-2---map-reduce)
* [Assignment 3 - Binary tree](#assignment-3---binary-tree)
* [Assignment 4 - Lists and pattern matching](#assignment-4---lists-and-pattern-matching)
* [Assignment 5 - High-order functions on lists](#assignment-5---high-order-functions-on-lists)
---
## Lessons
### Lesson 1 - Evaluation
[Files](src/Lesson1)
- Call by name / Call by value
- State-less functions
### Lesson 2 - Higher order functions
[Files](src/Lesson2)
- Curryfication
- Recursion
- Tail recursion
### Lesson 3 - Data structures
[Files](src/Lesson3)
- Functional data structures
- Binary tree
- Operation precedence
### Lesson 4 - Lists and pattern matching
[Files](src/Lesson4)
- List
- Pattern matching
- Genericity
### Lesson 5 - Advanced lists and High order functions
[Files](src/Lesson5)
- Lists
- High order functions
### Midterm preparation
[Files](src/MidTermPrep1)
### Midterm
[Files](src/MidTerm1)
## Assignments
### Assignment 1 - Square root
[Files](src/Assignment1)
- Recursion
- Newton
- Tail recursion
### Assignment 2 - Map-reduce
[Files](src/Assignment2)
- Fibonacci
- Sum
- Map-reduce
### Assignment 3 - Binary tree
[Files](src/Assignment3)
- Int set
- Binary tree
- Union / intersection / foreach
### Assignment 4 - Lists and pattern matching
[Files](src/Assignment4)
- Expression interpreter
- Binary tree
- List functions
- Predicates (any / every)
### Assignment 5 - High-order functions on lists
[Files](src/Assignment5)
- High-order functions
- Lists
- Map
- Fold
- Zip