我想在标准ML中使用
实现一个懒树datatype tr = N of int * unit->tr * unit->tr;
我尝试使用
fun form k = N(k,fn()=>form(k+1),fn()=>form(k+3));
作为概念的测试,但我收到错误消息,说明类型不匹配。
在ML中实现懒树的正确方法是什么?
答案 0 :(得分:4)
datatype tr = N of int * unit->tr * unit->tr;
将其解析为
datatype tr = N of (int * unit) -> ( (tr * unit) -> tr)
你想要
datatype tr = N of int * (unit->tr) * (unit->tr)