【发布时间】:2018-03-09 09:40:06
【问题描述】:
我创建了一个函数,它获取从1 到n 的所有整数,然后与相同的序列组合以创建所有组合的元组序列。所以传递整数2 会给你[(1,1);(1,2);(2,1);(2,2)]:
let allTuplesUntil x =
let primary = seq { 1 .. x }
let secondary = seq { 1 .. x }
[for x in primary do
for y in secondary do
yield (x,y)]
此实现有效,但它使用内部和外部 for 循环,类似于我在 c# 中所做的。
这可以通过更惯用的功能方式实现吗?功能性更强的方式通常更可取,还是因为其简洁明了而在功能性语言中可以接受?
我对@987654327@ 比较陌生,正在寻找一些反馈。
【问题讨论】: