I'm still excited to see it being a feature of a brand new language, and everything else about this language seems very exciting to me!
I'm still excited to see it being a feature of a brand new language, and everything else about this language seems very exciting to me!
Our approaches differ though. Stanza believes fundamentally in nominal typing as opposed to structural typing, and also views types as contracts on its behaviour rather than on its structure.
Only time will tell which approach is the best one. But we are very happy with how our design choices have panned out.
Shen allows you to turn the type checker on or off:
(tc +)
(tc -)
You can leave your type signatures in the code when you turn them off, and when tc is on you only need a type in the top level of your function.
It has a fully functional Prolog engine built in, and it supports optional lazy evaluation too.
Great talk by Aditya Siram Sept 2014 Strange Loop talk introducing Shen [2]. Shen has been ported to many languages, since it only requires porting the 46 primitive instruction set, called Klambda. Shen has been ported to CL (SBCL), Ruby, JavaScript, Haskell and even Emacs Lisp.
[1] http://shenlanguage.org/ [2] https://www.youtube.com/watch?v=lMcRBdSdO_U
Now is the time to bring many of its contributions into the light again.