List 在列表中每n个元素之后输出y元素

List 在列表中每n个元素之后输出y元素,list,recursion,f#,List,Recursion,F#,如何编写一个F#递归函数,在列表xs中的每n个元素之后插入指定的y元素,即使应用于无限列表也可以工作 例如: 一是 输入 输入 输出 ['a'; 'b'; 'O'; 'c'; 'd'; 'O'; 'e'; 'f'; 'O'] ['a'; 'b'; 'c'; 'O'; 'd'; 'e'; 'f'; 'O'] ['1'; '2'; '3'; '4'; '5'; 'A'; '6'; '7'; '8'; '9'; '10'; 'A'] 输入 输出 ['a'; 'b'; 'O'; 'c'; 'd'

如何编写一个F#递归函数,在列表xs中的每n个元素之后插入指定的y元素,即使应用于无限列表也可以工作

例如: 一是

输入

输入

输出

['a'; 'b'; 'O'; 'c'; 'd'; 'O'; 'e'; 'f'; 'O'] 
['a'; 'b'; 'c'; 'O'; 'd'; 'e'; 'f'; 'O']
['1'; '2'; '3'; '4'; '5'; 'A'; '6'; '7'; '8'; '9'; '10'; 'A']
输入

输出

['a'; 'b'; 'O'; 'c'; 'd'; 'O'; 'e'; 'f'; 'O'] 
['a'; 'b'; 'c'; 'O'; 'd'; 'e'; 'f'; 'O']
['1'; '2'; '3'; '4'; '5'; 'A'; '6'; '7'; '8'; '9'; '10'; 'A']
另一个是

输入

输出

['a'; 'b'; 'O'; 'c'; 'd'; 'O'; 'e'; 'f'; 'O'] 
['a'; 'b'; 'c'; 'O'; 'd'; 'e'; 'f'; 'O']
['1'; '2'; '3'; '4'; '5'; 'A'; '6'; '7'; '8'; '9'; '10'; 'A']

如果你们不介意的话,我来试试

let all=['a';'b';'c';'d';'e']
让rec插入索引的每个值=
let loop=插入值
与索引匹配
| [] -> []
|(indx,hd)::tl->
将indx与
|当n0&((i+1)%n)=0->hd::value::loop tl时的i
|\uhd->loop tl
全部的
|>列表索引
|>插入每3'x'
|>printf“%A\n”
刚刚进入奥坎利什的一方…
... 欢迎有建设性的批评人士
:)

复制的具有相同的问题。现在不是在我的计算机上,但这听起来并不难与现有的两种收集方法进行比较。你想写一个递归方法有什么原因吗?