【发布时间】:2015-10-09 08:03:11
【问题描述】:
我是 sml 的新手,现在我正在尝试定义一个 zip 函数,它将两个列表作为一个元组。 这是代码。 我得到了它的工作,但我有几个问题
exception Mismatch;
fun zip ([],[]) = []
| zip ((x::xs),(y::ys)) = (x, y)::zip (xs, ys)
| zip (_, _) = raise Mismatch;
能否在 zip 函数中定义异常,比如 let in end,我试过了,但总是报错。
另一个问题是关于第二个模式匹配,我写了
zip ([x::xs],[y::ys]) = (x, y)::zip (xs, ys)
也给了我错误。
zip 取一个元组,但每个元素都是列表,为什么我不能像其他列表一样使用 [x::xs]?
最后一个问题,在模式匹配中,顺序重要吗?我想是的,我更改了订单并得到了错误,只是想确定
谢谢
【问题讨论】:
标签: list zip pattern-matching tuples sml