[MLton-commit] r5761
    Vesa Karvonen 
    vesak at mlton.org
       
    Wed Jul 11 08:56:58 PDT 2007
    
    
  
Avoid overflow check.
----------------------------------------------------------------------
U   mltonlib/trunk/com/ssh/extended-basis/unstable/detail/basic.sml
----------------------------------------------------------------------
Modified: mltonlib/trunk/com/ssh/extended-basis/unstable/detail/basic.sml
===================================================================
--- mltonlib/trunk/com/ssh/extended-basis/unstable/detail/basic.sml	2007-07-11 15:05:16 UTC (rev 5760)
+++ mltonlib/trunk/com/ssh/extended-basis/unstable/detail/basic.sml	2007-07-11 15:56:57 UTC (rev 5761)
@@ -11,6 +11,11 @@
    fun failing m _ = fail m
    fun raising e _ = raise e
    fun recur x = Fn.flip Fn.fix x
-   fun repeat f n x = if n = 0 then x else repeat f (n-1) (f x)
+   fun repeat f n x =
+       if n < 0
+       then raise Domain
+       else recur (Word.fromInt n, x) (fn lp =>
+               fn (0w0, x) => x
+                | (n,   x) => lp (n-0w1, f x))
    fun undefined _ = fail "undefined"
 end
    
    
More information about the MLton-commit
mailing list