HELP DESTPROCS Andrew Law, June 1987
This file describes various destructor procedures. These procedures
usually take some datatype and either return (and/or leave on the stack)
some specification of its structure (e.g., its head and tail or length
and contents). The procedures do not actually "destroy" the original
structure, unless this is specified in the call, e.g.;
vars list = [the_head the_tail], head, tail;
dest(list) -> tail -> head;
head =>
** the_head
tail =>
** [the_tail]
list =>
** [the_head the_tail]
dest(list) -> list -> head;
list =>
** [the_tail]
class_dest(KEY) -> PROCEDURE
Gives the destructor procedure for the class KEY
-- REF *KEYS, HELP *CLASSES, *KEYS
dest(LIST) -> LIST:T -> ITEM:H
This procedure returns both the *HD and the *TL of the given LIST
(faster than *HD or *TL on their owm)
destlist(LIST) -> INTEGER
Puts each element of LIST onto the stack, and returns the number of
elements
destpair(PAIR) -> ITEM:B -> ITEM:F
This procedure behaves like *DEST except that it does not expand dynamic
lists.
fast_destpair(PAIR) -> ITEM:F -> ITEM:B
Non-checking -destpair-, returns the -front- (F) and the -back- (B)
of PAIR
sys_grbg_destpair(PAIR) -> ITEM:B -> ITEM:F
This, like DESTPAIR and FAST_DESTPAIR takes a pair and puts the
front and the back of the pair on the stack. It also returns the
pair itself to the "free list", unlike sys_grbg_list, which returns
a whole chain of pairs to the free list.
dl(LIST)
Puts all the elements of LIST on the stack
-- HELP *DEST, *LISTS, REF *LISTS, * FASTPROCS
dest_characters(ITEM)
This procedure returns the character codes which would be used for
printing the ITEM in the default format
-- HELP *DEST_CHARACTERS, *ASCII
destratio(RATIONAL) -> INTEGRAL:D -> INTEGRAL:N
Returns the numerator (N) and denominator (D) of RATIONAL
-- REF * NUMBERS
destcomplex(NUMBER) -> NUMBER:I -> NUMBER:R
Returns the real (R) and imaginary (I) parts of NUMBER
-- REF *NUMBERS, HELP *NUMBERS
deststring(STRING) -> INTEGER
Puts each character of STRING onto the stack, and returns the number of
characters
-- REF * STRINGS
destintvec(VECTOR)
Destructs the integer VECTOR, i.e. puts all its elements on
the stack, together with its length (in other words, does the
opposite of -consintvec-).
-- HELP * VECTORS, REF * VECTORS, *INTVEC
destvector(VECTOR) -> INTEGER
Puts each element of VECTOR onto the stack, and returns the number of
elements
-- REF * VECTORS
destword(WORD) -> INTEGER
Puts each character of WORD onto the stack, and returns the number of
characters
-- REF * WORDS
destprologterm(prologterm)
This procedure explodes an object of type <prologterm> (built by
-consprologterm-).
-- ASSOCIATED DOCUMENTATION -------------------------------------------
*FILL - filling in vectors from items on stack
*STACK - procedures dealing with the stack
*CLASSES - info. on POP-11 dataclasses
*EXPLODE - puts all the elements of a structure on the stack.
*DATA - info. on POP-11 datatypes and
*KEYS - info. on POP-11 keys
--- C.all/help/destprocs -----------------------------------------------
--- Copyright University of Sussex 1987. All rights reserved. ----------Author: Andrew Law, June 1987