On Wed, Sep 16, 2020 at 12:00 PM Jan Hönig via Digitalmars-d-learn <
digitalmars-d-learn@puremagic.com> wrote:

> ...
>
> My main question is why? Is there something, which I am missing,
> that explains, why it is beneficial to return a templated
> function?
>
> (maybe, because I might want to compose together templated
> non-initialized functions?)
>

It has to be templated because than you can alias it and use it many times
something like

import std.stdio;
import std.functional : compose;
import std.algorithm.comparison : equal;
import std.algorithm.iteration : map;
import std.array : split, array;
import std.conv : to;

alias StrArrToIntArr = compose!(array,map!(to!int), split);
void main()
{
    auto str1 = "2 4 8 9";
    int[] intArr = StrArrToIntArr(str1);
}


If compose would not be template it would need to store functions addresses
so it would need to have some array of functions, this would be ineffective
and need to use GC

Reply via email to