to equilibrium.iter :i :before :after :tail :ret if equal? :before :after [make "ret lput :i :ret] if empty? butfirst :tail [output :ret] output equilibrium.iter :i+1 (:before+first :tail) (:after-first butfirst :tail) (butfirst :tail) :ret end to equilibrium.index :list output equilibrium.iter 1 0 (apply "sum butfirst :list) :list [] end show equilibrium_index [-7 1 5 2 -4 3 0] ; [4 7]