多个 .. 运算符如何在 for 表达式中工作?

How do multiple .. operators work in a for expression?

我是 F# 的新手,我在搜索 .. 运算符时遇到了问题。有人可以解释为什么这个功能有效吗?

let oddsUnderN n = seq {for i in 1 .. 2 .. n -> i}

多个 .. 运算符如何工作?

这是一个sequence expression,用于指定序列的起始值、增量和结束值。在这种情况下,起始值为 1,结束值为 n,增量为 2。

实际上,您分配的变量 oddsUnderN 是关于该循环将产生什么的重要线索。该语法允许您跳过序列中的所有其他元素,只返回奇数。

所以如果 n = 10 那么你的 i 又等于:

1 3 5 7 9

所以在for i in x .. y .. z do的循环语法中:

  • x为起始值
  • y为增量值
  • z 是最终值

也就是说。这个表达式

for i in 1 .. 10 do

...是 shorthand 用于:

for i in 1 .. 1 .. 10 do