Hello, folks! Newbie to D, have some questions!

bachmeier via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Feb 19 07:22:50 PST 2017


On Saturday, 18 February 2017 at 20:15:55 UTC, timmyjose wrote:
> 4. I have heard good reports of D's metaprogramming 
> capabilities (ironically enough, primarily from a thread on the 
> Rust user group), and coming from a Common Lisp (and some 
> Racket) background, I am deeply interested in this aspect. Are 
> D macros as powerful as Lisp macros? Are they semantically 
> similar (for instance, I found Rust's macros are quite similar 
> to Racket's)?

I was a Scheme/Common Lisp user for quite a while before moving 
to D. Lisp macros are more powerful (there's not much you can't 
do with them), but on the other hand, unless you stick with 
simple use cases, it can be hard to get Lisp macros right. You've 
got the whole defmacro vs hygienic debate. Also, the rule of 
thumb is to avoid macros unless you can't do it with a function.

I was never into heavy metaprogramming with Scheme or Common 
Lisp. The simplicity of D's compile time capabilities mean I do 
more metaprogramming in D, and I actually push a lot of stuff 
from runtime to compile time, which I wouldn't have done with 
Common Lisp.


More information about the Digitalmars-d-learn mailing list