function.sent beta equivalence?
Jason Orendorff
jason.orendorff at gmail.com
Wed Jun 24 20:56:02 UTC 2015
Quick question about function.sent:
As of ES6, there's this parallel between functions and generators:
// how to wrap a function
// f2 is equivalent to f, if f doesn't use `this`.
function f(...) { ... }
function f2(...args) { return f(...args); }
// how to wrap a generator
// g2 is equivalent to g, if g doesn't use `this`.
function* g(...) { ... }
function* g2(...args) { return yield* g(...args); }
That is, λx.f(x) = f, a sort of beta-equivalence rule, and for
generators, you just need to add `yield*` to get an analogous rule. My
understanding is that this is one reason we have `yield*`. (Writing a
wrapping function/generator that also covers `this` is left as an easy
exercise.)
Given function.sent, is there still a way to "wrap" a generator?
-j
More information about the es-discuss
mailing list