[Haskell-beginners] Parse string with optional entries [Parsec]

David McBride dmcbride at neondsl.com
Mon Aug 8 15:53:22 CEST 2011


Read up on the sepBy combinator.

parse (sepBy (many digit) (char ',')) "" "123,321,,2321"
Right ["123","321","","2321"]

On Mon, Aug 8, 2011 at 7:53 AM,  <Stefan.Lukasser-EE at infineon.com> wrote:
> Hi,
>
> I have something similar to the CSV-Parser in RWH, chapter 16.
> The problem are the possible empty cells, i.e. consecutive '\t'-Characters.
>
>
> -----Original Message-----
> From: Antoine Latter [mailto:aslatter at gmail.com]
> Sent: Monday, August 08, 2011 1:44 PM
> To: Lukasser Stefan (IFAT IMM PSD D TEC / EE)
> Cc: beginners at haskell.org
> Subject: Re: [Haskell-beginners] Parse string with optional entries [Parsec]
>
> On Mon, Aug 8, 2011 at 6:39 AM,  <Stefan.Lukasser-EE at infineon.com> wrote:
>> Hi all,
>>
>> I'm trying to parse a string in one of the following forms using Parsec:
>>
>> "1\t1\t123\t456" -> desired output: [Just 1, Just 1, Just 123, Just 456]
>>
>> or
>>
>> "1\t\1\t\t456"  -> desired output: [Just 1, Just 1, Nothing, Just 456]
>>
>> i.e., the input is a list of numbers, separated by '\t' characters, with the possibility of missing entries.
>> I'm having troubles with the backtracking in case of missing numbers. Can anybody give me a hint?
>>
>
> What do you have so far?
>
>> Thanks in advance,
>> Stefan
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>



More information about the Beginners mailing list