我最近开始学习F#,今天我遇到了无法摆脱的错误。我有以下代码:
open System
[<EntryPoint>]
let main argv =
type BinaryTree =
| Node of int * BinaryTree * BinaryTree
| Empty
let rec printInOrder tree =
match tree with
| Node (data, left, right)
-> printInOrder left
printfn "Node %d" data
printInOrder right
| Empty
-> ()
let binTree =
Node(2,
Node(1, Empty, Empty),
Node(4,
Node(3, Empty, Empty),
Node(5, Empty, Empty)
)
)
printInOrder binTree
0
有了这段代码,我得到以下错误:
绑定时或绑定时不完整的结构化构造
不幸的是,我不知道如何解决它。这是《 Programming F#3.0》一书中的代码示例。
我非常感谢任何可以帮助我理解将来如何避免此类错误的答案。
最佳答案
您需要在适当的上下文中(在函数外部)定义类型和函数。
open System
type BinaryTree =
| Node of int * BinaryTree * BinaryTree
| Empty
let rec printInOrder tree =
match tree with
| Node (data, left, right)
-> printInOrder left
printfn "Node %d" data
printInOrder right
| Empty
-> ()
let binTree =
Node(2,
Node(1, Empty, Empty),
Node(4,
Node(3, Empty, Empty),
Node(5, Empty, Empty)
)
)
[<EntryPoint>]
let main argv =
printInOrder binTree
0