タグ

auxに関するtoracoyaのブックマーク (1)

  • ScalaのAuxパターン - k.dev

    ScalaにはAuxパターンというものがあるらしいのでまとめ。 解決したい課題 ある型に対しての型クラスインスタンスが複数欲しいときがあり、しかもその型クラス同士に依存関係があるとする。 trait TypeClass[T] { type R } def something[T](implicit tc: TypeClass[T], Monad[tc.R]): tc.R 上の例でいくとsomethingメソッドはTのTypeClassインスタンスが必要だ。 しかもTypeClass[T]がもつRをdependent typeで解決してそのRに対してのMonadインスタンスが必要である。 しかしこれはコンパイルが通らない。 なぜかと言うとScalaでは同じパラメタブロックに対してのdependent typeを許していない。 これを解決するのがAuxパターン。 Auxパターンの使い方 上の例

    ScalaのAuxパターン - k.dev
  • 1