Advertisement
Guest User

traversal

a guest
Jul 3rd, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.74 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(this, 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