Patternify fast and fix tests

This commit is contained in:
alex
2022-02-06 23:15:55 +00:00
parent 47f051b73a
commit e98e8ea13f
2 changed files with 45 additions and 31 deletions
+12 -6
View File
@@ -423,17 +423,23 @@ class Pattern {
return this.outerBind(id)
}
// def _patternify(method):
// def patterned(self, *args):
// pat_arg = sequence(*args)
// return pat_arg.fmap(lambda arg: method(self,arg)).outer_join()
// return patterned
_patternify(func) {
const pat = this
const patterned = function (...args) {
const pat_arg = sequence(...args)
return pat_arg.fmap(arg => func.call(pat,arg)).outerJoin()
}
return patterned
}
_fast(factor) {
var fastQuery = this.withQueryTime(t => t.mul(factor))
return fastQuery.withEventTime(t => t.div(factor))
}
// fast = _patternify(_fast)
fast(factor) {
return this._patternify(Pattern.prototype._fast)(factor)
}
_slow(factor) {
return this._fast(1/factor)