1 val big
: IntInf
.int = 0x80000000
3 fun try (barg
: IntInf
.int): unit
=
5 val small
= SOME (IntInf
.toInt barg
)
6 handle Overflow
=> NONE
7 val bstr
= IntInf
.toString barg
8 val _
= print (concat
["trying ", bstr
, "\n"])
9 fun fail msg
= print ("Fail " ^ msg ^
": " ^ bstr ^
"\n")
10 val isSmall
= ~ big
<= barg
andalso barg
< big
15 | SOME sarg
=> if isSmall
16 then let val sstr
= Int.toString sarg
18 andalso barg
= IntInf
.fromInt sarg
25 fun spin (low
: IntInf
.int, limit
: IntInf
.int): unit
=
26 let fun loop (arg
: IntInf
.int): unit
=
37 val _
= spin (0, 1000)
38 val _
= spin (0x40000000 - 1000, 0x40000000 + 1000)
39 val _
= spin (big
- 1000, big
+ 1000)
41 val _
= print
"All ok\n"