Initializing default arguments

From: Markus Mottl (mottl@miss.wu-wien.ac.at)
Date: Thu Jan 13 2000 - 16:05:27 MET

  • Next message: Xavier Leroy: "Re: Calling Java then C from a Ocaml toplevel"

    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