|
@@ -171,20 +171,11 @@ def dict_len(a, **remainder):
|
|
|
raise PrimitiveFinished(result)
|
|
|
|
|
|
def set_add(a, b, **remainder):
|
|
|
- outgoing, b_value = yield [("RO", [a]), ("RV", [b])]
|
|
|
- if outgoing:
|
|
|
- elements = yield [("RE", [i]) for i in outgoing]
|
|
|
- values = yield [("RV", [i[1]]) for i in elements]
|
|
|
- if b_value is not None and b_value in values:
|
|
|
- raise PrimitiveFinished(a)
|
|
|
- elif b_value is None and b in elements:
|
|
|
- raise PrimitiveFinished(a)
|
|
|
- else:
|
|
|
- yield [("CE", [a, b])]
|
|
|
- raise PrimitiveFinished(a)
|
|
|
- else:
|
|
|
- yield [("CE", [a, b])]
|
|
|
- raise PrimitiveFinished(a)
|
|
|
+ v, = yield [("RV", [b])]
|
|
|
+ is_in, = yield [("RD", [a, b])]
|
|
|
+ if not is_in:
|
|
|
+ _, = yield [("CD", [a, v, a])]
|
|
|
+ raise PrimitiveFinished(a)
|
|
|
|
|
|
def set_pop(a, **remainder):
|
|
|
outgoing, = yield [("RO", [a])]
|