Thread overview | |||||
---|---|---|---|---|---|
|
June 05, 2014 alias with lambda syntax: alias fun2=a=>fun(a); | ||||
---|---|---|---|---|
| ||||
Attachments:
| Is there a way to do this? import std.algorithm; auto fun(T)(T a){return a;} template fun2(T){auto fun2(T a){return fun(a);}}//OK but heavy syntax and cannot be nested inside test() void main(){ //alias fun2=fun!int; //OK but needs to specify template params //none of those work: //alias fun2=a=>fun(a); //alias fun2(T)=(T a)=>fun(a); //alias fun2(T)=(T a){return fun(a);} auto b=[1].map!fun2; assert(b.equal([1])); } |
June 05, 2014 Re: alias with lambda syntax: alias fun2=a=>fun(a); | ||||
---|---|---|---|---|
| ||||
Posted in reply to Timothee Cour | On Thursday, 5 June 2014 at 06:58:50 UTC, Timothee Cour via
Digitalmars-d-learn wrote:
> Is there a way to do this?
>
> import std.algorithm;
>
> auto fun(T)(T a){return a;}
>
> template fun2(T){auto fun2(T a){return fun(a);}}//OK but heavy syntax and
> cannot be nested inside test()
>
> void main(){
> //alias fun2=fun!int; //OK but needs to specify template params
> //none of those work:
> //alias fun2=a=>fun(a);
> //alias fun2(T)=(T a)=>fun(a);
> //alias fun2(T)=(T a){return fun(a);}
> auto b=[1].map!fun2;
> assert(b.equal([1]));
> }
ok I remembered we can use std.typetuple.Alias for that.
|
June 06, 2014 Re: alias with lambda syntax: alias fun2=a=>fun(a); | ||||
---|---|---|---|---|
| ||||
Posted in reply to timotheecour | On Thursday, 5 June 2014 at 07:19:07 UTC, timotheecour wrote:
> ok I remembered we can use std.typetuple.Alias for that.
Or std.functional.unaryFun.
|
Copyright © 1999-2021 by the D Language Foundation