我想生成一个像乘法表一样的序列。因此,对于 1 的开始和 10 的停止,我正在寻找类似的序列
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, // 1*1 - 1*10
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, // 2*1 - 2*10
3, 6, 9, 12, ... // 3*1 - 3*10
这是我蹩脚的开始,但是我似乎无法弄清楚如何在到达停止点时干净地增加 j ,或者如何将 i 重置回开始。
let multable (start,stop) =
(start,start)
|> Seq.unfold(
fun (i,j) ->
Some(i*j, (i+1, j)))
let its = multable(1, 1)
let first10 = Seq.take 10 its
printf "%A" (Seq.to_list first10)
这当然给了我 1, 2, 3, 4, 5, 6, 7, 8, 9, 10