如何在Standard ML中创建一个懒树

时间:2010-02-15 20:55:38

标签: sml

我想在标准ML中使用

实现一个懒树
datatype tr = N of int * unit->tr * unit->tr;

我尝试使用

fun form k = N(k,fn()=>form(k+1),fn()=>form(k+3));

作为概念的测试,但我收到错误消息,说明类型不匹配。

在ML中实现懒树的正确方法是什么?

1 个答案:

答案 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)