我最近开始学习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
使用此代码我遇到以下错误:
绑定中此点或之前的不完整结构化构造
不幸的是我不知道如何修复它。这是编程F#3.0的代码示例。
我非常感谢任何可以帮助我理解如何在将来避免这些错误的答案。
答案 0 :(得分:15)
您需要在适当的上下文中定义类型和函数(在函数之外)。
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