SML-运算符和操作数不一致

我有这个简单的功能:
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))))
是什么原因?我该如何解决?谢谢。     
已邀请:
        好吧,不清楚您到底想做什么,但是编译器是正确的选择。
find_CLC_seq
返回
int
,这意味着您的
Cons
试图将
int
限制在
int
上。这没有任何意义,因为缺点是要在列表的前面添加元素(您的
Cons
函数希望将
int
放在惰性序列的前面,a10ѭ)。 我不知道CLC和COL是什么,但看起来像: 您对
CLC_seq
的定义是错误的,因为如果
find_CLC_seq
实际上是要返回
int
的,那么以这种方式使用它就没有意义; 或您对
find_CLC_seq
的定义是错误的,顾名思义,其返回类型应为
int seq
或惰性序列。在这种情况下,该错误是由您未向我们显示的一些代码造成的。     

要回复问题请先登录注册