2016-06-20 6 views
2

Iは、以下のリストなぜ[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から:expr1の.. expr2のが関与

範囲式は (..)演算子の用途に翻訳され、そしてexpr1と... expr1の.. expr3はを含むものがの用途に を翻訳しています(.. ..)演算子。 (.. ..)演算子 は、開始 (expr1)と終了(expr3)の間の値の範囲に対して、expr2の増分を使用してIEnumerable < _を生成します。

か、単に:

[start .. step .. stop]

関連する問題