
Why Lisp macros are cool, a Perl perspective (2005) - lobo_tuerto
http://lists.warhead.org.uk/pipermail/iwe/2005-July/000130.html
======
btilly
How did this wind up here?

For the original, go to
[http://plover.com:8080/~alias/list.cgi?2:mss:234:200507:hokn...](http://plover.com:8080/~alias/list.cgi?2:mss:234:200507:hoknbblkgieoacmanmkm)
and see the discussion we had about it then.

It is also worth noting that MJD has the distinction of being the highest
rated speaker at Oscon ever. If there is any possibility of interest, he is
worth watching because he is incredibly informative.

See <http://perl.plover.com/> for some of his older Perl writings.

~~~
gruseom
_How did this wind up here?_

Because chimeracoder posted it here:
<http://news.ycombinator.com/item?id=4245898>. Credit where due!

~~~
btilly
Which makes me wonder why chimeracoder had that link rather than the original.
And makes me wonder whether I know chimeracoder.

Some background. I was the person who forwarded an interesting email from hop-
discuss to a small mailing list of mostly technical friends. The link that was
reposted was to the version that I forwarded, instead of the original that I
would expect to be more widely known.

~~~
gruseom
It may just be that Google knows you:

<https://www.google.com/#q=mark+dominus+lisp+macros>

~~~
btilly
It is more likely that it crawled those archives and found more on the IWE
list than hop-discuss.

------
berntb
Lisp people might enjoy this short specification for Perl 6:
<http://perlcabal.org/syn/S06.html#Macros>

"Real" macros in a non-lisp language [edit: I mean, a language without the
parse tree explicitly in the syntax]? Well, it'd be wonderful _if_ it works.

Edit: re Dominus, his Higher Order Perl is on the net.
<http://hop.perl.plover.com/>

------
mmphosis
"Lisp has all the visual appeal of oatmeal with fingernail clippings mixed
in." - Larry Wall

 _C's macro system, for example, is so unreliable that you can't even define a
simple macro like_

    
    
            #define square(x)      x*x
    
    

_How do you set the value associated with the "foo" property? Oh, you use
"setf", which rewrites_

    
    
            (setf (get x foo) 1)
    

_to_

    
    
            (LET* ((#:G847 X) (#:G848 FOO))
              (MULTIPLE-VALUE-BIND (#:G850) 1 (COMMON-LISP::%PUT #:G847
                 #:G848 #:G850)))
    

_but you don't have to know that. It just works._

I agree about C macros. But, show me the source for:

    
    
        (defmacro setf ...
    

and you may be quoting Larry Wall.

~~~
JustinJ70s
"Lisp has all the visual appeal of oatmeal with fingernail clippings mixed
in." - Larry Wall

Considering the general appearance of code for the language he created I'm not
sure this quote of his can be taken all that seriously. At worst Perl looks
like somebody glued the shift key down and repeatedly head-butted the top row
of their keyboard.

~~~
berntb
(I shouldn't comment on karma 18 accounts, I'm probably being trolled, but a
couple of links should be ok...)

See the Synopsises here:

[http://search.cpan.org/~flora/MooseX-
Declare-0.35/lib/MooseX...](http://search.cpan.org/~flora/MooseX-
Declare-0.35/lib/MooseX/Declare.pm)

[http://search.cpan.org/~ether/MooseX-Method-
Signatures-0.43/...](http://search.cpan.org/~ether/MooseX-Method-
Signatures-0.43/lib/MooseX/Method/Signatures.pm)

(I assume you'll insist that any link I give is ugly. :-) But note that the
declarations and parameter specifications are at least as elegant as any other
major scripting language I'm aware of.)

Edit: And for the record, I love Perl and Lisp. :-)

~~~
JustinJ70s
Not trolled, probably karma 18 because I've posted only a few times in the
years since creating an account. I'm really not intrested in karma/scoring
games on sites like HN.

Moose looks really nice and I've nothing against Perl - my language of choice
is Scala. I just thought it was a daft thing for Larry to say considering the
issues of readability that have been levelled at Perl.

~~~
mst
If you consider this, what you've just said is "I think it's daft for Larry
not to like the way lisp looks considering some people don't like the way perl
looks."

I don't like the way python looks. Does that mean it would be daft for Guido
to ever criticise another language's aesthetics? :)

