[Haskell-cafe] Re: catching fails on read
jbergeron at dogico.com
Tue Apr 29 18:50:57 EDT 2008
Don Stewart <dons <at> galois.com> writes:
> > I'm new to Haskell and have a stupid question.
> > How can a catch a parsing error on a read? Something like
> > let s = "e"
> > in read s :: Int
> > I've been searching for a trick and couldn't find one. I want to enter
> > commands directly from the keyboard and don't want the program to abort if
> > do a typing error.
> maybeRead :: Read a => String -> Maybe a
> maybeRead s = case reads s of
> [(x, rest)] | all isSpace rest -> Just x
> _ -> Nothing
> There's an open ticket to add this to the base library.
So reads (or readsPrec) is the "parser" equivalent to read. Should have
catched that, sorry.
Thanks for your time.
More information about the Haskell-Cafe