Skip to content

Instantly share code, notes, and snippets.

View kenta-polyglot's full-sized avatar

Kenta Katsumata kenta-polyglot

View GitHub Profile
@n4to4
n4to4 / circe.scala
Created September 20, 2016 21:50
circe example
object CirceMain extends App {
import io.circe.Encoder
import io.circe.syntax._
case class Person(firstName: String, lastName: String, age: Int)
val person = Person("Joe", "Black", 42)
{
implicit val personEnc: Encoder[Person] = Encoder.forProduct3(
"firstName", "lastName", "age") {
@calippo
calippo / Mappable.scala
Created July 27, 2016 21:51
Convert case class to map in shapeless
object Mappable {
implicit class ToMapOps[A](val a: A) extends AnyVal {
import shapeless._
import ops.record._
def toMap[L <: HList](implicit
gen: LabelledGeneric.Aux[A, L],
tmr: ToMap[L]
): Map[String, Any] = {
val m: Map[tmr.Key, tmr.Value] = tmr(gen.to(a))
@runarorama
runarorama / gist:a8fab38e473fafa0921d
Last active April 13, 2021 22:28
Compositional application architecture with reasonably priced monads
sealed trait Interact[A]
case class Ask(prompt: String)
extends Interact[String]
case class Tell(msg: String)
extends Interact[Unit]
trait Monad[M[_]] {
def pure[A](a: A): M[A]
@takungsk
takungsk / 0-type_parameter.md
Created September 21, 2012 09:11
[Scala] 型パラメータによる 関数の一般化 例

[Scala] 型パラメータによる 関数の一般化 例

Monoid, 型パラメータ, implicitを使った加算する関数の一般化

半年ぐらい前ですが、Scalaz の解説のプレゼンテーションである、 Scalaz Presentationという プレゼン動画を見ました。
Nick Partridgeさんというオーストラリアの方が、約1年半前に Scalazの説明をされているプレゼンなのですが
半年前に見たときは 何をやっているのかさっぱり理解出来ませんでした。
今 もう一度みると Scalaz に限らず 型パラメータつかって関数を一般化するのに
段階をおって一般化されていくので すごくよくできたプレゼンの内容であるのがやっとわかるようになってきました。