I was thinking the same thing. If I remember correctly, RWH does a parser in an applicative style, but I'll have to look when I get home to be sure. If so, then maybe we could try doing the same thing in a monadic style, for comparison and contrast purposes.<br>
<br><div class="gmail_quote">On Thu, Mar 12, 2009 at 11:29 AM, Jeff Heard <span dir="ltr"><<a href="mailto:jefferson.r.heard@gmail.com">jefferson.r.heard@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Come to think of it, I've never seen an applicative tutorial of<br>
Parsec, only a monadic one. Does such a beast exist, and if so, maybe<br>
we could merge the two together, work the same example in both, and<br>
thus help the programmer make the shift from monadic to applicative,<br>
from order of parsing to describing the grammar.<br>
<br>
-- Jeff<br>
<br>
2009/3/12 Conal Elliott <<a href="mailto:conal@conal.net">conal@conal.net</a>>:<br>
<div><div></div><div class="h5">> Thank you Bob! I'll throw in another 2 cents:<br>
><br>
> Yes, *one* aspect of Haskell is that it's a power tool for imperative<br>
> programming -- a clever way to keep plugging away at the old sequential von<br>
> Neumann paradigm. C++++.<br>
><br>
> I'd rather we strongly encourage Haskell-newbies toward shifting out of the<br>
> imperative paradigm to thinking and programming *functionally*. It's a big<br>
> shift, to make, and imperative-Haskell is a relatively easy substitute.<br>
><br>
> - Conal<br>
><br>
> On Thu, Mar 12, 2009 at 7:28 AM, Thomas Davie <<a href="mailto:tom.davie@gmail.com">tom.davie@gmail.com</a>> wrote:<br>
>><br>
>> On 12 Mar 2009, at 15:16, Andrew Wagner wrote:<br>
>><br>
>>> Can you expand on this a bit? I'm curious why you think this.<br>
>><br>
>> For two reasons:<br>
>><br>
>> Firstly, I often find that people use the Monadic interface when one of<br>
>> the less powerful ones is both powerful enough and more convenient, parsec<br>
>> is a wonderful example of this. When the applicative instance is used<br>
>> instead of the monadic one, programs rapidly become more readable, because<br>
>> they stop describing the order in which things should be parsed, and start<br>
>> describing the grammar of the language being parsed instead.<br>
>><br>
>> Secondly, It seems relatively common now for beginners to be told about<br>
>> the IO monad, and start writing imperative code in it, and thinking that<br>
>> this is what Haskell programming is. I have no problem with people writing<br>
>> imperative code in Haskell, it's an excellent imperative language. However,<br>
>> beginners seeing this, and picking it up is usually counter productive –<br>
>> they never learn how to write things in a functional way, and miss out on<br>
>> most of the benefits of doing so.<br>
>><br>
>> Hope that clarifies what I meant :)<br>
>><br>
>> Bob_______________________________________________<br>
>> Haskell-Cafe mailing list<br>
>> <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
>> <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
><br>
><br>
> _______________________________________________<br>
> Haskell-Cafe mailing list<br>
> <a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
> <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
><br>
><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>