These are chat archives for rpscala/rpscala

25th
Aug 2016
harry
@harry0000
Aug 25 2016 04:37
一応Webフレームワーク回で話すつもりだった内容を資料にして上げておきました。
「現在日時」を変更してテストする
http://qiita.com/harry0000/items/367b4c8f9b28b80898c6
Tatsunori TAMAKI
@qtamaki
Aug 25 2016 07:13
:+1:
harry
@harry0000
Aug 25 2016 10:49
先日口頭でやり取りしたカリー化せずに型推論させる方法、大雑把にこんな感じでしょうか?
念のため…
object Main extends App {
  {
    def tupled[A](f: => A, v: A): (A, A) = (f, v)
    tupled(1L, "id")
    tupled("1L", "id")
  }

  { /* curried */
    def tupled[A](f: => A)(v: A): (A, A) = (f, v)
    // tupled(1L)("id") // compile error
    tupled("1L")("id")
  }

  {
    def tupled[A, B](f: => A, v: B)(implicit ev: A =:= B): (A, B) = (f, v)
    // tupled(1L, "id") // compile error
    tupled("1L", "id")
  }
}
harry
@harry0000
Aug 25 2016 15:55
型推論というよりは型制約でしたね(コンパイルエラーにしたい)
森さんから紹介のあったモナドトランスフォーマの論文
shift/reset による - お茶の水女子大学
http://pllab.is.ocha.ac.jp/~asai/jpapers/ppl/kaneko13.pdf