2025-05-06 14:37:16 +02:00
2025-02-18 15:04:00 +01:00
2025-05-06 14:32:03 +02:00
2025-02-18 15:04:00 +01:00
2025-03-11 13:13:16 +01:00
2025-05-06 14:37:16 +02:00

205.1 Functional Programming

Lambda in the colors of the Scala logo (red)


Table of Contents


Lessons

Lesson 1 - Evaluation

Files

  • Call by name / Call by value
  • State-less functions

Lesson 2 - Higher order functions

Files

  • Curryfication
  • Recursion
  • Tail recursion

Lesson 3 - Data structures

Files

  • Functional data structures
  • Binary tree
  • Operation precedence

Lesson 4 - Lists and pattern matching

Files

  • List
  • Pattern matching
  • Genericity

Lesson 5 - Advanced lists and High order functions

Files

  • Lists
  • High order functions

Midterm preparation

Files

Midterm

Files

Lesson 6 - Tuples and comprehensions

Files

  • Tuples
  • For-comprehension
  • Yield
  • Flatmap

Lesson 7 - Advanced typing and infinite lists

Files

  • Types
  • Bounds
  • Traits
  • Variance, covariance and contra-variance
  • Infinite sequences

Lesson 8 - Futures and parallel collections

Files

  • Futures
  • Actors
  • Parallel collections

Lesson 9 - DSLs

Files

  • DSL

Assignments

Assignment 1 - Square root

Files

  • Recursion
  • Newton
  • Tail recursion

Assignment 2 - Map-reduce

Files

  • Fibonacci
  • Sum
  • Map-reduce

Assignment 3 - Binary tree

Files

  • Int set
  • Binary tree
  • Union / intersection / foreach

Assignment 4 - Lists and pattern matching

Files

  • Expression interpreter
  • Binary tree
  • List functions
  • Predicates (any / every)

Assignment 5 - High-order functions on lists

Files

  • High-order functions
  • Lists
  • Map
  • Fold
  • Zip

Assignment 6 - Sequence comprehension and tuples

Files

  • Tuples
  • for comprehension

Assignment 7 - Advanced typing and infinite lists

Files

  • Genericity
  • Infinite lazy lists

Assignment 8 - Advanced typing and infinite lists

Files

  • Parallel collections
  • Futures

Assignment 9 - DSLs

Files

  • DSL
Description
Functional Programming course and exercises in Scala
Readme 111 KiB
Languages
Scala 98.5%
SuperCollider 1.5%