2 ms·
in a sense, generics just let you provide parameters to your types, just like you give parameters to functions. it's not all that magical.
by abiox 9y ago
in a sense, generics just let you provide parameters to your types, just like you give parameters to functions. it's not all that magical.
- vram22 9y agoYes, I had read in an article about/by Walter Bright about D, that that was the insight he had, when working on the design of generics or templates for D: To paramet(e)rize the types (of a class or function or method), just like you parametrize the arguments of a function or method. Update: searched for and found the article that mentions that: https://dlang.org/blog/2016/08/30/ruminations-on-d-an-interview-with-walter-bright/ https://dlang.org/blog/2016/08/30/ruminations-on-d-an-interv... Excerpt (italics mine): [ Walter: We nailed it with arrays (Jan Knepper’s idea), the basic template design, compile-time function execution (CTFE), and static if. I have no idea what the thought process is in any repeatable manner. If anything, it’s simply a dogged sense that there’s got to be a better way. It took me years to suddenly realize that a template function is nothing more than a function with two sets of parameters –compile time and run time–and then everything just fell into place. I was more or less blinded by the complexity of templates such that I had simply missed what they fundamentally were. There was also a bit of the “gee, templates are hard” that predisposes one to believe they actually are hard, and then confirmation bias sets in. I once attended a Scott Meyers presentation on type lists. He took an hour to explain it, with slide after slide of complexity. I had the thought that if it was an array of ints, his presentation would be 2 minutes long. I realized that an array of types should be equally straightforward. ]