Yes. The RHS of a let binding is a dynamic expression, and involves no static 
checking. The RHS of an import is a static module expression with validation -- 
it checks that the thing you're importing exists, and also prevents you from 
importing the same name multiple times.


For example:

    module M { export var foo = 42 }
    let { bar } = M; // dynamic error, not statically caught

vs

    module M { export var foo = 42 }
    import M.bar; // static error

And also:

    module M { export var foo = 42 }
    module N { export var foo = "foo" }
    let { foo } = M;
    let { foo } = N; // either shadows or reassigns, no error

vs

    module M { export var foo = 42 }
    module N { export var foo = "foo" }
    import M.foo;
    import N.foo; // static error

Dave

On Apr 7, 2011, at 6:51 PM, Erik Arvidsson wrote:

> On Thu, Apr 7, 2011 at 12:20, Brendan Eich <bren...@mozilla.com> wrote:
>> Fortunately there's a short-hand:
>> 
>>  let {draw, move} = GraphixAPIObject;
> 
> Given this, is there any reason for anything but "import ModuleName.*" then?
> 
> -- 
> erik
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to