On Tue, May 19, 2015 at 10:26 PM, Jonathan S. Shapiro <s...@eros-os.org> wrote:
> On Mon, May 18, 2015 at 9:52 AM, Keean Schupke <ke...@fry-it.com> wrote:
>>
>>
>> On 18 May 2015 17:07, "Jonathan S. Shapiro" <s...@eros-os.org> wrote:
>> >
>> > On Sun, May 3, 2015 at 7:36 AM, Keean Schupke <ke...@fry-it.com> wrote:
>> >>
>> >> To clarify I am suggesting a single, multi equals let as the way it
>> >> should be done, not necessarily the way other people do it.
>> >
>> > Clear, but not what we are going to do.
>>
>> Then I would vote for no lets at the top level at all.
>
>
> Right. I think I said that elsewhere already. Top-level forms don't enclose
> a scope, so they shouldn't overload the LET keyword.

Egads, I think I finally understand what you mean by top-level let now
e.g. In the following code there is a top-level let which is never
closed by a subsequent 'in', static let moduleInstance = new
'PriorityQueueModule ()

and thus the let remain open throughout the top-level scope

https://github.com/jack-pappas/experimental-functors/blob/master/PriorityQueues/Functors.fs

I'm not very fond of this,

to try and restate my opinion above (in the idea that i'm not
fundamentally opposed to multi-let statements:

let x = 0
let y = 1
  in (x, y) // fine by me...

let x = 0
let y = x + 1 // evil!
  in (x,y)

let x = 0
  let y = x + 1 // I don't understand why this would be chosen over
multi-equals let, but I guess?
    in (x,y)

The F# stuff, seems to me to be breaking a very fundamental idea that
things which depend on the sequentially constructed computations above
them should be indented
to the right as well

so when I see something to the effect of:
let x = 0

static member foo()
     x + 1

I think the indentation scheme is all messed up, and it'd be better to consider
let DECL of DECL end
let DECL in EXPR end

before I ever start considering an 'open let'
_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to