Search Top Index
HELP IDENTFN SH and AS Aug 1983 identfn() This procedure takes no inputs and produces no results, and does nothing. It may seem to be a silly procedure! But it can be useful. Since it does nothing, it leaves the stack unchanged. (See HELP * STACK). So it can be thought of as a procedure whose results are always its arguments. For example: identfn(3,4,5) => ** 3 4 5 identfn("cat") => ** cat It can be useful in two main sorts of ways: (a) as input to a procedure which takes a procedure as input (b) as default value of a global procedure variable which users may change. -- Using IDENTFN as input to a procedure ------------------------------------ The procedure DL takes a list and puts all its elements on the stack. It can be defined as: define dl(list); applist(list,identfn) enddefine; The procedure EXPLODE, which takes an arbitrary data structure (other than a list), and puts all its elements on the stack could be defined as define explode(structure); appdata(structure,identfn) enddefine; -- Using IDENTFN as a default procedure ------------------------------------- A number of user definable procedures default to IDENTFN, e.g. * POPSETPOP which is called whenever the procedure * SETPOP is run, after it has cleared all stacks, etc, and before it starts compiling from the terminal. Another is * POPEXIT, which is called by * SYSEXIT before it leaves POP-11.