tracks/fsharp/exercises/binary-search-tree/Example.fs in trackler-2.2.1.105 vs tracks/fsharp/exercises/binary-search-tree/Example.fs in trackler-2.2.1.106

- old
+ new

@@ -2,15 +2,15 @@ type Node = { left: Node option; value: int; right: Node option } let left node = node.left let right node = node.right -let value node = Some node.value +let data node = node.value -let singleton value = { left = None; right = None; value = value } +let private singleton value = { left = None; right = None; value = value } -let rec insert newValue (tree: Node) = +let rec private insert newValue (tree: Node) = let loop newValue = function | Some x -> Some <| insert newValue x | None -> Some <| singleton newValue @@ -18,17 +18,17 @@ | x when x <= tree.value -> { tree with left = loop newValue tree.left } | _ -> { tree with right = loop newValue tree.right } -let toList tree = +let sortedData tree = let rec loop = function | Some node -> loop node.left @ [node.value] @ loop node.right | None -> [] loop <| Some tree -let fromList = +let create = function | [] -> failwith "Cannot create tree from empty list." | x::xs -> List.fold (fun acc elem -> insert elem acc) (singleton x) xs