4 ms·
You wrote "then have that checked on the function before the program ever runs". That is the definition of static checking. To statically check constraints lik
by ngrilly 9y ago
You wrote "then have that checked on the function before the program ever runs". That is the definition of static checking.
To statically check constraints like "all integers between 5 and 50", you need dependent types, and Clojure doesn't support this.
Considering this, I'm not sure what you mean by "before the program ever runs". Do you mean a check thanks to automated property-based testing (which is a way of running a part of your program)?
- hellofunk 9y agoNo, I'm not talking about static checking. I'm talking about property-based tests that run at compile time. Dependent typing is a different matter. What I describe is not dependent typing, but is quite straightforward now thanks to Clojure.spec. And there are a lot of community efforts in the research sphere to see where Spec can take static analysis, it's quite interesting.
- ngrilly 9y agoThanks.