1. Absolutely love the multiple dispatch stuff (slide 10).
2. A bit uneasy about typeof, which will never properly express JavaScript’s 
“class” hierarchy. That is bound to always confuse people (already: “wait – I 
thought a function was an object”, worse with value objects). But maybe it’s 
the best we can do. Being able to fix typeof null is awesome, though.
3. Also love that we’ll get 64 bit integers etc. (slide 11) and user-definable 
value objects.

W.r.t. to #1: Couldn’t we extend that to universal multiple dispatch?

const removeAll = new MultiMethod();  // not a realistic example
removeAll.addMethod(Array, Set, (arr, set) => { ... });
removeAll.addMethod(Object, Map, (obj, map) => { ... });

For the plus operator:

import { operatorPlus } from '@operators';
operatorPlus.addMethod(Point, Number, (a, b) => Point(a.x + b, a.y + b);
operatorPlus.addMethod(Number, Point, (a, b) => Point(a + b.x, a + b.y);
operatorPlus.addMethod(Point, Point, (a, b) => Point(a.x + b.x, a.y + b.y);

In my experience, multiple dispatch and single dispatch are highly 
complementary. Reenskaug and Coplien seem to have come to a similar conclusion 
(well, at least I would combine single dispatch and multiple dispatch to 
implement the DCI ideas):
http://www.artima.com/articles/dci_vision.html


On Jul 29, 2013, at 0:41 , Brendan Eich <bren...@mozilla.com> wrote:

> Axel Rauschmayer wrote:
>> Suggestion: put this evolving spec into a Gist or something similar.
> 
> Definitely -- trying not to work all weekend, s'all. Also practicing 
> release-early/often on es-discuss.
> 
> Thanks for reading! Any other comments?

-- 
Dr. Axel Rauschmayer
a...@rauschma.de

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com

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

Reply via email to