Matt McCutchen's Web Site
/
match
/
match.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a minimal readme for the program.
[match/match.git]
/
program
/
ArrayStuff.hs
diff --git
a/program/ArrayStuff.hs
b/program/ArrayStuff.hs
index
abf14c7
..
df0a969
100644
(file)
--- a/
program/ArrayStuff.hs
+++ b/
program/ArrayStuff.hs
@@
-4,6
+4,8
@@
import Data.Array.IArray
funcArray lohi f = listArray lohi $ map f $ range lohi
funcArray lohi f = listArray lohi $ map f $ range lohi
+constArray lohi v = listArray lohi $ repeat v
+
transposeArray arr =
let swap (x, y) = (y, x) in
let (lo, hi) = bounds arr in
transposeArray arr =
let swap (x, y) = (y, x) in
let (lo, hi) = bounds arr in
@@
-13,6
+15,12
@@
array2DtoListOfLists arr =
let ((xlo, ylo), (xhi, yhi)) = bounds arr in
map (\x -> map (\y -> arr ! (x, y)) $ range (ylo, yhi)) $ range (xlo, xhi)
let ((xlo, ylo), (xhi, yhi)) = bounds arr in
map (\x -> map (\y -> arr ! (x, y)) $ range (ylo, yhi)) $ range (xlo, xhi)
+listOfListsToArray2D ll =
+ listArray ((0, 0), (length ll - 1, length (head ll) - 1)) $ concat ll
+
-- Use instead of amap when the array implementation needs to change.
-- E.g., mapping an unboxed array to an array whose elements must be boxed.
amap2 f arr = funcArray (bounds arr) (\i -> f (arr ! i))
-- Use instead of amap when the array implementation needs to change.
-- E.g., mapping an unboxed array to an array whose elements must be boxed.
amap2 f arr = funcArray (bounds arr) (\i -> f (arr ! i))
+
+-- Like amap2 but the mapping function is also passed the index.
+aixmap f arr = funcArray (bounds arr) (\i -> f i (arr ! i))