3 ms·
That reminds me very strongly how Zig does it
by ayende 4y ago
That reminds me very strongly how Zig does it
- Rochus 4y agoI'm not familiar with Zig, but a quick look at https://ziglang.org/documentation/master/#Generic-Data-Structures https://ziglang.org/documentation/master/#Generic-Data-Struc... makes me doubt that Zig does genericity on module level; looks rather like parametric polymorphism.
- mncharity 4y agoNot GP, and I'm just surfing unfamiliar docs, but it looks like, yes, there's general parameter polymorphism,[1] but also "modules" presented as structs,[2] and the polymorphism of struct constructors can have nontrivial impacts[3](eg Map(KeyType,void) loses value setters). Fwiw. [1] https://ziglang.org/documentation/master/#comptime https://ziglang.org/documentation/master/#comptime "Compile-time parameters is how Zig implements generics. It is compile-time duck typing." [2] https://ziglang.org/documentation/master/#import https://ziglang.org/documentation/master/#import [3] https://ziglang.org/documentation/master/#void https://ziglang.org/documentation/master/#void "By using void as the type of the value, the hash map entry type has no value field, and thus the hash map takes up less space. Further, all the code that deals with storing and loading the value is deleted, as seen above."
- Rochus 4y agointeresting, thanks