For beginners most of the types listed below are irrelevant. It is possible to achieve a great deal with only the following:
words, strings, integers, decimals booleans, lists, vectors,
procedures, and arrays
Beginners can therefore safely skim most of the rest of this chapter up
to the section on Objectclass.
The procedure datakey can be applied to any object to return its key. The procedure dataword can be applied to any object to return its dataword. E.g.
dataword(999) =>
** integer
dataword(2**40) =>
** biginteger
datakey(66.66) =>
** <key ddecimal>
dataword("word") =>
** word
dataword(dataword) =>
** procedure
dataword(word_key) =>
** key
datakey(datakey) =>
** <key procedure>
datakey({1 2 3}) =>
** <key vector>
What follows is a list of the data-types available in Pop-11 in Poplog
Version 15.01. For each type we give the name of the key (a special
record that provides information about the data-type), the dataword, and
the main REF file giving information about that type. (A list similar to
this can be found in REF DATA, and may be more up to date, as
sometimes new types are added to the system.)
KEY NAME DATAWORD MAIN REF FILE
XptDescriptor_key "XptDescriptor" REF XptDescriptor
biginteger_key "biginteger" REF NUMBERS
boolean_key "boolean" REF RECORDS/Booleans
complex_key "complex" REF NUMBERS
ddecimal_key "ddecimal" REF NUMBERS
decimal_key "decimal" REF NUMBERS
device_key "device" REF SYSIO
dstring_key "dstring" REF STRINGS
exptrvec_key "exptrvec" REF EXTERNAL_DATA
external_ptr_key "external_ptr" REF EXTERNAL_DATA
ident_key "ident" REF IDENT
integer_key "integer" REF NUMBERS
intvec_key "intvec" REF INTVEC
key_key "key" REF KEYS
nil_key "nil" REF LISTS
pair_key "pair" REF LISTS
procedure_key "procedure"
(procedures and closures) REF PROCEDURE
(properties) REF PROPS
(arrays) REF ARRAYS
process_key "process" REF PROCESS
prologterm_key "prologterm" REF PROLOG
prologvar_key "prologvar" REF PROLOG
ratio_key "ratio" REF NUMBERS
ref_key "ref" REF RECORDS
section_key "section" REF SECTIONS
shortvec_key "shortvec" REF INTVEC
stackmark_key "stackmark" REF STACK
string_key "string" REF STRINGS
termin_key "termin" REF CHARIO
undef_key "undef" REF IDENT
vector_key "vector" REF VECTORS
word_key "word" REF WORDS
In several cases there are also HELP files giving more information, e.g.
HELP UNDEF, HELP SECTIONS, HELP PROCESS
Future versions may include additional standard data-types, e.g. a matchvar data-type for pattern matchers to use. Also users can extend the list of types by defining some of their own.