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

时间:2015-01-27 20:19:57

标签: f#

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

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

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

实际上,你的赋值变量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

...是:

的简写
for i in 1 .. 1 .. 10 do