> So taking up the task of insuring correctness/consistency but leaving aside
> static typing as is typically practiced.   How can we best catch errors and
> inconsistencies in our code before our end users do? How can we do this
> better than any competing system (like Haskell)? How quickly can errors be
> caught - run time, compile time, edit time?

Dialyzer (a tool widely used in Erlang) may provide some ideas in this
direction. It can be used to infer types and to check for type
violations, in some cases without any annotations.

I don't think it's quite what you want, but like I said, perhaps more
food for thought.

More interesting is the work Kostis et al have done with Purity
(http://user.it.uu.se/~kostis/Papers/purity.pdf) which uses static
analysis to determine whether functions are referentially transparent
in order to have user-defined guard functions for Erlang's pattern
matching.

If you look at the other tools he and his colleagues have made
(http://www.erlang-factory.com/upload/presentations/347/Kostis.pdf)
you'll see that the Clojure community has already been busy along the
same lines (test.generative, the various semi-automated refactoring
tools, etc).

jack.

-- 
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

Reply via email to