我有下面的代碼是正確遍歷所有節點的圖形像這樣:問題與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