mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-23 06:10:02 +08:00
* Expand static Effect support across common APIs * Preserve compiler parity across expanded Effect patterns * Fix compiler regressions exposed by Effect coverage * Bound shared type conversion traversal * Clarify conversion contracts and tidy fixtures * Run every Effect fixture in CI shards * Preserve inferred array assignments in concurrent Effect programs * Record inferred array fixture compiler ordering
20 lines
527 B
JavaScript
20 lines
527 B
JavaScript
function dual(predicate, body) {
|
|
return function () {
|
|
if (predicate(arguments)) return body.apply(this, arguments);
|
|
return (self) => body(self, ...arguments);
|
|
};
|
|
}
|
|
const add = dual((args) => args.length === 2, (a, b) => a + b);
|
|
const addTwo = add(2);
|
|
console.log(add(20, 22), addTwo(40));
|
|
function nested(value) {
|
|
return () => () => arguments[0] + value;
|
|
}
|
|
console.log(nested(21)()());
|
|
function owners() {
|
|
return function (other) {
|
|
return () => arguments[0];
|
|
};
|
|
}
|
|
console.log(owners("outer")("inner")());
|