Daily downloads in decline
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jun 11 10:41:52 PDT 2015
On 6/11/15 9:33 AM, Dennis Ritchie wrote:
> On Thursday, 11 June 2015 at 15:03:39 UTC, Dicebot wrote:
>> Those are considerably less powerful:
>> - can only have type arguments
>> - no variadic argument list support
>> - no arbitrary condition constraints (thus only partial duck typing
>> support)
>>
>> On the other hand they have one important advantage: all type
>> arguments must comply to one or more trairs and thus bodies of
>> generics are checked before institation. You are only allowed to call
>> methods and operations of generic arguments that are defined in
>> relevan trait. This is huge win for code hygiene compared to D.
>>
>> Any sort of more advanced meta-programming things can only be done via
>> AST macros which is currently the biggest downside in my eyes when it
>> comes to features. Though quite some people like that.
>
> The fact that there is no support variadiŃ arguments, it is really
> negative.
>
> It is possible that Walter and Andrei against macro because of this:
>
> macro_rules! o_O {
> (
> $(
> $x:expr; [ $( $y:expr ),* ]
> );*
> ) => {
> &[ $($( $x + $y ),*),* ]
> }
> }
>
> fn main() {
> let a: &[i32]
> = o_O!(10; [1, 2, 3];
> 20; [4, 5, 6]);
>
> assert_eq!(a, [11, 12, 13, 24, 25, 26]);
> }
>
> It looks disgusting! ;)
Is that actual Rust code that compiles and runs? -- Andrei
More information about the Digitalmars-d
mailing list