Re: Example for multi level template composition

2022-10-10 Thread surlymoor via Digitalmars-d-learn

On Monday, 10 October 2022 at 06:30:05 UTC, Arun wrote:
Stumbled upon this question on HN 
https://news.ycombinator.com/item?id=33142751#33147401


This guy could have read std.meta's documentation or source, but 
instead makes assumptions and lazes around.


Re: Example for multi level template composition

2022-10-10 Thread ag0aep6g via Digitalmars-d-learn

On Monday, 10 October 2022 at 06:30:05 UTC, Arun wrote:
Stumbled upon this question on HN 
https://news.ycombinator.com/item?id=33142751#33147401


Can I write template A and then apply it to itself to get 
template B and then apply that onto template C to get template 
D.


Does anyone have an example for this?


You can just write that down in code:

```d
template D() { enum D = "It's me, template D!"; }

template A(alias MyA)
{
template A(alias MyC)
{
alias A = D;
}
}

template C() {}

alias B = A!A;
alias MaybeD = B!C;
pragma(msg, MaybeD!()); /* prints "It's me, template D!" */
```


Re: Example for multi level template composition

2022-10-10 Thread rassoc via Digitalmars-d-learn

On 10/10/22 08:30, Arun via Digitalmars-d-learn wrote:

Stumbled upon this question on HN 
https://news.ycombinator.com/item?id=33142751#33147401


Can I write template A and then apply it to itself to get template B and then 
apply that onto template C to get template D.


Does anyone have an example for this?


Aren't UFCS chained range calls just that?

range.map!foo.filter!bar.fold!baz;

These templates return new template ranges that transform themselves according 
to their inputs via Design by Introspection. For example, joiner of joiner of 
joiner would allow you to lazily flatten a multi dim array.


Re: Example for multi level template composition

2022-10-10 Thread user1234 via Digitalmars-d-learn

On Monday, 10 October 2022 at 06:30:05 UTC, Arun wrote:
Stumbled upon this question on HN 
https://news.ycombinator.com/item?id=33142751#33147401


Can I write template A and then apply it to itself to get 
template B and then apply that onto template C to get template 
D.


Does anyone have an example for this?


Recursive templates can make other templates with themselves. I 
dont feel to provide an example ATM tho.


Example for multi level template composition

2022-10-10 Thread Arun via Digitalmars-d-learn
Stumbled upon this question on HN 
https://news.ycombinator.com/item?id=33142751#33147401


Can I write template A and then apply it to itself to get 
template B and then apply that onto template C to get template 
D.


Does anyone have an example for this?