├── .gitignore ├── README.md └── notes ├── progfun └── src │ ├── week1 │ ├── factorial.sc │ └── worksheet.sc │ ├── week2 │ ├── excersize.sc │ ├── product.sc │ └── rationals.sc │ ├── week3 │ ├── List.scala │ ├── excersize.sc │ └── nth.sc │ ├── week4 │ ├── Expr.scala │ ├── Nat.scala │ └── show.sc │ ├── week5 │ └── listfun.sc │ └── week6 │ ├── mnemonics.sc │ ├── nqueens.sc │ ├── pairs.sc │ └── polynomials.sc ├── week 1 ├── 001-getting-started.md ├── 002-elements-of-programming.md ├── 003-conditionals-and-value-definitions.md ├── 004-example-newtons-square-roots.md ├── 005-blocks-and-lexical-scoping.md └── 006-tail-recursion.md ├── week 2 ├── 001-higher-order-functions.md ├── 002-currying.md ├── 003-example-finding-fixed-points.md ├── 004-scala-syntax-review.md ├── 005-functions-and-data.md ├── 006-more-fun-with-rationals.md └── 007-evaluation-and-operators.md ├── week 3 ├── 001-class-hierarchies.md ├── 002-how-classes-are-organized.md └── 003-polymorphism.md ├── week 4 ├── 001-functions-as-objects.md ├── 002-objects-everywhere.md ├── 003-subtyping-and-generics.md ├── 004-variance.md ├── 005-decomposition.md ├── 006-pattern-matching.md └── 007-lists.md ├── week 5 ├── 001-more-functions-on-lists.md ├── 002-pairs-and-tuples.md ├── 003-implicit-parameters.md ├── 004-higher-order-list-functions.md ├── 005-reduction-of-lists.md ├── 006-reasoning-about-concat.md └── 007-a-larger-equational-proof-on-lists.md ├── week 6 ├── 001-other-collections.md ├── 002-combinatorial-search-and-for-expressions.md ├── 003-combinatorial-search-example.md ├── 004-queries-with-for.md ├── 005-translation-of-for.md ├── 006-maps.md └── 007-putting-the-pieces-together.md └── week 7 ├── 001-structural-induction-on-trees.md └── 002-streams.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/README.md -------------------------------------------------------------------------------- /notes/progfun/src/week1/factorial.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week1/factorial.sc -------------------------------------------------------------------------------- /notes/progfun/src/week1/worksheet.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week1/worksheet.sc -------------------------------------------------------------------------------- /notes/progfun/src/week2/excersize.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week2/excersize.sc -------------------------------------------------------------------------------- /notes/progfun/src/week2/product.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week2/product.sc -------------------------------------------------------------------------------- /notes/progfun/src/week2/rationals.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week2/rationals.sc -------------------------------------------------------------------------------- /notes/progfun/src/week3/List.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week3/List.scala -------------------------------------------------------------------------------- /notes/progfun/src/week3/excersize.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week3/excersize.sc -------------------------------------------------------------------------------- /notes/progfun/src/week3/nth.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week3/nth.sc -------------------------------------------------------------------------------- /notes/progfun/src/week4/Expr.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week4/Expr.scala -------------------------------------------------------------------------------- /notes/progfun/src/week4/Nat.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week4/Nat.scala -------------------------------------------------------------------------------- /notes/progfun/src/week4/show.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week4/show.sc -------------------------------------------------------------------------------- /notes/progfun/src/week5/listfun.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week5/listfun.sc -------------------------------------------------------------------------------- /notes/progfun/src/week6/mnemonics.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week6/mnemonics.sc -------------------------------------------------------------------------------- /notes/progfun/src/week6/nqueens.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week6/nqueens.sc -------------------------------------------------------------------------------- /notes/progfun/src/week6/pairs.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week6/pairs.sc -------------------------------------------------------------------------------- /notes/progfun/src/week6/polynomials.sc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/progfun/src/week6/polynomials.sc -------------------------------------------------------------------------------- /notes/week 1/001-getting-started.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 1/001-getting-started.md -------------------------------------------------------------------------------- /notes/week 1/002-elements-of-programming.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 1/002-elements-of-programming.md -------------------------------------------------------------------------------- /notes/week 1/003-conditionals-and-value-definitions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 1/003-conditionals-and-value-definitions.md -------------------------------------------------------------------------------- /notes/week 1/004-example-newtons-square-roots.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 1/004-example-newtons-square-roots.md -------------------------------------------------------------------------------- /notes/week 1/005-blocks-and-lexical-scoping.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 1/005-blocks-and-lexical-scoping.md -------------------------------------------------------------------------------- /notes/week 1/006-tail-recursion.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 1/006-tail-recursion.md -------------------------------------------------------------------------------- /notes/week 2/001-higher-order-functions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 2/001-higher-order-functions.md -------------------------------------------------------------------------------- /notes/week 2/002-currying.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 2/002-currying.md -------------------------------------------------------------------------------- /notes/week 2/003-example-finding-fixed-points.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 2/003-example-finding-fixed-points.md -------------------------------------------------------------------------------- /notes/week 2/004-scala-syntax-review.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 2/004-scala-syntax-review.md -------------------------------------------------------------------------------- /notes/week 2/005-functions-and-data.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 2/005-functions-and-data.md -------------------------------------------------------------------------------- /notes/week 2/006-more-fun-with-rationals.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 2/006-more-fun-with-rationals.md -------------------------------------------------------------------------------- /notes/week 2/007-evaluation-and-operators.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 2/007-evaluation-and-operators.md -------------------------------------------------------------------------------- /notes/week 3/001-class-hierarchies.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 3/001-class-hierarchies.md -------------------------------------------------------------------------------- /notes/week 3/002-how-classes-are-organized.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 3/002-how-classes-are-organized.md -------------------------------------------------------------------------------- /notes/week 3/003-polymorphism.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 3/003-polymorphism.md -------------------------------------------------------------------------------- /notes/week 4/001-functions-as-objects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 4/001-functions-as-objects.md -------------------------------------------------------------------------------- /notes/week 4/002-objects-everywhere.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 4/002-objects-everywhere.md -------------------------------------------------------------------------------- /notes/week 4/003-subtyping-and-generics.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 4/003-subtyping-and-generics.md -------------------------------------------------------------------------------- /notes/week 4/004-variance.md: -------------------------------------------------------------------------------- 1 | Eh... I'll circle back to this one. -------------------------------------------------------------------------------- /notes/week 4/005-decomposition.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 4/005-decomposition.md -------------------------------------------------------------------------------- /notes/week 4/006-pattern-matching.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 4/006-pattern-matching.md -------------------------------------------------------------------------------- /notes/week 4/007-lists.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 4/007-lists.md -------------------------------------------------------------------------------- /notes/week 5/001-more-functions-on-lists.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 5/001-more-functions-on-lists.md -------------------------------------------------------------------------------- /notes/week 5/002-pairs-and-tuples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 5/002-pairs-and-tuples.md -------------------------------------------------------------------------------- /notes/week 5/003-implicit-parameters.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 5/003-implicit-parameters.md -------------------------------------------------------------------------------- /notes/week 5/004-higher-order-list-functions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 5/004-higher-order-list-functions.md -------------------------------------------------------------------------------- /notes/week 5/005-reduction-of-lists.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 5/005-reduction-of-lists.md -------------------------------------------------------------------------------- /notes/week 5/006-reasoning-about-concat.md: -------------------------------------------------------------------------------- 1 | Gonna circle back to this one... -------------------------------------------------------------------------------- /notes/week 5/007-a-larger-equational-proof-on-lists.md: -------------------------------------------------------------------------------- 1 | Circlin' back.... -------------------------------------------------------------------------------- /notes/week 6/001-other-collections.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 6/001-other-collections.md -------------------------------------------------------------------------------- /notes/week 6/002-combinatorial-search-and-for-expressions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 6/002-combinatorial-search-and-for-expressions.md -------------------------------------------------------------------------------- /notes/week 6/003-combinatorial-search-example.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 6/003-combinatorial-search-example.md -------------------------------------------------------------------------------- /notes/week 6/004-queries-with-for.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 6/004-queries-with-for.md -------------------------------------------------------------------------------- /notes/week 6/005-translation-of-for.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 6/005-translation-of-for.md -------------------------------------------------------------------------------- /notes/week 6/006-maps.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 6/006-maps.md -------------------------------------------------------------------------------- /notes/week 6/007-putting-the-pieces-together.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 6/007-putting-the-pieces-together.md -------------------------------------------------------------------------------- /notes/week 7/001-structural-induction-on-trees.md: -------------------------------------------------------------------------------- 1 | Optional - circlin' back... -------------------------------------------------------------------------------- /notes/week 7/002-streams.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iirvine/functional-programming-in-scala/HEAD/notes/week 7/002-streams.md --------------------------------------------------------------------------------