Thank guys, Now what am I misunderstanding in the code below? I would think that *Main> comb (Just 65) foo and *Main> comb (lookup 'A' lst) foo would return the same result Just 'A' Michael ===========Haskell code============= import Data.Char lst = [('A',65),('B',66),('C',67),('D',68)] -- comb is a combinator for sequencing operations that return Maybe comb :: Maybe a -> (a -> Maybe b) -> Maybe b comb Nothing _ = Nothing comb (Just x) f = f x foo :: Int -> Maybe Char foo n = Just (chr n) ================Ghci=========== [michael@localhost ~]$ ghci GHCi, version 6.10.1: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer ... linking ... done. Loading package base ... linking ... done. Prelude> :load test1 [1 of 1] Compiling Main ( test1.hs, interpreted ) Ok, modules loaded: Main. *Main> comb (Just 65) foo Just 'A' *Main> comb Nothing foo Nothing *Main> lookup 'A' lst Just 65 *Main> (lookup 'A' lst) Just 65 *Main> comb (lookup 'A' lst) foo <interactive>:1:22: Couldn't match expected type `Integer' against inferred type `Int' In the second argument of `comb', namely `foo' In the expression: comb (lookup 'A' lst) foo In the definition of `it': it = comb (lookup 'A' lst) foo *Main> --- On Tue, 4/28/09, Lennart Augustsson <lennart.augustsson@gmail.com> wrote:
|