Suggestion: Infix operators/functions
Thomas Grainger
tagrain at gmail.com
Fri Feb 2 11:55:17 UTC 2018
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20180202/2d389e0a/attachment.html>
More information about the es-discuss
mailing list