我最近开始学习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的代码示例.
我非常感谢任何可以帮助我理解如何在将来避免这些错误的答案.
我无法通过这段代码.
[<Test>]
member public this.Test() =
let mock = new Mock<IList<string>>()
let mockObj = mock.Object
mockObj.Add("aaa")
mock.Verify(fun m -> m.Add(It.IsAny<string>()), Times.Once())
Run Code Online (Sandbox Code Playgroud)
我得到的例外情况:
System.ArgumentException : Expression of type 'System.Void' cannot be used for constructor parameter of type 'Microsoft.FSharp.Core.Unit'
Run Code Online (Sandbox Code Playgroud)
我认为它与F#有关,没有正确推断labda表达式的数据类型,但我不知道如何解决这个问题.