如何解决F#-使用List.foldBack将列表连接到自身
如何使用List.foldBack将列表与其自身连接?
例如,如果函数的输入列表为:[10; 20; 30; 40]然后输出将是:[10; 20; 30; 40; 10; 20; 30; 40]
是否可以执行任意多次此操作,并能够指定列表将自身连接到自身的次数?例如,三倍将是:[10; 20; 30; 40; 10; 20; 30; 40; 10; 20; 30; 40]
解决方法
foldBack
函数保留一个状态,并将该函数迭代地应用于当前状态和给定列表的所有元素。对于您的情况,您希望保留一些列表作为状态,并在遍历输入时以正确的方式向其添加元素。
以下内容将重新创建与原来相同的列表:
let list = [ 10; 20; 30 ]
let init = []
List.foldBack (fun x xs -> x::xs) init list
这从[]
开始,逐渐从末尾追加元素,因此您得到[30]
,然后依次是[20; 30]
和[10; 20; 30]
。
这应该给您足够的背景来弄清楚您需要什么:
- 要在列表后面附加一个列表,您需要选择正确的
init
状态,这样就不会以空列表开头。 - 要重复执行给定的次数,您只需要使用递归多次进行此操作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。