USING: arrays fry kernel math math.functions math.ranges sequences sequences.extras ; IN: lamps : ( -- seq ) 100 t ; : ( -- seq ) 100 [1,b] >array ; : toggle ( ? -- ? ) not ; : toggle? ( person-index lamp-index -- ? )ยท 1 + swap divisor? ; : toggle-switches ( n lamps -- ) [ toggle? [ toggle ] when ] with map-index! drop ; : do-switching ( -- lamps ) [ '[ _ toggle-switches ] each ] keep ;