gpt4 book ai didi

syntax - 构造函数参数不匹配

转载 作者:行者123 更新时间:2023-12-02 10:51:13 24 4
gpt4 key购买 nike

我为懒惰的二叉树创建了一个类型:

type 'a lBT = LEmpty | LNode of 'a * (unit -> 'a lBT) * (unit -> 'a lBT);;

并想创建一个实例:
let exlBST = LNode(3, function() -> LEmpty, function() -> LEmpty);;

但我收到此错误:
Error: The constructor LNode expects 3 argument(s),
but is applied here to 2 argument(s)

你能告诉我发生了什么吗?单元不被视为论点吗?

最佳答案

LNode的参数未按您期望的那样进行解析,它是一个具有两个函数的三元组,而是一对,其中第二项是返回另一对的函数。至少在中间函数周围使用括号,但最好还是在中间使用括号,以使意图明确:

let exlBST = LNode (3, (function () -> LEmpty), (function () -> LEmpty));;

不幸的是,其中一些使用OCaml语法的奇怪的边缘情况/歧义分析。您将学习如何及时处理它,但是一个好的经验法则是:如果有疑问,请使用括号(或在适当时使用 begin/ end)

关于syntax - 构造函数参数不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53529553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com