2015-11-12 13 views
0

我有一个int列表作为输入如何递归地在F#中的另一个列表中构建一个列表?

[1;2;3;4] 

,我需要输出包含此列表

[[1;2;3;4]] 

我需要做的是递归的,因为我要过滤一些值的列表。

基本上,我需要(似乎并不能梳理出来)从这里开始:

[[2]] 

,实现这一点:

[[1;2]] 
+0

这是如何相互关联的(包装到列表中并进行筛选) - 因为从右到左w它看起来像'yourList |> List.filter yourPredicate |> List.singleton'是你所需要的,我只是不能看到你想如何递归地做这件事(你想整个打包/解包吗?) – Carsten

+1

In它需要递归的方式是什么?递归的终止条件是什么? – alundy

+0

终止条件是[] - > []和[x] - > [[x]] –

回答

0

可以先筛选您的列表,然后将过滤后的结果附加在外部列表中:

let source = [1; 2; 3; 4] 
let filtered = List.filter (fn x -> x % 2 = 0) src 
let result = [filtered] 
相关问题