我有这个简单的功能:
val CLC_seq=
fn (n) =>
(Cons (n, find_CLC_seq(COL_seq(n))))
当:
find_CLC_sqe is : int seq -> int;
COL_seq is: fn: int -> int seq;
编译器写道:
Error: operator and operand don't agree
operator domain: int * (Unit -> int seq)
operand: int * int
in expression:
(Cons (n, find_CLC_seq(COL_seq(n))))
是什么原因?我该如何解决?谢谢。
答案 0 :(得分:0)
嗯,目前还不清楚你要做的是什么,但编译器是正确的接你。 find_CLC_seq
会返回int
,这意味着您的Cons
正在尝试将int
纳入int
。这没有任何意义,因为利弊是为了在列表的前面添加一个元素(你的Cons
函数期望在{1}}的前面放置一个int
。(Unit -> int seq)
)。
我不知道CLC和COL是什么,但它看起来像是:
您对CLC_seq
的定义是错误的,因为如果find_CLC_seq
真的要返回int
,那么以这种方式使用它是没有意义的;
或者您对find_CLC_seq
的定义是错误的,其返回类型应该是int seq
或者是一个惰性序列,顾名思义。在这种情况下,错误是您没有向我们展示的一些代码。