In ECMAScript's current state, infix operators would likely complicate future 
discussions of operator overloading. Before we tackle these problems, I think 
it's more convenient to have type annotations first.

On Friday, February 2, 2018 12:55:17 PM CET Thomas Grainger wrote:
> I'm porting this from the TypeScript issue tracker, original from:
> https://github.com/Microsoft/TypeScript/issues/2319#issue-60851953
> 
> Since it's very unlikely that the extension methods will ever be
> implemented [in a call-site-rewrite
> manner](https://github.com/Microsoft/TypeScript/issues/9#
> issuecomment-74302592),
> please consider adding infix operators to enable writing in functional
> style similarly to what can be done in Haskell:
> 
> Monoids
> 
> ```js
> 
>     function '+' (left, right) {
>        return left.concat(right);
>     }
> 
>     [1, 2, 3] '+' [4, 5]; // [1, 2, 3, 4, 5]
> 
> ```
> 
> Monads
> 
> ```js
>     function '>>=' (promise, bind) {
>        return promise.then(bind);
>     }
>     $.get('/get') '>>=' x => $.post('/save', x + 1)
> ```
> 
> Functors
> 
> ```js
>     function '.' (inner, outer) {
>        return function(value: a) : c {
>           return outer(inner(value))
>        }
>     }
> 
>     function f(x) { }
>     function g(y) { }
>     (f '.' g)(x); // z
> ```
> 
> 
> 
> Thomas Grainger

Attachment: signature.asc
Description: This is a digitally signed message part.

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

Reply via email to