RosettaCodeData/Task/Eulers-constant-0.5772.../Lambdatalk/eulers-constant-0.5772...-2.lambdatalk
2023-07-01 13:44:08 -04:00

21 lines
567 B
Text

{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)