(* -*- mode: sml -*- * $Id: fibo.smlnj,v 1.5 2001/07/09 00:25:28 doug Exp $ * http://www.bagley.org/~doug/shootout/ *) structure Test : sig val main : (string * string list) -> OS.Process.status end = struct fun fib 0 = 1 | fib 1 = 1 | fib n = fib (n-2) + fib (n-1); fun atoi s = case Int.fromString s of SOME num => num | NONE => 0; fun main(name, args) = let val arg = hd(args @ ["1"]); val num = atoi arg; val fib = fib num; val result = Int.toString fib; in print result; print "\n"; OS.Process.success end end val _ = SMLofNJ.exportFn("fibo", Test.main);