F#不完全结构化构造

F#不完全结构化构造,f#,F#,我最近开始学习F#,今天我犯了一个无法摆脱的错误。我有以下代码: open System [<EntryPoint>] let main argv = type BinaryTree = | Node of int * BinaryTree * BinaryTree | Empty let rec printInOrder tree = match tree with | Node (data,

我最近开始学习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
开放系统
[]
让主argv=
类型二叉树=
|int*BinaryTree*BinaryTree的节点
|空的
让rec printInOrder树=
匹配树
|节点(数据、左、右)
->打印顺序左
打印fn“节点%d”数据
打印顺序右
|空的
-> () 
设binTree=
节点(2,
节点(1,空,空),
节点(4,
节点(3,空,空),
节点(5,空,空)
)
)
打印顺序二叉树
0
使用此代码,我得到以下错误:

绑定中此点或之前的不完整结构化构造

不幸的是,我不知道如何修复它。这是《编程F#3.0》一书中的代码示例


我非常感谢任何能帮助我理解如何避免今后出现此类错误的答案。

您需要在适当的上下文中定义类型和函数(函数之外)

开放系统
类型二叉树=
|int*BinaryTree*BinaryTree的节点
|空的
让rec printInOrder树=
匹配树
|节点(数据、左、右)
->打印顺序左
打印fn“节点%d”数据
打印顺序右
|空的
-> () 
设binTree=
节点(2,
节点(1,空,空),
节点(4,
节点(3,空,空),
节点(5,空,空)
)
)
[]
让主argv=
打印顺序二叉树
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