F#不完整的结构化构造

Div*_*ivh 16 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, 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
Run Code Online (Sandbox Code Playgroud)

使用此代码我收到以下错误:

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

不幸的是我不知道如何解决它.这是编程F#3.0的代码示例.

我非常感谢任何可以帮助我理解如何在将来避免这些错误的答案.

Cha*_*ion 17

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

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
Run Code Online (Sandbox Code Playgroud)