我在编写函数的基本情况时遇到问题。我有一个我已经声明的数据类型。在基本情况下,我需要用一些东西替换 nil 。我如何告诉它该函数不会返回任何内容?
datatype 'a newThing = Cons of 'a option * (unit -> 'a newThing);
fun permutation [] = Cons(NONE, fn () => nil)
| permutation l = .....;
Error: operator and operand don't agree [tycon mismatch]
operator domain: 'Z option * (unit -> 'Z newThing)
operand: 'Z option * (unit -> 'Y list)
in expression:
Cons (NONE,(fn () => nil))
编辑:我不允许更改数据类型。