How to provide this arg or functor for algorithm?
FreeSlave via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Aug 16 05:53:25 PDT 2015
On Sunday, 16 August 2015 at 12:30:54 UTC, cym13 wrote:
> On Sunday, 16 August 2015 at 11:53:42 UTC, FreeSlave wrote:
>> [...]
>
> Ok, so as my lambda proposition obviously doesn't work, here is
> one way that does using a templated function. There may be a
> way to make it shorter, I don't know.
>
>
> import std.conv;
> import std.stdio;
>
> template fun(uint context) {
> static uint withContext(uint value) {
> return value * context;
> }
>
> auto fun(uint[] arr) @nogc {
> return arr.map!withContext;
> }
> }
>
> void main(string[] args) {
> [1, 2, 3].to!(uint[])
> .fun!2
> .writeln;
> }
It works only because 2 is known constant at compile time.
More information about the Digitalmars-d-learn
mailing list