While the first experiment took long to implement, it was fairly easy to understand and I think we can move on to the second one.
Second Dunaj experiment adds support for optional type signatures that can be used to annotate functions, protocol methods, type fields and local bindings. These type signatures are then used to automatically generate host type hints. At run-time, type signatures are stored in vars' metadata, available for third party type checking, data validation and documentation tools. Goals of the second Dunaj experiment are as follows: - Provide developers with a means to document type signatures for functions, protocol methods, let-like bindings and deftype fields. - Automatically generate type hints from provided type signatures, including primitive ones. - Open up type signatures for custom extensions and use in third party data validation and type checking tools. Dunaj aims to decomplect type declarations from type checking tools. It provides conventions and syntax extensions for defining type signatures, while leaving their exact interpretation to other libraries. Existing protocols, types and host classes can all be used as type declarations. By generating type hints automatically, users do not have to write types twice (first time as a type signature and second time as a type hint). Specifying type signatures does not produce any run-time overhead, as all processing is done at a macro expansion time. As I don't want to write long emails here, you can read more about this experiment at http://www.dunaj.org . Best, Jozef On Thursday, March 5, 2015 at 10:33:53 PM UTC+1, Jozef Wagner wrote: > > I'm happy to announce a project called Dunaj [1], which provides an > alternative core API for Clojure. Its main aim is to experimentally test > major additions to the language. > > Dunaj /ˈdunaɪ/ is a set of core language experiments aimed to improve > Clojure language and its core API. It deals with language features that > require changes across different parts of Clojure and which cannot be > evaluated in isolation. Dunaj aims to bring Clojure even more towards > simplicity, consistency and performance. > It is intended to be used by regular Clojure developers, either for > application or library development. > > Dunaj was created to test 10 experiments that bring significant changes to > the Clojure language. As there is a substantial number of additions and > changes, I want to try a bit unconventional approach here. Before I'll > release the actual library, I will introduce Dunaj's experiments in a > series of individual posts. Every part states the motivation behind the > experiment, introduces changes and additions to the language and > demonstrates its intended use. If you do not want to miss any of this, you > may want to register for a mailing list at [1] or follow @dunajproject at > Twitter. > > -- Jozef Wagner > > [1] http://www.dunaj.org/ > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.