
A bit of post-mortem... I got this data MyList a = Empty | Cons a (MyList a) deriving (Eq,Ord,Show) data BaconOrIndex = Bacon | Indx Int deriving (Eq,Ord,Show) import Data.Maybe whereIsBM = whereIsBM' 1 whereIsBM' _ Empty = Nothing whereIsBM' !n (Cons Bacon _) = Just n whereIsBM' !n (Cons _ lx) = whereIsBM' (succ n) lx
whereIsBM (Cons (Indx 5) (Cons (Indx 13) (Cons (Indx 2) (Cons (Indx 8) Empty)))) Nothing whereIsBM (Cons (Indx 5) (Cons (Indx 13) (Cons Bacon (Cons (Indx 8) Empty)))) Just 3
to work. Unfortunately, I couldn't get this whereIsBM boiList = go 0 where go !_ Empty = Nothing go !acc (Cons idx lx) | (idx == Bacon) = Just acc | otherwise = go (acc + 1) lx to work. Both are nearly identical, but the latter gives this error
whereIsBM (Cons (Indx 5) (Cons (Indx 13) (Cons (Indx 2) (Cons (Indx 8) Empty)))) No instance for (Show (MyList BaconOrIndex -> Maybe Integer)) : arising from a use of `print'
This also failed whereIsBM boiList = case boiList of Nothing -> Nothing Just (Cons idx lx) | (idx == Bacon) -> Just 1 | otherwise -> (1 +) <$> (whereIsBM lx) Couldn't match type `Maybe (MyList BaconOrIndex)' with `MyList BaconOrIndex' Expected type: MyList BaconOrIndex -> Maybe a Actual type: Maybe (MyList BaconOrIndex) -> Maybe a Not sure why this didn't work. Would like to understand the whole fmap idea as applied here, though. On Mon, Mar 29, 2021 at 4:04 AM Henning Thielemann < lemming@henning-thielemann.de> wrote:
On Mon, 29 Mar 2021, Viktor Dukhovni wrote:
Thus I applaud Michael Snoyman's quest to address the absense of a basic array type in the `base` library. Perhaps more users would stop abusing lists (memoisable iterators) as an indexed store.
Data.Array actually _was_ part of base-3.
However, I think we should split 'base' in more smaller parts rather than making it bigger. _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.