Book #11 - Functional Programming in Kotlin

Functional Programming in Kotlin
by Marco Vermeulen, Runar Bjarnason, and Paul Chiusano (2021 - MEAP)

Meetup: https://www.meetup.com/Los-Gatos-Rust-Reading-Group/events/276826075
Zoom: https://us02web.zoom.us/j/84281187589
Manning: https://www.manning.com/books/functional-programming-in-kotlin
Github: https://github.com/fpinkotlin/fpinkotlin

 

March 15, 2021 - There's been a coup. We are no longer doing Kotlin. The insurgents have declared Scala as our new overlord (In these reading groups, we are flexible and go with where the energy is)

We are switching over to the book - Programming in Scala, 5th edition by Martin Odersky, Lex Spoon, Bill Venners, and Frank Sommers

March 1, 2021 - We all lead busy lives outside of this, so flexibility is important. Tonight we’ve adopted two proposals. 1) Let’s stagger the weeks so that we cover the readings one week and then go through the exercises the following week. If we need to take two weeks on the readings, then we’ll go through the exercises on the third week. 2) On days where we don’t have a quorum because of work pressure (life happens), let’s do a skip-week. Today is our first skip-week – one of us has a release tomorrow and another has a broken test that he’s fixing.

Chapter 5

Strictness and laziness

March 22, 2021 - Reading - 5.1 – 5.4

March 29 - Exercises

Present

Chapter 5

Strictness and laziness

March 22, 2021 - Reading - 5.1 – 5.4

March 29 - Exercises

Present

5.1 Strict and non-strict functions

 

5.2 An extended example: lazy lists

 

5.3 Separating program description from evaluation

 

5.4 Producing infinite data streams through corecursive functions

 

Exercises 5.1 - 5.16

 

Chapter 4

Handling Error without Exceptions

February 22, 2021 - 4.1 - 4.3.1
March 1, 2021 - Skip week
March 8, 2021 - Reading - 4.3.2 - 4.4

March 15, 2021 - Exercises

Presenter

Chapter 4

Handling Error without Exceptions

February 22, 2021 - 4.1 - 4.3.1
March 1, 2021 - Skip week
March 8, 2021 - Reading - 4.3.2 - 4.4

March 15, 2021 - Exercises

Presenter

4.1 The problems with throwing exceptions

Casey

4.2 Problematic alternatives to exceptions

Amish

4.3 Encoding success conditions with Option

Vlad

4.4 Encoding success and failure conditions with Either

Casey

Exercises 4.1 - 4.8

Amish, Casey

Chapter 3

Functional Data Structures
February 1, 2021 – 3.1 - 3.2
February 8, 2021 – 3.3 - 3.5

February 15, 2021 - Exercises 3.15-3.28

Presenter

Chapter 3

Functional Data Structures
February 1, 2021 – 3.1 - 3.2
February 8, 2021 – 3.3 - 3.5

February 15, 2021 - Exercises 3.15-3.28

Presenter

3.1 Defining functional data structures

Amish

3.2 Working with functional data structures

Sean

3.3 Data sharing in functional data structures

Exercises 3.1 - 3.5

Vlad

3.4 Recursion over lists and generalizing to higher-order functions

Exercises 3.6 - 3.23

Casey

3.5 Trees

Exercises 3.24 - 3.28

Casey, Vlad, Amish

 

Chapter 2
Getting Started with Functional Programming in Kotlin

January 25, 2021

Presenter

Chapter 2
Getting Started with Functional Programming in Kotlin

January 25, 2021

Presenter

2.1 Higher-order Functions: Passing Function to Functions

Sean

2.2. Polymorphic Functions: Abstracting Over Types

Amish Shah

2.3 Following Types to Implementations

Vlad

 

Enter your name below if you’ve completed the exercise. We’ll pick a lead on each as needed.

Exercise 2.1

Casey, Sean

Exercise 2.2

Casey, Sean, Vlad

Exercise 2.3

Casey, Sean, Vlad

Exercise 2.4

Casey, Sean, Vlad

Exercise 2.5

Casey, Sean, Vlad