Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Attoparsec parser and maybe type (PICCA Frederic-Emmanuel)
2. Re: Attoparsec parser and maybe type (Francesco Ariis)
3. Re: Attoparsec parser and maybe type (PICCA Frederic-Emmanuel)
----------------------------------------------------------------------
Message: 1
Date: Wed, 29 Aug 2018 13:01:42 +0000
From: PICCA Frederic-Emmanuel
<[email protected]>
To: "The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell" <[email protected]>
Subject: [Haskell-beginners] Attoparsec parser and maybe type
Message-ID:
<a2a20ec3b8560d408356cac2fc148e53015b31e...@sun-dag3.synchrotron-soleil.fr>
Content-Type: text/plain; charset="us-ascii"
Hello, I have a type compose of 5 doubles
data MyData = MyData Double Double Double Double Double
now I have a file to parse whcih contain this
| 1.0 2.0 3.0 4.0 5.0 | or | ---------no result ------------- |
So I would like to create a parser which return a Maybe Mydata
| 1.0 2.0 3.0 4.0 5.0 | -> Just MyData
| ---------no result ------------- | -> Nothing
How should I proceed
I can write really trivially both parser but I do not know how to combine all
this
MyDataP1 = MyData <$> scientific <*> scientific
NothingP = string "--------------- no result ----------------"
Thanks for your help
Frederic
------------------------------
Message: 2
Date: Wed, 29 Aug 2018 15:06:43 +0200
From: Francesco Ariis <[email protected]>
To: [email protected]
Subject: Re: [Haskell-beginners] Attoparsec parser and maybe type
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
Hello Frederic,
On Wed, Aug 29, 2018 at 01:01:42PM +0000, PICCA Frederic-Emmanuel wrote:
> Hello, I have a type compose of 5 doubles
>
> data MyData = MyData Double Double Double Double Double
>
> now I have a file to parse whcih contain this
>
> | 1.0 2.0 3.0 4.0 5.0 | or | ---------no result ------------- |
<|> (or `choice`) is the way to do it [1]. Let us know if that worked!
[1]
http://hackage.haskell.org/package/attoparsec-0.13.2.2/docs/Data-Attoparsec-Combinator.html#v:choice
------------------------------
Message: 3
Date: Wed, 29 Aug 2018 13:16:16 +0000
From: PICCA Frederic-Emmanuel
<[email protected]>
To: "The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell" <[email protected]>
Subject: Re: [Haskell-beginners] Attoparsec parser and maybe type
Message-ID:
<a2a20ec3b8560d408356cac2fc148e53015b31e...@sun-dag3.synchrotron-soleil.fr>
Content-Type: text/plain; charset="us-ascii"
powderWilsonP :: Parser (Maybe PowderWilson)
powderWilsonP = powderWilsonP1 <|> powderWilsonP2
where
powderWilsonP1 :: Parser (Maybe PowderWilson)
powderWilsonP1 = Just <$> ( PowderWilson
<$> doubleP
<*> doubleP
<*> doubleP
<*> doubleP
<*> doubleP
)
powderWilsonP2 :: Parser (Maybe PowderWilson)
powderWilsonP2 = do
skipSpace
_ <- string "---------no results -----------"
pure Nothing
I will test it :))
thanks
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 122, Issue 21
******************************************