
The docs say:
[(i, e)] a list of associations of the form (index, value). Typically, this
list will be expressed as a comprehension. An association '(i, x)' defines the
value of the array at index i to be x.
I think the important part is that the array is used as a lookup for the values
to associate with the array. The lookup returns a ?random? one of the three
values in the list of tuples that have 1 as the first index. In this case it
happens to be 3. And so on.
This may help:
Prelude Array> let e = [1,2,3]
Prelude Array> array (1,3) [(i,v) | i<-[1..3], v<-e]
array (1,3) [(1,3),(2,3),(3,3)]
Prelude Array> array (1,9) [(i,v) | i<-[1..3], v<-e]
array (1,9) [(1,3),(2,3),(3,3),(4,*** Exception: (Array.!): undefined array
element
Prelude Array>
It couldn't look up a value for 4 so it failed...
Does that help?
--Tim
----- Original Message ----
From: cchang