【发布时间】:2019-08-13 14:25:16
【问题描述】:
我想使用模式匹配编写以下过程:
fun sub1 ns = if null ns then []
else (hd ns) :: (sub1 (tl ns));
null、hd 和 tl 分别是:
fun null [] = true
| null (_::_) = false;
fun hd (x::_) = x;
fun tl (_::xs) = xs;
到目前为止,我已经尝试过:
fun sub1.2 [] = []
| sub1.2 (n::ns) = n :: sub1.2 ns;
以上行不通。我收到以下语法错误:
2.1.sml:6.10 Error: syntax error: inserting ASTERISK
2.1.sml:7.10 Error: syntax error: inserting ASTERISK
2.1.sml:7.33 Error: syntax error: inserting EQUALOP
同样,你如何使用模式匹配编写sub1?谢谢!
【问题讨论】:
-
你能详细说明它是如何不起作用的吗?
-
@ScottHunter 我添加了我遇到的语法错误。
-
尝试删除/替换函数名中的小数点。
-
@ScottHunter 谢谢;成功了!
标签: sml