> [snip: parser and interpreter for a little expression language]
>
> however an experienced haskell programmer might realize the data
> structure is not needed and just write
>
> [snip: combined parser/interpreter for same language]
>
> by getting rid of these needless intermediate data structures (something
> you learn to do intuitivly as you use haskell), one reduces the chances
> for naming conflicts.

I don't think I agree with that at all.

John Hughes' "Why Functional Programming Matters" makes it very clear how much 
power you gain from adding intermediate data structures.

I personally find them extremely valuable in compilers and interpreters 
because they help me separate the concrete syntax from the abstract syntax.
Further, if the language were to evolve a little, having a separate data 
structure would make it possible to add typechecking or other static 
semantics.  

[I avoid name clashes using a combination of smallish modules, qualified 
naming and ad hoc use of prefixes and deliberate mis-spellings.  The 
situation in Haskell isn't especially happy.]

--
Alastair Reid
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to