Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Depending on if you count it as a serious programming language, Racket has pretty much all the contract stuff. It has dedicated syntax for contracts, tight integration with the module system, and contract-random-generate attempts to generate a value satisfying a contract so writing an auto fuzzer wouldn't be too hard. In fact, I think Racket's system predates Clojure since there was the 2002 paper "Contracts for Higher-Order Functions" discussing it and Clojure first appeared in 2007.

The only reason I would ever use Clojure instead of Racket would be if I needed to work with the JVM ecosystem or the browser via Clojurescript (which are compelling reasons).

Totally agree about a good calculator language.



Clojure mentions Racket's contracts as prior art: https://clojure.org/about/spec




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: