
12 Oct
2004
12 Oct
'04
8:59 a.m.
Hows this: ... tail (Many i a l) | i < (e-s) = (Many (i+1) a l) | otherwise = l where (s,e) = bounds a ... a ++: l | e >= s = Many s a l | otherwise = l where (s,e) = bounds a A futher though is that with constructors you can do: f (a:as) = f [] = As you cannot use the constructors to access the list elements here, maybe the following would be more useful: class List l where head :: IArray UArray a => l a -> Maybe a tail :: IArray UArray a => l a -> Maybe (l a) then you can write: f x | Just h <- head x = ... | otherwise = ... Keean.