定義の次の部分の違いに興味があります
abstract class OperationTree {
def foldOT[T] (flr : (OT, OT) => T, fsv : (Number => T), fs : (String => T), a : OT) : T =
a match {
case SimpleValue(v) => fsv(v)
case SimpleString(s) => fs(s)
case SimpleOperation(lot, rot, bop) => flr(foldOT[T](flr,fsv,fs,lot) , foldOT[T](flr,fsv,fs,rot))
}
}
上記のコードは正しいです (願っています!!)。でも最初に書いた時はdefの部分が違ってた
def foldOT[T] (flr : (OT, OT => T), fsv : (Number => T), fs : (String => T), a : OT) : T =
この定義では、エラーが発生しました (OT、OT => T はパラメーターを取りません) パラメーターを取りません。
flr : (OT, OT => T) の本当の意味は、
クラスOTが折り目を付けるのに適切な場所であるかどうかについてアドバイスを受けます. (とにかく今はパッケージオブジェクトに移動しています)
ありがとう!