Blog post: https://medium.com/@olxc/the-evolution-of-a-scala-programmer-1b7a709fb71f
Inspired by The Evolution of a Haskell Programmer
17 different ways to write a program that calculates factorial based on user input.
akkadev
: using Akka framework (https://akka.io).almostfp
: a person making his first attemps in FP.apofutuhylo
: using apomorphism, futumorphism and hylomorphism recursion schemes.beginner
: a person making his first steps in Scala.cake
: Scala's Cake pattern.fixcombinator
: factorial using Y-combinator.freemonad
: program as ADTs interpreted into a target monad.freemonadfreek
: similar tofreemonad
but usingfreek
library for reduce lifting boilerplate.javadev
: *cough*johndegoes
: concurrent factorial and effects composition using ZIO (https://zio.dev).paramorphism
: factorial using paramorphism recursion scheme.peanoadt
: factorial encoded in peano numbers as ADTs.peanotypes
: type level version ofpeanoadt
.shapeless
: type level factorial using Shapeless (https://github.com/milessabin/shapeless).spakdev
: spark developer take on the factorial problem.taglessfinal
: tagless final encoding for effects composition.trampoline
: factorial using trampolining technique.