2017-01-18 14 views
2

バイナリツリーの与えられたレベルでノードを印刷しようとしています。私はこれを行うための方法と、この方法は、そのエリクシール:メソッド引数が関数として扱われています

高さを言って私にエラーを与えている(私は質問には含まれていない)基本条件

def get_node_at_level(root, height) do 
    get_node_at_level(root.left, height -1) 
    get_node_at_level(root.right, height -1) 
end 

を処理するためのガード句を書かれています - (stdlib)lists.erl:1353::lists.mapfoldl/3 (stdlib)lists.erl:1354:関数呼び出しのように見えますが、 "height"という名前の変数があります。 :lists.mapfoldl/3

答えて

4

短い答え:height -1height - 1に置き換えてください。 heightマイナス1を意味するか、引数-1と機能heightを呼び出すことができいずれか1続い-続い

機能はエリクサーに括弧なしで呼び出すことができますので

height。エリクサーはx-1x - 1が、それはあなたが関数を呼び出しているように見えるかもしれないのでxマイナス1x -1ながらは、(おそらく)エラーを発行しなければならない意味すべきであると判断し、x-1またはx - 1またはx(-1)代わりを使用するかをユーザーに尋ねます。

関連する問題