関数のモジュールに暗黙的なクラス ラッパーを追加するために、ボイラープレートの scala を大量に作成していることに気づきました。たとえば、Seqs に対してこの関数を定義したとします。
def takeWhileRight[T](p: T=>Boolean)(s: Seq[T]): Seq[T] = s.reverse.takeWhile(p).reverse
この (完全に決定論的な) 暗黙的なラッパーを作成する必要があります。
implicit class EnrichSeq[T](value: Seq[T]) {
def takeWhileRight(p: T=>Boolean): Seq[T] = SeqOps.takeWhileRight(p)(value)
}
これは多くの例の 1 つです。いずれの場合も、暗黙的なラッパーは、転送先の関数から機械的に派生可能になります。
そのようなラッパーの生成を自動化できるツールまたはコード ジェネレーターを知っている人はいますか?