【发布时间】:2018-11-10 06:08:46
【问题描述】:
所以我有这段代码,基本上可以将列表按 k 项进行拆分。 因此,如果有列表 [1;2;3;4;5;6;7] 并且我想将前 k = 3 个项目分开,那么它将列表拆分为 [1;2;3] 和 [ 4;5;6;7]。
我想返回这两个,所以我的计划是将它们放入列表列表中,或者将它们放入 2 个列表的元组中会更好。 所以我要返回 [[1;2;3]; [4;5;6;7]] 或 ([1;2;3], [4;5;6;7])。
我也尝试通过将两个列表转换为元组来做到这一点,但我不知道如何为最后一次模式匹配返回列表的空元组。
另外,我知道这可以通过某种 .take 或 .split 函数更简单地完成,但我正在尝试理解 F#,所以我正在这样做。
但是请帮忙!
我的错误是:
期待一个
''一个'
但给定一个
''列表'
let populateList k =
let data = [1;2;3;4;5;6;7]
let rec helper count aList =
match aList with
| head::tail when count < k ->
let theTail = tail
let newList = head :: helper (count+1) tail
//let aTuple = (theTail,newList)
//aTuple
[theTail; newList]
| _ -> []
helper 0 data
populateList 3
【问题讨论】:
标签: f# f#-interactive