This is a study note of ZIO: a library for asynchronous and concurrent programming based on pure functional programming. This part covers the getting started and motivation of ZIO. It is based on Getting Started, the background, zio history and the video of Magic Tricks with Functional Effects.
The KISS definition in wikipedia is: “an acronym for “keep it simple stupid” or “keep it stupid simple”, is a design principle noted by the U.S. Navy in 1960. The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided”. This article summrizes its meaning in functional programming.
Study note of the Monad concept in Scala. It is based onthe book: Functional Programming, Simplified (FPS). As suggested by the author, one has to understand the state monad to really understand the monad concept. It helps to implement a lazy IO monad using the state monad concepts. Monad transformer is the last piece of the puzzle.
Study note of the chapter 22 of the book: Programming In Scala, 4th Edition.
Study note of the chapter 23, 26, 27 of the book: Programming In Scala, 4th Edition.
Type class is a useful concept to let a function process different types of data in a controlled approach. Scala provides implicity parameter, context bound and the
implicitly function to support the use of type class. This is a summary of the purpose and usage of type class. The later parts is primarily based on the the Youtube video Don’t fear the Implicits: Everything You need to Know About Typeclasses and Polymorphism in Scala
Study note of the chapter 19, 20, and 21 of the book: Programming In Scala, 4th Edition.