while* ( ..a pred: ( ..a -- ..b ? ) body: ( ..b ? -- ..a ) -- ..b )


Vocabulary
kernel

Inputs
preda quotation with stack effect ( ..a -- ..b ? )
bodya quotation with stack effect ( ..b ? -- ..a )


Outputs
None

Word description
Calls body until pred returns f. The return value of pred is kept on the stack.

Definition

: while*
( ..a pred: ( ..a -- ..b ? ) body: ( ..b ? -- ..a ) -- ..b )
[ [ dup ] compose ] dip while drop ; inline