Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / basic / iterate.sig
1 (* Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 *
4 * MLton is released under a BSD-style license.
5 * See the file MLton-LICENSE for details.
6 *)
7
8 signature ITERATE =
9 sig
10 val iterate: 'a * ('a -> bool) * ('a -> 'a) -> 'a
11 (* iterate(s, p, f) = f(...f(f(s))) until satisfies p *)
12
13 val whileDo: (unit -> bool) * (unit -> unit) -> unit
14
15 val repeatUntil: (unit -> unit) * (unit -> bool) -> unit
16 end