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
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to