Any SML coders able to translate this to Python?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Tue Sep 4 08:26:24 EDT 2018


I have this snippet of SML code which I'm trying to translate to Python:
fun isqrt n = if n=0 then 0
 else let val r = isqrt (n/4)
 in
 if n < (2*r+1)^2 then 2*r
 else 2*r+1
 end
I've tried reading up on SML and can't make heads or tails of the 
"let...in...end" construct.
The best I've come up with is this:
def isqrt(n):
 if n == 0:
 return 0
 else:
 r = isqrt(n/4)
 if n < (2*r+1)**2:
 return 2*r
 else:
 return 2*r+1
but I don't understand the let ... in part so I'm not sure if I'm doing 
it right.
-- 
Steven D'Aprano
"Ever since I learned about confirmation bias, I've been seeing
it everywhere." -- Jon Ronson


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /