[Haskell-cafe] Re: catching fails on read
Jacques Bergeron
jbergeron at dogico.com
Tue Apr 29 18:50:57 EDT 2008
Don Stewart <dons <at> galois.com> writes:
>
> jbergeron:
> > 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
I
> > 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.
Jacques
More information about the Haskell-Cafe
mailing list