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
가져 오면 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
여러 벡터 작업
두 배열을 쌍으로 묶습니다.
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