[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Markus Mottl <mottl@m...> |
| Subject: | Initializing default arguments |
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