Scala 2.7 では、メソッドを同じクラスの別のメソッドのパラメーターとして使用したいと考えています。
コンパニオンであるクラスとオブジェクトがあります。
class mM(var elem:Matrix){
//apply a function on a dimension rows (1) or cols (2)
def app(func:Iterable[Double]=>Double)(dim : Int) : Matrix = {
...
}
//utility function
def logsumexp(): Double = {...}
}
object mM{
def apply(elem:Matrix):mM={new mM(elem)}
def logsumexp(elem:Iterable[Double]): Double ={
this.apply(elem.asInstanceOf[Matrix]).logsumexp()
}
}
通常、私はこのようにlogsumexpを使用mM(matrix).logsumexp
しますが、使用できない行に適用したい場合はmM(matrix).app(mM.logsumexp)(1)
、エラーが発生します:
error: reference to mM is ambiguous;
it is imported twice in the same scope by
import mM
and import mM
最もエレガントなソリューションは何ですか? logsumexp() を別のクラスに変更する必要がありますか?
ありがとう、=)