Skip to content

Commit 6589455

Browse files
committed
Reset redex marking after a reduction.
1 parent bec8220 commit 6589455

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

lambda.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ if (typeof LambdaJS == 'undefined') var LambdaJS = {};
366366
var self = new Strategy.Base();
367367
self.name = 'manual';
368368
self.markAbs = function(abs, allowEta) {
369+
abs.redex = false;
369370
abs.body = self._mark(abs.body, allowEta);
370371
if (allowEta && abs.isEtaRedex()) {
371372
self.marked = true;
@@ -375,6 +376,7 @@ if (typeof LambdaJS == 'undefined') var LambdaJS = {};
375376
return abs;
376377
};
377378
self.markApp = function(app, allowEta) {
379+
app.redex = false;
378380
if (app.fun.type == 'Abs') {
379381
self.marked = true;
380382
app.redex = true;
@@ -383,6 +385,12 @@ if (typeof LambdaJS == 'undefined') var LambdaJS = {};
383385
app.arg = self._mark(app.arg, allowEta);
384386
return app;
385387
};
388+
var reduceMarked = self.reduceMarked;
389+
self.reduceMarked = function(exp) {
390+
var r = reduceMarked.call(self, exp);
391+
self.mark(exp);
392+
return r;
393+
};
386394
return self;
387395
}
388396
};

0 commit comments

Comments
 (0)