← Lesson
Observe Before You Finish
Joeven
Run
Reset
Python loads on first run
def finish_ok(events): if not events: return False return events[-1]["kind"] == "obs" def step(events, name, obs=None): if name == "finish" and not finish_ok(events): return events, "illegal finish" if name == "finish": return events + [{"kind": "act", "name": "finish"}], "ok" rec = [{"kind": "act", "name": name}, {"kind": "obs", "value": obs}] return events + rec, "ok" ev = [] ev, msg = step(ev, "finish") print("first", msg) ev, msg = step(ev, "search", {"hits": 1}) print("search", msg, "last", ev[-1]["kind"]) ev, msg = step(ev, "finish") print("after obs", msg)
Run to execute this in your browser. Nothing is sent to a server.