On Fri, Mar 6, 2009 at 10:31 PM, Jonathan S. Shapiro <[email protected]> wrote:
> But in truth, if I could figure out how to re-extract multi-argument
> procedures at the implementation level easily enough, I'ld probably
> revert to single argument procedures at this point.

Just a dumb question: why is auto-currying so important? As you
outlined previously, allowing one to pass less (or more) arguments to
a function than one would "naively" expect from reading its definition
is nothing more than a comfort feature that saves some typing. That
comfort feature uses up syntactic design space that becomes
unavailable for other, arguably more important ones like optional
arguments. My uneducated guess is that the latter is way more useful
in a microkernel than currying.

Having to write these lambdas explicitly provides the exact same
functionality, arguably with better auditability to boot (because the
additional closures are explicitly visible in the source code).  Also
worth mentioning is that in OCaml, curry notation introduces some
typing shenanigans that quite squarely violate the principle of least
astonishment, see
http://caml.inria.fr/resources/doc/faq/core.en.html#eta-expansion
(although whether that particular problem also occurs in BitC's type
system is miles beyond my understanding).

-- 
  Dominique Quatravaux
  +41 79 609 40 72
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to