iterate-sig.sml

来自「这是我们参加06年全国开源软件的竞赛作品」· SML 代码 · 共 32 行

SML
32
字号
(* iterate-sig.sml * * COPYRIGHT (c) 1993 by AT&T Bell Laboratories.  See COPYRIGHT file for details. * *)signature ITERATE =  sig    val iterate : ('a -> 'a) -> int -> 'a -> 'a     (* iterate f cnt init = f(f(...f(f(init))...)) (cnt times)      * iterate f 0 init = init      * raises BadArg if cnt < 0      *)    val repeat : (int * 'a -> 'a) -> int -> 'a -> 'a     (* repeat f cnt init       *     = #2(iterate (fn (i,v) => (i+1,f(i,v))) cnt (0,init))      *)    val for : (int * 'a -> 'a) -> (int * int * int) -> 'a -> 'a     (* for f (start,stop,inc) init       *      "for loop"      *      implements f(...f(start+2*inc,f(start+inc,f(start,init)))...)      *      until the first argument of f > stop if inc > 0      *         or the first argument of f < stop if inc < 0      * raises BadArg if inc <= 0 and start < stop or if inc >=0 and      * start > stop.      *)  end (* ITERATE *)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?