我有下面的代码是正确遍历所有节点的图形像这样:问题与Ruby的递归拉姆达呼叫
seen = {}
dfs = lambda do |node|
return if seen[node]
seen[node] = true
$edges[node].each {|n| dfs.call n}
end
dfs.call 0
不过,我想它写这样一来,我的理解是正确的:
$edges[node].each &dfs
然而,当我这样做似乎dfs
才会被调用节点的$edge[node]
列表的第一个元素。是什么赋予了?
确定吗?它似乎工作正常:http://ideone.com/RwUed – 2011-03-02 19:37:12