Skip to content

Instantly share code, notes, and snippets.

@maxkorolev
maxkorolev / reader.scala
Created July 11, 2019 07:14
Naive Reader
case class Fun[A, B](run: A => B) {
def map[C](f: B => C): Fun[A, C] = Fun(a => f(run(a)))
def flatMap[C](f: B => Fun[A, C]): Fun[A, C] =
Fun(a => f(run(a)).run(a))
}
case class Config(db: String, logColor: String)
object Repo {
def get(id: Int): Fun[Config, Int] = Fun(conf => id)
}
@maxkorolev
maxkorolev / zio_environment_usage.scala
Last active July 4, 2019 13:40
ZIO environment usage
// simple programm to show how to use ZIO and to show which opportunities it can bring
import zio._
// trait to describe Config
trait HasConfig {
def dbConfig: DBConfig
def loggerConfig: LoggerConfig
}
case class DBConfig(db: String)
case class LoggerConfig(logColor: String)