Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/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. Parsec problem (Kees Bleijenberg)
2. Re: Parsec problem (Andres L?h)
3. Re: Parsec problem (Daniel Fischer)
4. Re: Literate Haskell - capturing output (Rustom Mody)
5. Re: Parsec problem (Kees Bleijenberg)
----------------------------------------------------------------------
Message: 1
Date: Sat, 2 Feb 2013 15:00:52 +0100
From: "Kees Bleijenberg" <[email protected]>
Subject: [Haskell-beginners] Parsec problem
To: <[email protected]>
Message-ID: <000001ce014d$b6c02b80$24408280$@[email protected]>
Content-Type: text/plain; charset="us-ascii"
module Main(main) where
import Text.ParserCombinators.Parsec
parseToNewLine = do
line <- manyTill anyChar newline
return line
keyValue = do
fieldName <- many letter
spaces
char '='
spaces
fieldValue <- parseToNewLine
return (fieldName,fieldValue)
main = parseTest keyValue "key=\n"
I don't understand why te code above doesn't parse to ("key","")
parseToNewLine "\n" parses to ""
parseTest keyValue "a=b\n" works fine and parses to ("a","b")
Kees
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130202/8a2f3b3c/attachment-0001.htm>
------------------------------
Message: 2
Date: Sat, 2 Feb 2013 15:23:36 +0100
From: Andres L?h <[email protected]>
Subject: Re: [Haskell-beginners] Parsec problem
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Message-ID:
<CALjd_v7rSp0_3CyMib_8aN+yhH4KZwPB=q8-fcgmqybovzr...@mail.gmail.com>
Content-Type: text/plain; charset=windows-1252
Hi.
> keyValue = do
> fieldName <- many letter
> spaces
> char '='
> spaces
> fieldValue <- parseToNewLine
> return (fieldName,fieldValue)
>
> main = parseTest keyValue "key=\n"
>
> I don?t understand why te code above doesn?t parse to (?key?,??)
The problem is that the \n is already consumed by spaces. The
subsequent parseToNewLine fails.
Cheers,
Andres
--
Andres L?h, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com
------------------------------
Message: 3
Date: Sat, 02 Feb 2013 15:24:11 +0100
From: Daniel Fischer <[email protected]>
Subject: Re: [Haskell-beginners] Parsec problem
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"
On Saturday 02 February 2013, 15:00:52, Kees Bleijenberg wrote:
> module Main(main) where
>
> import Text.ParserCombinators.Parsec
>
> parseToNewLine = do
> line <- manyTill anyChar newline
> return line
>
> keyValue = do
> fieldName <- many letter
> spaces
> char '='
> spaces
> fieldValue <- parseToNewLine
> return (fieldName,fieldValue)
>
> main = parseTest keyValue "key=\n"
>
> I don?t understand why te code above doesn?t parse to (?key?,??)
Because the newline is already consumed by the `spaces`. So parseToNewLine
gets an empty string as input, and fails on that.
> parseToNewLine ?\n? parses to ?"
>
> parseTest keyValue ?a=b\n? works fine and parses to (?a?,?b?)
The input of parseToNewLine must contain a newline, or it fails. In the last
example, the `spaces` after `char '='` stops at reaching the 'b', so the
newline remains. In the first (problematic) example, all the remaining input
after the '=' consists of whitespace.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130202/1583c98b/attachment-0001.htm>
------------------------------
Message: 4
Date: Sun, 3 Feb 2013 12:24:58 +0530
From: Rustom Mody <[email protected]>
Subject: Re: [Haskell-beginners] Literate Haskell - capturing output
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Message-ID:
<CAJ+Teof2R2QU9+geJ7YexRJ=md8g080c+tz28paruxdu-t9...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
On Sat, Feb 2, 2013 at 2:53 AM, Martin Drautzburg
<[email protected]>wrote:
> On Thursday, 31. January 2013 15:25:56 Rustom Mody wrote:
>
> > If you are ok with emacs,
> > emacs -> orgmode -> babel may be worth a consider
> > http://orgmode.org/worg/org-contrib/babel/intro.html
> > http://www.jstatsoft.org/v46/i03/paper
>
> Yes, I'm okay with emacs and I use org-mode a lot. Can you point be to an
> example of using org-mode with haskell? I've only seen that as a way to add
> program output to a documentation, but will I still end up with a runnable
> haskell program?
> --
> Martin
>
>
No I dont have a ready example.
Im sure if you ask on the org mode mailing list, (perhaps after supplying a
toy example) you will get a babel-ed version.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130203/eb6268a8/attachment-0001.htm>
------------------------------
Message: 5
Date: Sun, 3 Feb 2013 10:28:57 +0100
From: "Kees Bleijenberg" <[email protected]>
Subject: Re: [Haskell-beginners] Parsec problem
To: <[email protected]>
Message-ID: <000f01ce01f0$e489d4a0$ad9d7de0$@[email protected]>
Content-Type: text/plain; charset="utf-8"
Hi,
> module Main(main) where
>
> import Text.ParserCombinators.Parsec
>
> parseToNewLine = do
> line <- manyTill anyChar newline
> return line
>
> keyValue = do
> fieldName <- many letter
> spaces
> char '='
> spaces
> fieldValue <- parseToNewLine
> return (fieldName,fieldValue)
>
> main = parseTest keyValue "key=\n"
>
> I don?t understand why te code above doesn?t parse to (?key?,??)
Because the newline is already consumed by the `spaces`. So parseToNewLine gets
an empty string as input, and fails on that.
> parseToNewLine ?\n? parses to ?"
>
> parseTest keyValue ?a=b\n? works fine and parses to (?a?,?b?)
The input of parseToNewLine must contain a newline, or it fails. In the last
example, the `spaces` after `char '='` stops at reaching the 'b', so the
newline remains. In the first (problematic) example, all the remaining input
after the '=' consists of whitespace.
Thanks. This solves it. spaces does more then just reading spaces.
Kees
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20130203/042675ca/attachment.htm>
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 56, Issue 5
****************************************