标准ML中的通配符

时间:2015-06-14 16:06:50

标签: wildcard sml ml

我刚刚在工作程序员的 ML中遇到了以下函数

fun null [] = true
    | null (_::_) = false

1)两个通配符都不能是空列表吗?如果没有,ML如何防止这种情况?

2)功能是否可以缩短为:

fun null [] = true 
    | false

为什么/为什么不呢?

感谢您的帮助, bclayman

1 个答案:

答案 0 :(得分:5)

  1. 是的,他们可以,但匹配的列表不会为空,因此null函数的结果成立,即[] :: [],相当于{{ 1}},不是空列表。

  2. 不,这在语法上无效。但是,它可以缩短为:

  3. [[]]