【问题标题】:Can I expand a typedef in SMLNJ?我可以在 SMLNJ 中扩展 typedef 吗?
【发布时间】:2011-07-15 00:30:22
【问题描述】:

所以我用标准 ML 编写了一些代码,并尝试用 smlnj 编译它。我收到以下错误:

Error: operator and operand don't agree [tycon mismatch]
  operator domain: unit -> Absyn.fundec
  operand:         unit
                   -> (pos * pos) * 
                      ((string * int) * (string * int) * Absyn.tp * Absyn.tp
                       * Absyn.exp)

现在,根据我对类型的粗略检查,这看起来应该是类型匹配。我不会告诉你,因为我想要一个通用的解决方案,而不是我的代码中的错误。

是否可以将这两种类型扩展为基本数据类型,以便弄清楚它们有何不同?由于所有这些 typedef 漂浮在周围,事情变得令人困惑,并且在 .sml 文件中挖掘所有定义并在纸上编写扩展似乎是一个乏味的解决方案。

我很想说:

typeof Absyn.fundec

并弄清楚到底什么样的表达式可能会产生有效的fundec。

【问题讨论】:

    标签: sml smlnj ml


    【解决方案1】:

    由于 Absyn.fundec 不是 int、bool 等标准类型。因此必须有一个数据类型或类型声明来准确告诉您 Absyn.fundec 类型是如何定义的。

    【讨论】:

      猜你喜欢
      • 2011-04-14
      • 1970-01-01
      • 2016-08-16
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      相关资源
      最近更新 更多