{def sweeney {def sweeney.set! {lambda {:s :r :k :i} {A.set! :i {+ {A.get :i :s} {/ :r :k}} :s} }} {def sweeney.loop {lambda {:n :s :r :k} {if {<= :r 1.e-10} then gamma = {- {A.get 1 :s} {A.get 0 :s} {log :n}} with k=:k else {sweeney.loop :n {sweeney.set! :s {* :r {/ :n :k}} :k {% :k 2}} {* :r {/ :n :k}} {+ :k 1} } }}} {lambda {:n} {sweeney.loop :n {A.new 0 :n} :n 2} }} -> sweeney {sweeney 21} -> gamma = 0.577215664563631 with k=76 (0.57721566456363 target)