⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iterate.sml

📁 这是我们参加06年全国开源软件的竞赛作品
💻 SML
字号:
(* iterate.sml * * COPYRIGHT (c) 1993 by AT&T Bell Laboratories.  See COPYRIGHT file for details. * *)structure Iterate : ITERATE =  struct    fun badArg (f,msg) = LibBase.failure {module="Iterate",func=f,msg=msg}    fun iterate f cnt init = let           fun iter (0,v) = v            | iter (n,v) = iter(n-1,f v)          in            if cnt < 0               then badArg ("iterate","count < 0")              else iter (cnt,init)          end            fun repeat f cnt init = let           fun iter (n,v) = if n = cnt then v else iter(n+1,f(n,v))          in            if cnt < 0               then badArg ("repeat","count < 0")              else iter (0,init)          end            fun for f (start,stop,inc) = let          fun up (n,v) = if n > stop then v else up(n+inc,f(n,v))          fun down (n,v) = if n < stop then v else down(n+inc,f(n,v))          in            if start < stop              then if inc <= 0 then badArg ("for","inc <= 0 with start < stop")              else fn v => up(start,v)            else if stop < start              then if inc >= 0 then badArg ("for","inc >= 0 with start > stop")              else fn v => down(start,v)            else fn v => f(start,v)          end  end (* Iterate *)

⌨️ 快捷键说明

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