On 01/02/2012 04:05 PM, Lukasz Stafiniak wrote:
> On Mon, Jan 2, 2012 at 11:37 PM, Diego Olivier Fernandez Pons
> <[email protected]> wrote:
>> List,
>>
>> I was wondering if there was any reason not to make "let rec" the default /
>> sole option, meaning cases where you clearly don't want a "let rec" instead
>> of "let" (only in functions, not cyclic data).
>>
>> Diego Olivier
>
> The default "no-rec" allows for name recycling -- using the same name
> for an incrementally transformed value, i.e. to bind the intermediate
> results. Name recycling minimizes the cognitive burden: there are less
> names to remember in a scope, and differences in names are justified
> by differences in purpose of the values. Are there reasons to consider
> name recycling a bad style?
What I am wondering is why type definitions are recursive by default. It
is mostly troubling for beginners.
The following is an occasional inconvenience of having only recursive
type definitions:
module A =
struct
type t = ...
let compare = ...
module B =
struct
type t = t (* uh oh *)
let compare = compare
end
end
Martin
--
Caml-list mailing list. Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs