Send Beginners mailing list submissions to beginners@haskell.org 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 beginners-requ...@haskell.org
You can reach the person managing the list at beginners-ow...@haskell.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Beginners digest..." Today's Topics: 1. Could not get parser ready (Marcus Manning) 2. Re: Could not get parser ready (Francesco Ariis) 3. Re: Could not get parser ready (Tobias Brandt) 4. Re: Could not get parser ready (Marcus Manning) ---------------------------------------------------------------------- Message: 1 Date: Sun, 5 Nov 2017 18:51:57 +0100 From: Marcus Manning <icons...@gmail.com> To: beginners@haskell.org Subject: [Haskell-beginners] Could not get parser ready Message-ID: <b2a9d2b8-bcb5-4826-e031-0d3037bf8...@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Hello, I follow the instructions of script [1] in order to set up a parser functionality. But I' get into problems at page 202 with the code: p :: Parser (Char,Char) p = do x ← item item y ← item return (x,y) ghci and ghc throw errors: Prelude> let p:: Parser (Char,Char); p = do {x <- item; item; y <- item; return (x,y)} <interactive>:10:65: error: • Couldn't match type ‘[(Char, String)]’ with ‘Char’ Expected type: String -> [((Char, Char), String)] Actual type: Parser ([(Char, String)], [(Char, String)]) • In a stmt of a 'do' block: return (x, y) In the expression: do x <- item item y <- item return (x, y) In an equation for ‘p’: p = do x <- item item y <- item .... Did the semantics of do expr changed? [1] https://userpages.uni-koblenz.de/~laemmel/paradigms1011/resources/pdf/haskell.pdf Cheers, iconfly. ------------------------------ Message: 2 Date: Sun, 5 Nov 2017 21:45:45 +0100 From: Francesco Ariis <fa...@ariis.it> To: beginners@haskell.org Subject: Re: [Haskell-beginners] Could not get parser ready Message-ID: <20171105204545.awdviuimn4ppa...@x60s.casa> Content-Type: text/plain; charset=utf-8 On Sun, Nov 05, 2017 at 06:51:57PM +0100, Marcus Manning wrote: > Hello, > > I follow the instructions of script [1] in order to set up a parser > functionality. But I' get into problems at page 202 with the code: > > p :: Parser (Char,Char) > p = do > x ← item > item > y ← item > return (x,y) > > > ghci and ghc throw errors: > Prelude> let p:: Parser (Char,Char); p = do {x <- item; item; y <- item; > return (x,y)} Hello Marcus, what is the :type of `item`? ------------------------------ Message: 3 Date: Sun, 05 Nov 2017 21:56:02 +0100 From: Tobias Brandt <to...@uni-bremen.de> To: The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org> Subject: Re: [Haskell-beginners] Could not get parser ready Message-ID: <20171105215602.horde.imsw87f6udtqhg4r3-e7...@webmail.uni-bremen.de> Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="Yes" Hey, can you show us your Parser definition? Cheers, Tobias ----- Nachricht von Marcus Manning <icons...@gmail.com> --------- Datum: Sun, 5 Nov 2017 18:51:57 +0100 Von: Marcus Manning <icons...@gmail.com> Antwort an: The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org> Betreff: [Haskell-beginners] Could not get parser ready An: beginners@haskell.org > Hello, > > I follow the instructions of script [1] in order to set up a parser > functionality. But I' get into problems at page 202 with the code: > > p :: Parser (Char,Char) > p = do > x ← item > item > y ← item > return (x,y) > > ghci and ghc throw errors: > Prelude> let p:: Parser (Char,Char); p = do {x <- item; item; y <- > item; return (x,y)} > > <interactive>:10:65: error: > • Couldn't match type ‘[(Char, String)]’ with ‘Char’ > Expected type: String -> [((Char, Char), String)] > Actual type: Parser ([(Char, String)], [(Char, String)]) > • In a stmt of a 'do' block: return (x, y) > In the expression: > do x <- item > item > y <- item > return (x, y) > In an equation for ‘p’: > p = do x <- item > item > y <- item > .... > Did the semantics of do expr changed? > > [1] > https://userpages.uni-koblenz.de/~laemmel/paradigms1011/resources/pdf/haskell.pdf > > Cheers, > > iconfly. > _______________________________________________ > Beginners mailing list > Beginners@haskell.orghttp://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ----- Ende der Nachricht von Marcus Manning <icons...@gmail.com> ----- -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.haskell.org/pipermail/beginners/attachments/20171105/b16c8a82/attachment-0001.html> ------------------------------ Message: 4 Date: Mon, 6 Nov 2017 09:15:58 +0100 From: Marcus Manning <icons...@gmail.com> To: The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org> Subject: Re: [Haskell-beginners] Could not get parser ready Message-ID: <CAHFjoxtZhYX4sqEi5bVAiyaOUHYWg=wxmberofqnzrzev13...@mail.gmail.com> Content-Type: text/plain; charset="utf-8" type Parser a = String → [(a,String)] item :: Parser Char item = λinp → case inp of [] → [] (x:xs) → [(x,xs)] failure :: Parser a failure = λinp → [] return :: a → Parser a return v = λinp → [(v,inp)] (+++) :: Parser a → Parser a → Parser a p +++ q = λinp → case p inp of [] → q inp [(v,out)] → [(v,out)] parse :: Parser a → String → [(a,String)] parse p inp = p inp p :: Parser (Char,Char) p = do x ← item item y ← item return (x,y) It is described in pages 189-216 in [1]. [1] https://userpages.uni-koblenz.de/~laemmel/paradigms1011/resources/pdf/haskell.pdf I assume the bind operator (==>) was overwritten by (>>=) :: Parser a → (a → Parser b) → Parser b p >>= f = λinp → case parse p inp of [ ] → [ ] [ (v, out) ] → parse (f v) out in order to manipulate the do expr to make the p function work, right? 2017-11-05 21:56 GMT+01:00 Tobias Brandt <to...@uni-bremen.de>: > Hey, > > can you show us your Parser definition? > > Cheers, > Tobias > > ----- Nachricht von Marcus Manning <icons...@gmail.com> --------- > Datum: Sun, 5 Nov 2017 18:51:57 +0100 > Von: Marcus Manning <icons...@gmail.com> > Antwort an: The Haskell-Beginners Mailing List - Discussion of primarily > beginner-level topics related to Haskell <beginners@haskell.org> > Betreff: [Haskell-beginners] Could not get parser ready > An: beginners@haskell.org > > Hello, > > I follow the instructions of script [1] in order to set up a parser > functionality. But I' get into problems at page 202 with the code: > > p :: Parser (Char,Char) > p = do > x ← item > item > y ← item > return (x,y) > > > ghci and ghc throw errors: > Prelude> let p:: Parser (Char,Char); p = do {x <- item; item; y <- item; > return (x,y)} > > <interactive>:10:65: error: > • Couldn't match type ‘[(Char, String)]’ with ‘Char’ > Expected type: String -> [((Char, Char), String)] > Actual type: Parser ([(Char, String)], [(Char, String)]) > • In a stmt of a 'do' block: return (x, y) > In the expression: > do x <- item > item > y <- item > return (x, y) > In an equation for ‘p’: > p = do x <- item > item > y <- item > .... > Did the semantics of do expr changed? > > [1] https://userpages.uni-koblenz.de/~laemmel/paradigms1011/ > resources/pdf/haskell.pdf > > Cheers, > > iconfly. > _______________________________________________ > Beginners mailing list > Beginners@haskell.orghttp://mail.haskell.org/cgi-bin/ > mailman/listinfo/beginners > > > > > ----- Ende der Nachricht von Marcus Manning <icons...@gmail.com> ----- > > > _______________________________________________ > Beginners mailing list > Beginners@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.haskell.org/pipermail/beginners/attachments/20171106/71f34093/attachment.html> ------------------------------ Subject: Digest Footer _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ End of Beginners Digest, Vol 113, Issue 4 *****************************************