4 ms·
It’s not difficult when you can enumerate every member of a type. Can you write a type for prime numbers this way?
by amw-zero 6y ago
It’s not difficult when you can enumerate every member of a type. Can you write a type for prime numbers this way?
- eyelidlessness 6y agoI didn’t enumerate every member though, just the digit. I’m sure it’s possible to calculate primes. The TS type system has been turing complete since 2.something, it’s just easier to use now. Edit to add: they don’t use semver, they just roll over at 9, so it’s been turning complete for ~20 releases.
- amw-zero 6y agoIn poking around, I found this: https://github.com/microsoft/TypeScript/issues/14833 https://github.com/microsoft/TypeScript/issues/14833 Where someone actually implements a compile-time check for prime numbers. I guess saying that it _can't_ be done is inaccurate. It's just absolutely horrendous.
- eyelidlessness 6y agoRight that issue was in mind in my last comment. But that was almost 4 years ago, and the type system has become a lot more capable. Including the template literal types as used in my dumb little non-negative int or in compile time JSON, SQL and GraphQL parsing. Which are still horrendous but a great deal less so than some of the hacks from 2027, and a lot easier to read. It’s definitely not an ML type system, but I’d bet a dollar it takes more inspiration and guidance from F# than C#.