[Haskell-cafe] newbie questions (read, etc.,
with Data.ByteString.Lazy.Char8)
Don Stewart
dons at galois.com
Mon Oct 6 22:31:56 EDT 2008
dagit:
> As the top search result.
>
> This means that you can convert any list of maybes into a list of what you
> want. It just tosses out the Nothings.
>
> 2. Why doesn't ByteString implement 'read'? Is it just that this
> function (like 'input' in Python) isn't really very useful for real
> programs?
>
> I think probably for things more complex than parsing ints it's best to
> make your own parser? I seem to recall that someone was working on a
> library of parsing functions based on bytestring? Maybe someone else can
> comment?
>
> 3. Why doesn't ByteString implement 'readDouble', etc.? That is, why
> are Int and Integer treated specially? Do I not need readDouble?
>
> I think readInt was mostly implemented because integer reading was needed
> a lot for benchmarks and programming challenge sites and people noticed it
> was way slower than needed so someone put in the effort it optimize it.
> Once it was optimized, that must have satisfied the need for fast number
> reading.
There's readInt, readInteger and readDouble now, as primitives, because
people ask for them.
> I would agree that at least for Prelude types it would be nice to have
> efficient bytestring based parsers. Do we have Read/Show classes
> specifically for working in bytestrings? Maybe that's what the world
> needs in the bytestring api. Then again, I'm not really qualified to
> comment :) For all I know it already exists.
>
Data.Binary is the generic parser for bytestrings. A higher level one
for parsing text (e.g. atto-parsec), might be worthwhile.
-- Don
More information about the Haskell-Cafe
mailing list