Next: , Previous: , Up: Statements   [Index]


7.4 STASH and RETRIEVE

INTERCAL-72 C-INTERCAL CLC-INTERCAL J-INTERCAL
yes all versions all versions all versions

The NEXT stack is not the only stack available in an INTERCAL program; each variable used in the program also has its own stack, which holds values of the same type as the variable. The STASH command pushes a variable’s value onto that variable’s stack; RETRIEVE can be used in the same way to pop the top element of a variable’s stack to replace that variable’s value. The syntax is the same as most other INTERCAL commands, with the word STASH or RETRIEVE followed by the variable or variables to stash or retrieve:

DO STASH .1 + ;2
DO RETRIEVE ,3

Note that it is possible to stash or retrieve multiple variables at once, by listing their names separated by intersections (+); it’s even possible to stash or retrieve a variable twice in the same statement.

It is not entirely clear how RETRIEVE interacts with IGNORE in historical INTERCAL-72 compilers; the three modern INTERCAL compilers all use different rules for the interaction (and the C-INTERCAL maintainers recommend that if anyone decides to write their own compiler, they choose yet another different rule so that looking at the interaction (the so-called ‘ignorret test’) can be used as a method of determining which compiler is running):

The appropriate gerunds for STASH and RETRIEVE are STASHING and RETRIEVING respectively.


Next: , Previous: , Up: Statements   [Index]