DIP78 - macros without syntax extensions
Idan Arye via Digitalmars-d
digitalmars-d at puremagic.com
Wed May 27 08:47:00 PDT 2015
On Wednesday, 27 May 2015 at 08:14:36 UTC, Kagamin wrote:
> On Tuesday, 26 May 2015 at 23:47:41 UTC, Dennis Ritchie wrote:
>> If this proposal is considered, it is required to propose to
>> look
>> at the implementation of macros in Nemerle. Many believe that
>> it
>> is in Nemerle macros implemented the most successful compared
>> to
>> other modern languages. Of course, the most successful macros
>> are
>> implemented in Lisp, but the syntax of the language is poor :)
>
> The problem with declarative macro system is that you would
> need to learn yet another language. Possibly turing-complete.
> And a declarative turing-complete language is an overkill both
> for usage and implementation. Imperative macros get it done in
> an intuitive way in the existing language.
But D already has such a declarative language - the one used in
template metaprogramming. I think a macro system that plays well
with that template metaprogramming sub-language will be really
nice. For example, CTFE that works like a macro and returns
types/aliases:
Auto deduceType(Auto args) {
// some complex imperative code to deduce the type from
the args
return DeducedType;
}
struct Foo(T...) {
deduceType(T) value;
}
More information about the Digitalmars-d
mailing list