f#中是否有一种方法可以对f#中两个列表的所有可能元素组合执行操作?
例
l1 = [1;2;3]
l2=[4;5;6]
let plus x y = x+y
然后乐趣加l1 l2将执行 [(1+4);(1+5);(1+6);(2+4);(2+5);(2+6);(3+4);(3+5);(3+6)]
因此输出: [5;6;7;6;7;8;7;8;9]
注意:我尝试使用zip,但每个元素只包含一次。
是的,最简单的方法是使用列表理解。
let t1 = [1;2;3]
let t2 = [4;5;6]
[for a in t1 do for b in t2 do yield a+b] //val it : int list = [5; 6; 7; 6; 7; 8; 7; 8; 9]
//as a function
let f lst1 lst2 = [for a in lst1 do for b in lst2 do yield a+b]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句