Haskell Language
वैक्टर
खोज…
टिप्पणियों
यह [Data.Vector] पाश संलयन के माध्यम से बहुत उच्च प्रदर्शन पर जोर देता है, जबकि एक समृद्ध इंटरफ़ेस को बनाए रखता है। मुख्य डेटा प्रकार बॉक्सिंग और अनबॉक्स किए गए सरणियाँ हैं, और सरणियाँ अपरिवर्तनीय (शुद्ध), या परिवर्तनशील हो सकती हैं। Arrays, C से और पास करने के लिए उपयुक्त, मनमोहक तत्वों को पकड़ सकता है और आप सरणी प्रकारों के बीच परिवर्तित कर सकते हैं। गैर-नकारात्मक Int मानों द्वारा अनुक्रमित किए जाते हैं।
हास्केल विकी की ये सिफारिशें हैं :
सामान्य रूप में:
- अधिकांश मामलों के लिए अंतिम उपयोगकर्ताओं को 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'd,
फिल्टर 'd and
जिप'एड हो सकते हैं:
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