2017-01-18 19 views
2

我试图打印二进制树中给定级别的节点。我已经写了这样做的方法和保护条款来处理Elixir:被视为函数的方法参数

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 -1替换为height - 1

由于功能可以在不括号中药剂被调用,height其次-其次1既可以意味着height减去1或调用函数height与参数-1。药剂决定x-1x - 1应该是指x减去1x -1应该发出一个错误(可能),因为它可能看起来像你调用一个函数,并要求用户要么使用x-1x - 1x(-1)代替。