News for hackers. Stuff that matters.
Re:Zig-style generics are not well-suited for most languages by arunc on Sunday October 09, 2022 @11:33PM (#33147489)
I don't think it's true. Show some example?

Templates work even in betterC mode.

Re:Zig-style generics are not well-suited for most languages by valenterry on Sunday October 09, 2022 @11:50PM (#33147579)
Can you template a template?
Re:Zig-style generics are not well-suited for most languages by ben-schaaf on Sunday October 09, 2022 @11:59PM (#33147633)
I believe so; see the entire meta package in the standard library: https://dlang.org/phobos/std_meta.html
Re:Zig-style generics are not well-suited for most languages by valenterry on Monday October 10, 2022 @12:10AM (#33147691)
Usually when something is called "meta" it means that it is special and does not compose.

I had someone explaining D templates to me on an Idris meetup, but it's been a few years, so I might very well be wrong here and not remember correctly. I'm happy to be corrected.

My next question would be: can I write those meta templates myself and modify them with themselves? In the same way that I could have a type-level function that applies another type-level function twice and then apply it on itself to get a new type-level function that applies another type-level function four times.

Re:Zig-style generics are not well-suited for most languages by WalterBright on Monday October 10, 2022 @01:04AM (#33147956)
Do you mean does recursion work? Absolutely!
Re:Zig-style generics are not well-suited for most languages by valenterry on Monday October 10, 2022 @01:36AM (#33148133)
I wasn't talking about recursion but composition. 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.
Re:Zig-style generics are not well-suited for most languages by WalterBright on Monday October 10, 2022 @02:07AM (#33148301)
Yes.
Re:Zig-style generics are not well-suited for most languages by valenterry on Monday October 10, 2022 @09:12PM (#33158302)
I can't quite wrap my head around how that would work, but I'll trust you and then take my original claim back!
Re:Zig-style generics are not well-suited for most languages by he_the_great on Saturday October 15, 2022 @12:02PM (#33215937)
auto alist = [1, 3, 2];

alist .sort .map!(x => x * x) .map!(x => x - x/2) .map!(x => x + 1);

This seems like what you're asking. Each of those is a template. And while this is all logic code, D has inferred the type aka: SortedRange!Map!Map!Map

With some details removed.