[Haskell-cafe] some ideas for Haskell', from Python

Lennart Augustsson lennart at augustsson.net
Wed Jan 14 18:47:02 EST 2009


With macros you can define new variable binding constructs.
That's something I occasionally miss in Haskell.

  -- Lennart

On Wed, Jan 14, 2009 at 6:48 PM, Jonathan Cast
<jonathanccast at fastmail.fm> wrote:
> On Wed, 2009-01-14 at 12:39 -0600, Tim Wawrzynczak wrote:
>>         You're probably right.
>>         I've played around with LISP macros a little, but it seems
>>         that most
>>         of the cases where you would use a macro in LISP you don't
>>         need one in
>>         haskell due to lazy evaluation.  Although I haven't played
>>         around with
>>         them enough to say much one way or another.
>>
>>         Do you know of a particular example where a macro would be a
>>         big help
>>         in haskell?
>>
>> Well, like many good programming tools, Lisp macros are another
>> abstraction, but instead of dealing with data, they deal with code.
>
> Haskell already has a couple of abstraction tools for dealing with code.
> One is called `first-class functions'; another is called `lazy
> evaluation'.
>
>> They are a syntactic abstraction.
>
> What is this good for?  I suspect most Lisp macros are parametric in
> form, rather than really syntactic; I know that every example of a Lisp
> macro I've seen is parametric in form.  Parametric macros --- macros
> that don't deconstruct their arguments --- don't usually need to be
> macros at all in modern functional languages.  Do you have an example of
> a macro that can't be replaced by higher-order functions and laziness?
>
>> They're often described as "programs that write programs."
>
> So are code generators.  The most common example of a code generator is
> probably YACC --- but Parsec replaces it, with better readability even,
> with first-class parsers (built atop first-class functions).
>
> jcc
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list