OCaml中的“ as”关键字

文森特·滕|

该站点上提供的OCaml教程的答案中,一些解决方案(包括用于消除列表元素的连续重复项的解决方案)是这样编写的:

let rec compress = function
    | a :: (b :: _ as t) -> if a = b then compress t else a :: compress t
    | smaller -> smaller;;

该行的意义是a :: (b:: _ as t)什么?为什么我不能这样写呢a :: b :: t

杰弗里·斯科菲尔德

tb :: _ as t必然b :: _因此含义是不同的。如果您使用模式a :: b :: t,则需要说compress (b :: t),这有点不优雅,效率也略低。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章