Haskell Language
ベクトル
サーチ…
備考
この[Data.Vector]は、リッチなインターフェイスを保持しながら、ループフュージョンを通じて非常に高いパフォーマンスを重視しています。主なデータ型はボックス化された配列とボックス化されていない配列であり、配列は不変(純粋)または可変である可能性があります。配列には、Cとの間でやりとりするのに適したStorable要素が格納されている場合があり、配列の型を変換できます。配列は、負でないInt値によってインデックス付けされます。
Haskell Wikiには次の推奨事項があります。
一般に:
- エンドユーザーはほとんどの場合、Data.Vector.Unboxedを使用する必要があります
- より複雑な構造体を格納する必要がある場合は、Data.Vector
- Cに渡す必要がある場合は、Data.Vector.Storableを使用します。
図書館の作家の場合。
- 汎用インターフェースを使用して、ライブラリの柔軟性を最大限に確保してください:Data.Vector.Generic
Data.Vectorモジュール
Data.Vectorのによって提供されるモジュールベクターは、配列を操作するための高性能ライブラリです。
Data.Vector
をインポートしData.Vector
、 Vector
使用を開始するのは簡単です。
Prelude> import Data.Vector Prelude Data.Vector> let a = fromList [2,3,4] Prelude Data.Vector> a fromList [2,3,4] :: Data.Vector.Vector Prelude Data.Vector> :t a a :: Vector Integer
あなたは多次元配列を持つことさえできます:
Prelude Data.Vector> let x = fromList [ fromList [1 .. x] | x <- [1..10] ] Prelude Data.Vector> :t x x :: Vector (Vector Integer)
ベクトルをフィルタリングする
奇数要素をフィルタリングする:
Prelude Data.Vector> Data.Vector.filter odd y
fromList [1,3,5,7,9,11] :: Data.Vector.Vector
ベクトルのマッピング( `map`)と縮小(` fold`)
ベクターは可能map
D「とfold'd,
フィルタ'd and
zip`'d:
Prelude Data.Vector> Data.Vector.map (^2) y
fromList [0,1,4,9,16,25,36,49,64,81,100,121] :: Data.Vector.Vector
単一の値に減らす:
Prelude Data.Vector> Data.Vector.foldl (+) 0 y
66
複数のベクトルの操作
2つの配列をペアの配列にジップします。
Prelude Data.Vector> Data.Vector.zip y y
fromList [(0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11)] :: Data.Vector.Vector
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow