list - 从列表中获取元素并递归地成对添加它们 F#
问题描述
我刚刚开始我的 F# 冒险并被卡住了。我想编写一个递归函数,它从列表中获取元素,将它们成对添加并返回列表 - int list->(int*int) list
所以像这样:[x1; x2; x3; x4] = [(x1,x2);(x3,x4)]
这就是我现在所拥有的。
let rec combinePair xs =
match xs with
|[] -> []
|[x] -> [x]
|x::y::xs' -> (x,y)::combinePair xs'
这不起作用,但我觉得它可能接近答案。我只是不知道如何从这里继续。由于我仍在努力学习,我希望也许有人可以为我指明正确的方向,而不是给我完整的答案
干杯
解决方案
我非常接近答案。我忘了添加在列表包含奇数个元素的情况下会发生什么。就我而言,我只是希望它摆脱最后一个元素。这是解决方案
let rec combinePair xs =
match xs with
| [] -> []
| [x] -> []
| x::y::xs' -> (x,y)::combinePair xs'
推荐阅读
- c - 在 Linux 内核编程中进行 CPU SRJF 调度时发生 En/Dequeue 错误
- javascript - 对 axios 响应数据的反应
- oracle - 我可以在 Oracle 12c 中声明本地临时表吗
- python - Pysal:如何使用 pysal 回归模型进行交叉验证?
- javascript - 变量将 DOM 元素处理为 null。为什么会这样?
- javascript - 在 JSON 中打开子对象
- php - AsyncTask 需要永远获取结果
- python - 在 JSON 文件中使用 np.nan 并在 Python 中调用它
- html - 如何调整表格中的文字
- flutter - 错误:NoSuchMethodError,在 null 上调用了 getter 'index'