私はscalaで次のことをしようとしています:
def addPoints(x1: Int, y1: Int)(x2: Int, y2: Int)(x3: Int, y3: Int) = {
doSomethingWith(x1, y1, x2, y2, x3, y3)
(addPoints _)
}
ただし、無限に再帰的な関数型を定義することはできないように見えるため、この関数の戻り値の型をどうするべきかを理解するのに苦労しています。私ができるようにしたいのは、次のとおりです。
type RecursiveFunction2[A, B] = (A, B) => RecursiveFunction2[A, B]
var pointAdder: RecursiveFunction2[Int, Int] = (addPoints _)
def onEvent(x: Int, y: Int) {
pointAdder = pointAdder(x, y)
}
ただし、型は自分自身を参照できません。Any
の戻り値の型を持ち、を呼び出すことに頼らずにこれを達成する方法はありますasInstanceOf[Function2[Int, Int, Any]]
か?