1{-# LANGUAGE CPP #-} 2 3-- | Boxed @Vector@. Import as: 4-- 5-- > import qualified RIO.Vector.Boxed as VB 6-- 7-- This module does not export any partial or unsafe functions. For those, see 8-- "RIO.Vector.Boxed.Partial" and "RIO.Vector.Boxed.Unsafe" 9module RIO.Vector.Boxed 10 ( 11 -- * Boxed vectors 12 Data.Vector.Vector 13 , Data.Vector.MVector 14 15 -- * Accessors 16 -- ** Length information 17 , Data.Vector.length 18 , Data.Vector.null 19 20 -- ** Indexing 21 , (Data.Vector.!?) 22 23 -- ** Extracting subvectors 24 , Data.Vector.slice 25 , Data.Vector.take 26 , Data.Vector.drop 27 , Data.Vector.splitAt 28 29 -- * Construction 30 -- ** Initialisation 31 , Data.Vector.empty 32 , Data.Vector.singleton 33 , Data.Vector.replicate 34 , Data.Vector.generate 35 , Data.Vector.iterateN 36 37 -- ** Monadic initialisation 38 , Data.Vector.replicateM 39 , Data.Vector.generateM 40#if MIN_VERSION_vector(0,12,0) 41 , Data.Vector.iterateNM 42#endif 43 , Data.Vector.create 44#if MIN_VERSION_vector(0,12,0) 45 , Data.Vector.createT 46#endif 47 48 -- ** Unfolding 49 , Data.Vector.unfoldr 50 , Data.Vector.unfoldrN 51#if MIN_VERSION_vector(0,12,0) 52 , Data.Vector.unfoldrM 53 , Data.Vector.unfoldrNM 54#endif 55 , Data.Vector.constructN 56 , Data.Vector.constructrN 57 58 -- ** Enumeration 59 , Data.Vector.enumFromN 60 , Data.Vector.enumFromStepN 61 , Data.Vector.enumFromTo 62 , Data.Vector.enumFromThenTo 63 64 -- ** Concatenation 65 , Data.Vector.cons 66 , Data.Vector.snoc 67 , (Data.Vector.++) 68 , Data.Vector.concat 69 70 -- ** Restricting memory usage 71 , Data.Vector.force 72 73 -- * Modifying vectors 74 -- ** Permutations 75 , Data.Vector.reverse 76 77 -- ** Safe destructive update 78 , Data.Vector.modify 79 80 -- * Elementwise operations 81 -- ** Indexing 82 , Data.Vector.indexed 83 84 -- ** Mapping 85 , Data.Vector.map 86 , Data.Vector.imap 87 , Data.Vector.concatMap 88 89 -- ** Monadic mapping 90 , Data.Vector.mapM 91 , Data.Vector.imapM 92 , Data.Vector.mapM_ 93 , Data.Vector.imapM_ 94 , Data.Vector.forM 95 , Data.Vector.forM_ 96 97 -- ** Zipping 98 , Data.Vector.zipWith 99 , Data.Vector.zipWith3 100 , Data.Vector.zipWith4 101 , Data.Vector.zipWith5 102 , Data.Vector.zipWith6 103 , Data.Vector.izipWith 104 , Data.Vector.izipWith3 105 , Data.Vector.izipWith4 106 , Data.Vector.izipWith5 107 , Data.Vector.izipWith6 108 , Data.Vector.zip 109 , Data.Vector.zip3 110 , Data.Vector.zip4 111 , Data.Vector.zip5 112 , Data.Vector.zip6 113 114 -- ** Monadic zipping 115 , Data.Vector.zipWithM 116 , Data.Vector.izipWithM 117 , Data.Vector.zipWithM_ 118 , Data.Vector.izipWithM_ 119 120 -- ** Unzipping 121 , Data.Vector.unzip 122 , Data.Vector.unzip3 123 , Data.Vector.unzip4 124 , Data.Vector.unzip5 125 , Data.Vector.unzip6 126 127 -- * Working with predicates 128 -- ** Filtering 129 , Data.Vector.filter 130 , Data.Vector.ifilter 131#if MIN_VERSION_vector(0,12,0) 132 , Data.Vector.uniq 133 , Data.Vector.mapMaybe 134 , Data.Vector.imapMaybe 135#endif 136 , Data.Vector.filterM 137 , Data.Vector.takeWhile 138 , Data.Vector.dropWhile 139 140 -- ** Partitioning 141 , Data.Vector.partition 142 , Data.Vector.unstablePartition 143 , Data.Vector.span 144 , Data.Vector.break 145 146 -- ** Searching 147 , Data.Vector.elem 148 , Data.Vector.notElem 149 , Data.Vector.find 150 , Data.Vector.findIndex 151 , Data.Vector.findIndices 152 , Data.Vector.elemIndex 153 , Data.Vector.elemIndices 154 155 -- * Folding 156 , Data.Vector.foldl 157 , Data.Vector.foldl' 158 , Data.Vector.foldr 159 , Data.Vector.foldr' 160 , Data.Vector.ifoldl 161 , Data.Vector.ifoldl' 162 , Data.Vector.ifoldr 163 , Data.Vector.ifoldr' 164 165 -- ** Specialised folds 166 , Data.Vector.all 167 , Data.Vector.any 168 , Data.Vector.and 169 , Data.Vector.or 170 , Data.Vector.sum 171 , Data.Vector.product 172 173 -- ** Monadic folds 174 , Data.Vector.foldM 175 , Data.Vector.ifoldM 176 , Data.Vector.foldM' 177 , Data.Vector.ifoldM' 178 , Data.Vector.foldM_ 179 , Data.Vector.ifoldM_ 180 , Data.Vector.foldM'_ 181 , Data.Vector.ifoldM'_ 182 183 -- ** Monadic sequencing 184 , Data.Vector.sequence 185 , Data.Vector.sequence_ 186 187 -- * Prefix sums (scans) 188 , Data.Vector.prescanl 189 , Data.Vector.prescanl' 190 , Data.Vector.postscanl 191 , Data.Vector.postscanl' 192 , Data.Vector.scanl 193 , Data.Vector.scanl' 194#if MIN_VERSION_vector(0,12,0) 195 , Data.Vector.iscanl 196 , Data.Vector.iscanl' 197#endif 198 , Data.Vector.prescanr 199 , Data.Vector.prescanr' 200 , Data.Vector.postscanr 201 , Data.Vector.postscanr' 202 , Data.Vector.scanr 203 , Data.Vector.scanr' 204#if MIN_VERSION_vector(0,12,0) 205 , Data.Vector.iscanr 206 , Data.Vector.iscanr' 207#endif 208 209 -- * Conversions 210 -- ** Lists 211 , Data.Vector.toList 212 , Data.Vector.fromList 213 , Data.Vector.fromListN 214 215 -- ** Different vector types 216 , Data.Vector.convert 217 218 -- ** Mutable vectors 219 , Data.Vector.freeze 220 , Data.Vector.thaw 221 , Data.Vector.copy 222 ) where 223 224import qualified Data.Vector 225