U
Uwe Schmitt
Hello,
I'm new to ruby and I tried to implement a simple Tree
class, including tree traversal. The code is:
class Tree
def initialize(id, children)
@id = id
@children = children
end
def traverse_one
puts @id
@children.each do |subtree|
subtree.traverse_one
end
end
def traverse_iter
yield @id
@children.each do |subtree|
subtree.traverse_iter
end
end
end
three = Tree.new(3, [])
four = Tree.new(4, [])
two = Tree.new(2, [three,four])
one = Tree.new(1, [])
root = Tree.new(0,[one, two])
# works fine
root.traverse_one
# raises LocalJumError
root.traverse_iter{ |x| puts x }
As I commented Tree#traverse_one works fine, but Tree#traverse_iter
yields a LocalJumpError.
Any hints ?
Greetings, Uwe.
I'm new to ruby and I tried to implement a simple Tree
class, including tree traversal. The code is:
class Tree
def initialize(id, children)
@id = id
@children = children
end
def traverse_one
puts @id
@children.each do |subtree|
subtree.traverse_one
end
end
def traverse_iter
yield @id
@children.each do |subtree|
subtree.traverse_iter
end
end
end
three = Tree.new(3, [])
four = Tree.new(4, [])
two = Tree.new(2, [three,four])
one = Tree.new(1, [])
root = Tree.new(0,[one, two])
# works fine
root.traverse_one
# raises LocalJumError
root.traverse_iter{ |x| puts x }
As I commented Tree#traverse_one works fine, but Tree#traverse_iter
yields a LocalJumpError.
Any hints ?
Greetings, Uwe.