Hello, I know in a function returning a ref type, I need to construct the 
result first: `new(result)`

However what if the result is an Option type? I need to construct what's inside 
before wrapping it inside an option. How can I do this?

Example code:
    
    
    type
        Tree*[T] = ref object of RootObj
            item: T
            parent, left, right: Tree[T]
    
    proc searchTree*[T](leaf: Tree[T]; search_for: T): Option[Tree[T]] =
        if leaf.get().isNone():
            return result # which should be none(Tree[T])
        elif leaf.get().item == search_for:
            result = some(leaf)
            return result
        elif search_for < leaf.get().item:
            result = searchTree(leaf.get(), searchFor)
            return result
        else:
            result = searchTree(leaf.get().right, searchFor)
    
    
    Run

Reply via email to