我已经开始学习F#了,我遇到的一件事是我不知道range用Python 表达相当于函数的方法.我知道[1..12]相当于范围(1,13).但我想要做的是range(3, 20, 2)(我知道Haskell [3,5..19]).我怎么表达这个?
try*_*dis 12
seq { 3 .. 2 .. 20 }
Run Code Online (Sandbox Code Playgroud)
结果是
3 5 7 9 11 13 15 17 19
Run Code Online (Sandbox Code Playgroud)
https://msdn.microsoft.com/en-us/library/dd233209.aspx
如果您曾经将 Python 转换为 F#,则F#序列表达式 seq { 3 .. 2 .. 20 }在功能上具有可比性,您会发现
IEnumerable<T>不可变的。解释与 F# 相关的 Python 范围的更好方法是查看它的常用用法。正如 Python 2 文档所述
它最常用于 for 循环。
和 Python 3 文档说明
通常用于在 for 循环中循环特定次数。
和Python的2对
for x in range(0, 3):
print "We're on time %d" % (x)
Run Code Online (Sandbox Code Playgroud)
和Python 3中为
for i in range(5):
... print(i)
Run Code Online (Sandbox Code Playgroud)
最接近的 F# 是用于 in:
for i in 10 .. -1 .. 1 do
printf "%d " i
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |