def check_all(self): for free, slist in examples: freemap = {k: parse.parse_expr(v) for k, v in free.items()} parsed = [parse.parse_expr(e) for e in slist] state = parsed[0] #print(f"Started with: {state}") state = state.reduce_once(freemap) for next in parsed[1:]: #print(f"Expected: {next}") #print(f"Got: {state}") assert next.equiv(state) state = state.reduce_once(freemap) assert state is None
def answer(self, example): new = [] state = parse.parse_expr(example) while state is not None: new.append(str(state)) state = state.reduce_once({}) return new
def answer(self, example): symbols = {"Y": lterm.MagicY("Y")} new = [] expr = parse.parse_expr(example) while True: new.append([str(expr), expr.prefixcode(debruijn=True)]) expr = expr.reduce_once(symbols) if expr is None: break return new
def check_all(self): for expr, res in examples: expr = parse.parse_expr(expr) assert res == expr.variables(True)
def answer(self, s): return parse.parse_expr(s).prefixcode(debruijn=False)
def answer(self, example): return parse.parse_expr(example).size()