我想翻译这样的东西:
[0,1,2,3,4,5,6,7]
进入
[6,1,4,3,2,5,0,7]
这是一个草稿,它使元素在偶数位置处反转(这是我假设您的问题所表示的意思)。这可能远非最佳(例如,您应该进行递归split
和join
尾部递归):
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] 删除。
我来说两句