次のようなノードで定義された2つのツリー(パス)があります
trait Node {
def getParent : Node
def op(n:Node)
}
親がnullになるまで2つのノードを並行して移動したい:
擬似:
def simultanousUp(/*var*/ a:Node,/*var*/ b:Node) =
while(a != null) {
a.op(b);
a = a.getParent;
b = if(b!=null) b.getParent else null /*or throw somthing*/;
}
質問: scala でこれを行うためのよりエレガントでパフォーマンスの高い方法はありますか?
誤解を避けるために: 同時実行に関する問題ではありません!