cat'set-reset.ijs' NB. a set-reset state object state =: 0 NB. Initially the state is zero not_state =: 1 require_circuits_ 'circuits.ijs' bitNor =: bitNot_circuits_ & bitOr_circuits_ set_reset =: monad define 'r s' =. y. 'state not_state' =: (bitNor r , not_state) , bitNor state , s 'state not_state' =: (bitNor r , not_state) , bitNor state , s ) make_sr_ 'set-reset.ijs' set_reset_sr_ 0 1 1 0 state_sr_ 1 set_reset_sr_ 1 0 0 1 state_sr_ 0