File: tailfib.sml

package info (click to toggle)
mlton 20100608-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 34,980 kB
  • ctags: 69,089
  • sloc: ansic: 18,421; lisp: 2,879; makefile: 1,570; sh: 1,325; pascal: 256; asm: 97
file content (23 lines) | stat: -rw-r--r-- 429 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

fun fib'(0,a,b) = a
  | fib'(n,a,b) = fib'(n-1,a+b,a)
fun fib n = fib'(n,0,1)

structure Main =
   struct
      fun doit() =
         if 701408733 <> fib 44
            then raise Fail "bug"
         else ()

      val doit =
        fn n =>
        let
          fun loop n =
            if n = 0
              then ()
              else (doit();
                    loop(n-1))
        in loop (n * 1000000)
        end
   end