[Haskell-cafe] advice on a parsing function

Manlio Perillo manlio_perillo at libero.it
Wed Mar 11 14:37:26 EDT 2009

Manlio Perillo ha scritto:
> minh thu ha scritto:
>> [...]
>> The approach I suggested is a bit overkill. You can indeed use L.lines
>> to split the input into lines then work on that.
>> But still, avoid the pair (Int, Bytestring). Instead, you can 
>> basically map
>> on each line the unsafeReadInt modified to :
>> - return the id
>> - return if it is one kind of id or the other kind.
>> so :
>> type UserId = Int
>> type MovieId = Int
>> unsafeReadInt :: Line -> Either MovieId UserId
>> Now you have a nice list [Either MovieId UserId] that
>> you need to transform into (MovieId, [UserId]).
> Thanks, this seems a much better solution.


real	1m15.220s
user	0m4.816s
sys	0m0.308s

3084 KB memory usage

Previous version required 4956 KB of memory.

Thanks again for the suggestion, Minh.


More information about the Haskell-Cafe mailing list