Rant after trying Rust a bit

Jacob Carlborg via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 22 23:56:21 PDT 2015


On 2015-07-22 21:52, Alex Parrill wrote:

> You can make a `conformsToSomeInterface!T` template, and use `static
> assert`. D ranges, and the upcoming std.allocator, already use this sort
> of 'interfaces without polymorphism'.
>
> Ex. `static assert(isInputRange!(MyCoolRange));`

I would be a lot more cleaner to be able to do this:

void foo (T : MyCoolRange) (T range);

Or just:

void foo (MyCoolRange range);


> Most of what macros in C were used for are now done with templates,
> static if, etc. (I don't know how Rust's macros work). Tools could
> theoretically execute `mixin`, but it effectively requires a D
> interpreter. A library to do that would be really nice.

Macros in C have nothing to do with macros in Rust, which are called AST 
macros or syntax macros. It's unfortunate that they use the same word, 
"macro".

If D macros you could do something like this:

auto person = Person.where(e => e.name == 'Foo');

Where the lambda would be translated do an SQL string and performs a 
query in a database.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list