4 ms·
How will this compare to Typed Racket and Typed Clojure? In particular, Typed Clojure works with Clojure's multi-methods, I believe. Also, you should have a l
by samth 14y ago
How will this compare to Typed Racket and Typed Clojure? In particular, Typed Clojure works with Clojure's multi-methods, I believe.
Also, you should have a look at Andrew Wright's work on Soft Scheme, which also used row polymorphism to statically analyze and check Scheme programs.
- chimeracoder 14y agoTyped Racket[1] has the advantage of being completely inter-operable with dynamically typed Racket - I can (and have) imported dynamically typed modules and used them in (statically) typed modules, as well as imported (statically) typed modules and used them in dynamically typed ones. You can even turn off the static type checking while keeping the type annotations. Not to mention that the type system is incredibly powerful and expressive. It's literally the best of both worlds. [1] http://docs.racket-lang.org/ts-guide/ http://docs.racket-lang.org/ts-guide/
- mahmud 14y agoTyped Racket's static-dynamic is due to its module system: modules allow for seperate compilation, and the type-checker accepts accepts fully typed modules, not mix-code fragments. However, Siek's Gradual Typing does handle mix-type expressions at finer-grain.
- samth 14y agoYou can use the `with-type` form to embed typed expressions in larger untyped modules in Racket. Also, submodules let you accomplish more of this as well, without needing to put your modules in separate files.
- BruceM 14y agoThere's also OpenDylan (http://opendylan.org/ http://opendylan.org/) and we're even considering adding an s-expression syntax back as an alternative...
- shaunxcode 14y agodoes it currently - or are there plans to - compile to js?
- BruceM 14y agoWe'd love to do that. We just lack the manpower. There are a couple of possible approaches ... one is a compiler backend similar to our C backend. Another is to try out emscripten. If you're interested in helping out, would love to chat. We're on #dylan on freenode.
- ambrosebs 14y agoTyped Clojure multimethod support is work in progress, but closing in.