2016-06-20 78 views
2

當我聲明以下列表爲什麼將[2..3..10]被解釋爲[2; 5; 8]

let list = [2..3..10] 

F#交互式將它解釋爲包含[2; 5; 8]列表。 的控制檯輸出是:

let list = [2..3..10] 
;; 

val list : int list = [2; 5; 8] 

什麼是數學的背後?我看不出輸入與輸出有關。

+5

[開始..一步..停止] –

+0

,你會想到什麼輸出? '[2; 5; 8; 11]'? – sepp2k

+0

謝謝@FoggyFinder,現在它是有道理的。隨意寫一個完整的答案,所以我可以將問題標記爲已回答 – Ronin

回答

12

The F# Language Specification

涉及表達式1 .. expr2的

範圍表達式翻譯成的 用途(..)運算符,以及涉及expr1的.. .. expr1的被表達式3 翻譯成的用途(.. ..)運營商。 (.. ..)運算符 使用expr2的增量爲開始 (expr1)和finish(expr3)值之間的值範圍生成一個IEnumerable < _>。

或者只是:

[start .. step .. stop]