[Haskell-cafe] Haskell-Cafe Info Page
dbueno at gmail.com
Sat May 17 15:19:15 EDT 2008
On Sat, May 17, 2008 at 3:16 PM, Don Stewart <dons at galois.com> wrote:
>> On 2008 May 17, at 14:52, D. Gregor wrote:
>> Common Lisp is a multiparadigm, general purpose programming language
>> that supports imperative, functional, and object-oriented programming
>> paradigms. Haskell is purely functional. Is this a reason why there is
>> not macro feature in Haskell? I feel the object-oriented paradigm of CL
>> and Scheme is the reason for the macro feature in these two languages.
>> If it's not, then what does the macro feature provide, and why isn't it
>> in Haskell?
>> Macros in Lisp have less to do with functional vs. non-functional than
>> with programs and data having precisely the same form (s-expressions).
>> There is a macro facility of the kind you're thinking of in Haskell
>> (Template Haskell), but you have to work with abstract syntax tables which
>> look nothing like the original code.
> Also, laziness is used for many of the coding jobs you might use macros
> for. So there's less need for macros.
Precisely so. For example, macros are often used to implement control
operators (e.g. specific kinds of complicated iteration), which is
easily done in haskell with normal functions, due to laziness.
More information about the Haskell-Cafe