List F#:从列表中提取相同长度的重叠相邻子列表

List F#:从列表中提取相同长度的重叠相邻子列表,list,f#,List,F#,在F#中,有一个N个元素的长列表,我想提取所有可能的M个元素的长重叠连续子列表(M

在F#中,有一个N个元素的长列表,我想提取所有可能的M个元素的长重叠连续子列表(M 产生

[[1; 2; 3]; [2; 3; 4]; [3; 4; 5]]
对于M=3


我知道一种必须的方法,但是有没有一个简洁的功能技巧呢?

有一个内置的函数用于此:

漂亮,这正是我想要的!那太容易了。它必须是非法的。您的示例是重叠的子列表,而不是连续的。@丹尼尔:子列表必须是输入的连续片段,因此不允许使用[1;3;4]。丹尼尔:我加了“重叠”,这使描述更清楚了。
[[1; 2; 3]; [2; 3; 4]; [3; 4; 5]]