I have been thinking about the discussion of "queryable programs" from Rich's keynote at Clojure Conj. This meaning of this idea is probably more well-defined for other people than it is in my present understanding, but my sense from the talk is that the analysis phase of compilation will leverage core.logic to infer facts about the program and find possible inconsistencies and problems, reporting them as warnings or errors.
Yesterday I had an interesting conversation with a functional programmer who is more on the statically typed side of the fence, and I brought up this idea. He told me about some interesting research by Dana Xu on static contracts. Unlike standard (dynamic) contracts, which throw exceptions when the code is exercised at run-time, static contracts seem to be more along the lines of what Rich is talking about. See: http://gallium.inria.fr/~naxu/research/dana-phd.pdf What do you think about this idea? I have just started reading the above pdf... I don't see much of interest when googling for '"static contract" Racket' but that would be a closer jump to Clojure if someone figured out how to do this in a Lisp. The Racket community seems the likeliest home for such research. Also, I'm curious to know what other concepts/techniques might be on the table in the plan for Clojure to surpass statically typed languages at their own game (to the extent that their game is all that relevant). Rob -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
