I often wish cond would raise an exception if all the tests failed and
there were no else clause.  I have taken to writing a macro to enforce
this; I usually call it cond!.  The void default for cond seems like an
un-Racketish holdover from primarily-imperative programming.  With some of
the other changes we've made in Racket, are we willing to consider changing
the fall-through behavior of cond?  It seems like an experiment worth
running to me.

If not, I would at least like to add an erroring version of cond somewhere
in the language.  It's a shame to have to keep writing such a primitive
feature.  Right now in my dracula github repo I have cond! implemented in
racket/cond and re-exported from racket, but I'm not thrilled about either
the location or the name.  I kept it out of racket/base so I could depend
on the syntax collection for good source location reporting in the error
message.

Carl Eastlund
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to