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:
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 |
---|---|
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 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 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 | Vlad |
3.4 Recursion over lists and generalizing to higher-order functions Exercises 3.6 - 3.23 | Casey |
3.5 Trees | Casey, Vlad, Amish |
Chapter 2 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 |