【问题标题】:Case expressions and "overloading" parameter count案例表达式和“重载”参数计数
【发布时间】:2019-09-12 15:27:18
【问题描述】:

我是 ML 新手,想通过以下方式使用 case 表达式和模式匹配。

fun myFun(a,b) = myFun(a,b,[])
|   myFun(a,b,c) = (*do something here*)
|   myFun(a,b,d) = (*do something here as well*);

那么是否可以有本示例中给出的不同数量的参数?

谢谢。

【问题讨论】:

    标签: pattern-matching sml ml case-expression


    【解决方案1】:

    所有 ML 函数都只采用一个参数,即使该参数恰好是一个元组。

    (ML 程序员有时会说“多个”参数,这有点滥用术语。这与其他语言中的含义并不完全相同,什么被认为是“多个”更多的是视角问题而不是语法问题。)

    定义中的所有子句也必须具有相同的类型,因此您的子句必须都具有与其参数相同的元组类型。

    看起来您的目标是某些语言具有的“默认参数”之类的东西,但标准 ML 中没有这样的东西。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 2012-02-21
      • 1970-01-01
      • 2011-07-15
      相关资源
      最近更新 更多