【问题标题】:In SML, is it possible to define an alias for a pattern?在 SML 中,是否可以为模式定义别名?
【发布时间】:2017-02-01 20:38:52
【问题描述】:

假设我有以下数据类型

datatype mytype = Foo | Bar | Baz

想写一个类似下面的函数

fun myfun ((Foo|Bar), (Foo|Bar)) = something
|   myfun (Baz, _) = somethingelse
|   ...

有没有办法为模式Foo|Bar创建一个别名,这样我就可以写一次,避免重复自己?

【问题讨论】:

  • 你可以设计一个非常轻量级的预处理器,它允许你使用简单的缩写,在编译之前用它们的值替换。

标签: sml smlnj


【解决方案1】:

很遗憾,答案是“不”。 “抽象模式”或“视图”的概念已被多次提出,但这是一个棘手的领域,并且没有任何提案能完全令人满意(这也适用于 Ocaml 或 Haskell 等其他语言)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 2016-10-25
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    相关资源
    最近更新 更多