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