Hello. I know that when a type is of `ref`, you need to construct it with
`new(return)` within a function. However how does one construct the type that's
wrapped inside an Option?
type
Tree*[T] = ref object of RootObj
item: T
parent, left, right: Tree[T]
# If I didn't have to construct, I would write the function like:
proc searchTree*[T](leaf: Tree[T]; search_for: T): Option[Tree[T]] =
if leaf.isNil():
return result # which is none(Tree[T])
elif leaf.item == search_for:
result = some(leaf)
return result
elif search_for < leaf.item:
result = searchTree(leaf, searchFor)
return result
else:
result = searchTree(leaf.right, searchFor)
Run