OCaml如何只反转列表中的偶数

丹尼尔

我想翻译这样的东西:

[0,1,2,3,4,5,6,7]

进入

[6,1,4,3,2,5,0,7]
mu

这是一个草稿,它使元素在偶数位置处反转(这是我假设您的问题所表示的意思)。这可能远非最佳(例如,您应该进行递归splitjoin尾部递归):

let rec split = function
| [] -> [],[]
| h::[] -> [h],[]
| x::y::t -> let a,b = split t in x::a, y::b;;

let rec join a b = match a,b with
| [],_ -> b
| _,[] -> a
| ha::ta,hb::tb -> ha::hb::(join ta tb);;

let doit l = let a,b = split l in join a (List.rev b);;

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章