【发布时间】:2017-09-21 04:53:59
【问题描述】:
我有一个将 list2 附加到 list1 的自定义函数。
let append ls1 ls2 =
let rec loop ls ls1 ls2 =
match ls1, ls2 with
| _, hd::tl ->
loop (hd::ls) ls1 tl
| hd::tl, _ -> loop (hd::ls) tl ls2
| _ -> ls
loop [] ls1 ls2
它工作正常。但问题是当我调用函数时
let appended = append [1;2;3;4;5] [6;7;8;9;10]
它不是返回[1;2;3;4;5;6;7;8;9;10]而是返回
[5;4;3;2;1;10;9;8;7;6]
它反转两个列表。
【问题讨论】:
-
你的问题是什么?如果是关于错误的结果,请再想一想,记住
hd :: tl就像将hd附加到tl的头部,而不是附加到它的末尾 -
想要的结果是 [1;2;3;4;5;6;7;8;9;10]
-
这个问题与昨天的问题有何不同?请在那里查看答案。
标签: list function recursion design-patterns f#