【问题标题】:Wrapping Datatypes in Standard ML在标准 ML 中包装数据类型
【发布时间】:2018-08-16 02:22:51
【问题描述】:

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

Understanding user defined append list Standard ml

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

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

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

【问题讨论】:

  • 这个问题最好作为对另一个问题的评论;为了解决这个问题,我已经澄清了我对这个问题的回答。

标签: sml ml mosml


【解决方案1】:

能够通过创建一个新的 val 来解决这个问题:

val paired = (xs ,ys); 

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2011-09-06
    相关资源
    最近更新 更多