【问题标题】:F# Incomplete structured constructF# 不完整的结构化构造
【发布时间】:2013-11-15 19:46:36
【问题描述】:

我最近开始学习 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 一书的代码示例。

我非常感谢任何可以帮助我了解如何在未来避免此类错误的答案。

【问题讨论】:

    标签: f#


    【解决方案1】:

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

    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
    

    【讨论】:

    • 那很快。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多