Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2016
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.73 KB | None | 0 0
  1. member this.TraverseSubtreesLeftToRight =
  2.         let rec loop (tree:'T LazyTree) lowerLevel rightSiblings =
  3.           let tail =
  4.               lazy
  5.               (
  6.                   match rightSiblings with
  7.                           | first::rest -> loop first (List.append (tree.Children.Force()) lowerLevel) rest
  8.                           | [] ->
  9.                               match lowerLevel with
  10.                                       | first::rest -> loop first [] rest
  11.                                       | [] -> Empty
  12.               )
  13.           Cons(tree, tail)
  14.       loop this [] []
  15.   member this.TraverseLeftToRight =
  16.       this.TraverseSubtreesLeftToRight
  17.       |> LazyList.map (fun tree -> tree.Item)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement