next node: Funct,
prev node: ComposePar,
up to node: Subsystem General


Control

Signature of Control

List of Import References :
See BOOL
See DENOTATION
See Nat

SIGNATURE Control[data]

$Date: 1998/06/16 16:00:11 $ ($Revision: 1.1.1.1 $)

-- control structure combinators

-- Parameter
SORT data

IMPORT Nat ONLY nat

FUN cond        : (data -> bool) ** (data -> data) ** (data -> data) 
                                                      -> (data -> data)
                -- cond (condition, then, else)
                -- case

FUN while       : (data -> bool) ** (data -> data) -> (data -> data)
                -- while (cond, do)
                -- iteration, first test before first call

FUN until       : (data -> bool) ** (data -> data) -> (data -> data)
                -- until (do, cond)
                -- iteration, first test after first call

FUN for         : nat ** nat ** (nat ** data -> data) -> (data -> data)
                -- for (i, j, do)
                -- iterate j-i+1 times: \\x.do(j, do(j-1, ..., do(i, x) ... ))

FUN iter        : nat ** (data -> data) -> (data -> data)
                -- iter (n, do)
                -- iterate n times

FUN ^           : (data -> data) ** nat -> (data -> data)
                -- notational variant
                -- f^n == iter(n, f)


next node: Funct,
prev node: ComposePar,
up to node: Subsystem General