ambjs
Version:
amb(iguous) operator in javascript
25 lines • 795 B
JavaScript
var expr$691 = require('./expression'), trampoline$692 = require('./trampoline');
// ## async
// This is a utility handler used to suspend the
// amb monad execution and restart it later, invoking
// the `resume` function.
// ### Example
// ambBlock {
// var t = async (function (resume) {
// setTimeout(function () {
// resume ('resumed');
// }, 1000);
// });
// /* here t value is 'resumed' */
// }.run();
var async$693 = function (call$694) {
return expr$691(function (succ$695, fail$696) {
return trampoline$692(function () {
call$694(function (value$697) {
succ$695(value$697, fail$696).run();
});
return 'suspended';
});
});
};
module.exports = async$693;