Ruby で非常に単純な再帰的なツリー トラバーサル メソッドを作成しました。ツリーのノードを簡単に反復処理できるように、このトラバーサルの結果を生成したいと考えています。
def bottom_up_traversal (node)
if(node.has_leaf_children?)
node.children.each{|i| yield i}
else
node.children.each{|i| bottom_up_traversal(i)}
yield node
end
end
そして、私がそれを呼び出そうとすると、次のようになります:
bottom_up_traversal(@root){|this_node| puts this_node }
「引数の数が間違っています (1 に対して 0)」というメッセージが表示されます。これはおそらく私が構文で行っているばかげたものであることは知っていますが、これが行われている(基本的なものでさえ)例を見つけることができません....コードの使用方法を誤解していると思います- bocks (確かに私には新しいもの)
では、このメソッドをどのように呼び出すべきか、またはどこが間違っているのか教えていただけますか?