0

此问题是此处发布的问题的后续问题:

了解用户定义的附加列表标准ml

我遇到的问题是我似乎无法弄清楚如何正确地将附加节点包装在 NonNil 中。我的代码是:

fun alistAppend (xs: 'a alist, ys: 'a alist): 'a alist = 
    case xs of
    Nil => ys
   | _ =>  NonNil (Append (xs,ys));

我知道这段代码可能没有正确附加,我只是想弄清楚如何为这个函数获取正确的返回类型。包装附加节点的正确方法是什么?

4

1 回答 1

1

通过创建一个新的 val 能够弄清楚:

val paired = (xs ,ys); 

我能够同时检查 xs 和 ys 的值。只需检查 xs 和 ys 是否都是 NonNil,然后在 NotNil 节点中创建适当的附加节点。

于 2018-03-08T03:07:15.127 回答