[your code here]

Joshua Niehus jm.niehus at gmail.com
Sat Feb 18 19:25:55 PST 2012


On Saturday, 18 February 2012 at 08:18:32 UTC, Denis Shelomovskij 
wrote:
> Some remarks:
> 0. `string[] args` isn't needed;
> 1. `delegate` is not needed;
> 2. `isSomeString!(T)` can be replaced by `isSomeString!T`;
> 3. `static if` can be replaced by `auto m = 
> mixin(isSomeString!T ? "n ~ i" : "n + i");`;
> 4. With nnew `=>` syntax function body can be replaced by
> `return (T i) => mixin(isSomeString!T ? "n ~ i" : "n + i");`
> or
> `return (T i) => mixin("n" ~ (isSomeString!T ? '~' : '+') ~ 
> 'i');`
>
>
> So your code can looks like this:
> ---
> import std.stdio, std.traits;
>
> void main() {
>     auto foo(T)(T n) {
>         return (T i) => mixin("n" ~ (isSomeString!T ? '~' : 
> '+') ~ 'i');
>     }
>     writeln(foo("Hello")(" World!"));
>     writeln(foo(18)(24));
>}
> 
> IMHO, all these three versions should be on the site grouped 
> somehow (i.e. one can navigate between analogous).

Ahhh, thats much cleaner, thanks.


More information about the Digitalmars-d mailing list