【发布时间】:2016-05-06 06:37:40
【问题描述】:
我正在构建一个合并排序函数,而我的拆分方法给了我一个值限制错误。我正在使用 2 个累积参数,即拆分产生的 2 个列表,最后我将它们打包成一个元组以供返回。但是我遇到了一个值限制错误,我无法弄清楚问题是什么。有人有什么想法吗?
let split lst =
let a = []
let b = []
let ctr = 0
let rec helper (lst,l1,l2,ctr) =
match lst with
| [] -> []
| x::xs -> if ctr%2 = 0 then helper(xs, x::l1, l2, ctr+1)
else
helper(xs, l1, x::l2, ctr+1)
helper (lst, a, b, ctr)
(a,b)
感谢任何输入。
【问题讨论】:
-
对,所以预期的输入将是:list = [1;2;3;4],然后输出将是,例如 ([4;2], [3;1])
-
你查看F# tag info了吗。
标签: recursion split f# value-restriction