
On 31/08/2018 14.50, Bryan Richter wrote:
On 08/30/2018 03:43 PM, Bardur Arantsson wrote:
On 30/08/2018 20.21, Olaf Klinke wrote:
Hello, Olaf. I have some distrust of elegant solutions (one of them are C.P. libs).
[*] To the parser experts on this list: How much time should a parser take that processes a 50MB, 130000-line text file, extracting 5 values (String, UTCTime, Int, Double) from each line?
Not an expert, but for something as (relatively!) standard as CSV, I'd probably go for a specialized solution like 'cassava', which seems like it does quite well according to https://github.com/haskell-perf/csv
Playing the devil's advocate here....
If parser combinators aren't great for "relatively standard" things such as CSV, then what *are* they good for?
Off the top of my head: a) They're often much more readable than many alternatives if you *don't* actually care *too* much about performance. (Especially if you have semantic actions, I find that they're *much* more readable.) b) They're usually a lot better for "tricky" languages which e.g. might not be context-free. c) Embedding the "grammar" directly in Haskell means that there's no weirdness around integrating generated code/types with the rest of the program. (Probably several other obvious things, I'm forgetting.) Regards,