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 arraysBeginners 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 WORDSIn 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.