当我宣布以下清单时
let list = [2..3..10]
F#interactive 会将其解释为包含[2; 5; 8]
的列表。
控制台输出将是:
let list = [2..3..10]
;;
val list : int list = [2; 5; 8]
背后的数学是什么?我不知道输入是如何与输出相关的。
答案 0 :(得分:10)
来自The F# Language Specification:
涉及expr1 .. expr2的范围表达式被转换为使用 (..)运算符,以及涉及expr1 .. expr1 .. expr3的运算符 翻译成(.. ..)运算符的用法。运营商 生成IEnumerable< _>对于开始之间的值范围 (expr1)和finish(expr3)值,使用expr2的增量。
或只是:
[start .. step .. stop
]