要するに:私は Scala の DSL のようなものを、型 T の整数 N と A,B のために書こうとしA <N B
ています。そうする良い可能性はありますか?
長い: Scala でTGrep2の DSL を書こうとしています。私は現在書くことに興味があります
A <N B B is the Nth child of A (the rst child is <1).
良い方法で、可能な限り Scala の元の定義に近づけます。<
N と B を引数として取ることができる Operatorをオーバーロードする方法はありますか。
私が試したこと:私は2つの異なる可能性を試しましたが、あまり満足できませんでした:
scala> val N = 10
N: Int = 10
scala> case class T(n:String) {def <(i:Int,j:T) = println("huray!")}
defined class T
scala> T("foo").<(N,T("bar"))
huray!
と
scala> case class T(n:String) {def <(i:Int) = new {def apply(j:T) = println("huray!")}}
defined class T
scala> (T("foo")<N)(T("bar"))
warning: there were 1 feature warnings; re-run with -feature for details
huray!