1

F# で次のことをしたいと思います。

let index = 5
let sequence = [0..10]
let fifthElement =
    sequence
    |> .[index]

ただし、最後の行は無効です。私がやりたいのは、実際に のインデックス 5 の要素を取得することsequenceです。私は間違ったことをしていますか?

私が理解していることから、パイプラインは関数呼び出しを逆にするのに役立ちますが、パイプラインを使用して特定のインデックスで要素を取得する方法がわかりません。

4

2 に答える 2

11

と のためlistseq、私は通常使用します

let fifthElement = sequence |> Seq.nth index

あなたも書くことができます

let fifthElement = sequence |> fun sq -> sq.[index]

またはより簡潔に配管なしで  

let fifthElement = sequence.[index]

Indexed Propertyを持つ任意のオブジェクト。

インデックス付きプロパティを使用する利点は、実際O(1)には配列Seq.nth上にあり、配列上にあることですO(N)

于 2012-09-08T16:50:28.603 に答える
6

ただの更新: は非推奨になり、シーケンスとリストにnth使用できるようになりましたitem

例:

let lst = [0..2..15] 
let result = lst.item 4

結果 = 8

于 2015-09-14T16:44:45.453 に答える