我刚刚在工作程序员的ML中遇到了以下函数:
fun null [] = true
| null (_::_) = false
Run Code Online (Sandbox Code Playgroud)
1)两个通配符都不能是空列表吗?如果没有,ML如何防止这种情况?
2)功能是否可以缩短为:
fun null [] = true
| false
Run Code Online (Sandbox Code Playgroud)
为什么/为什么不呢?
谢谢你的帮助,bclayman
是的,他们可以,但匹配的列表不会为空,因此null函数的结果成立,即[] :: []相当于[[]],不是空列表.
不,这在语法上是无效的.但是,它可以缩短到这个:
fun null [] = true
| null _ = false
Run Code Online (Sandbox Code Playgroud)