Hello,
I just wondered about ways to get rid of definitions like
let rec foo_aux init = ...
let foo = foo_aux []
using labels and default arguments. There I found a problem with functions
like:
let rec tautology ?(:vs = variables t) t = ...
It is not possible to reference arguments (here: 't') from default
arguments if they appear later in the function definition. It is clear
that this would be problematic if the other argument also had a default
value and if it referenced the first value again (recursion).
However, I believe it should be always ok to use non-default arguments
regardless of order, because they are always already initialized.
The following does not work as intended
let rec tautology t ?(:vs = variables t) = ...
because I would have to place further arguments after it so that the
default argument can be erased (e.g. by adding '()'). Although the latter
requirement is not really painful it is at least not as convenient as it
could be.
Is it possible to remove this restriction or are there further problems I
did not foresee?
Best regards,
Markus Mottl
-- Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
This archive was generated by hypermail 2b29 : Thu Jan 13 2000 - 17:38:58 MET