.t - boolean value "true" is constant with value t. .self - within a method context, the current object (see page 19), otherwise initially unbound. .object - constant, value is the class 'Object.' .class - constant, value is the class 'Class'. .internal-time-units-per-second - integer constant to divide returned times by to get time in seconds. .pi - floating point aproximation of pi (constant defined when math extension is compiled). .*obarray* - the object hash table. Length of array is a compilation option. Objects are hashed using the hash function and are placed on a list in the appropriate array slot. This variable does note exist when the package feature is compiled in. .*package* - the current package. Do not alter. Part of the package feature. .*terminal-io* - stream bound to keyboard and display. Do not alter. .*standard-input* - the standard input stream, initially stdin. If stdin is not redirected on the command line, then *terminal-io* is used so that all interactive i/o uses the same stream. .*standard-output* - the standard output stream, initially stdout. If stdout is not redirected on the command line then *terminal-io* is used so that all interactive i/o uses the same stream. .*error-output* - the error output stream (used by all error messages), initially same as *terminal-io*. .*trace-output* - the trace output stream (used by the trace function), initially same as *terminal-io*. .*debug-io* - the break loop i/o stream, initially same as *terminal-io*. System messages (other than error messages) also print out on this stream. .*breakenable* - flag controlling entering break loop on errors (see page 4) .*tracelist* - list of names of functions to trace, as set by trace function. .*tracenable* - enable trace back printout on errors (see page 4). .*tracelimit* - number of levels of trace back information (see page 4). .*evalhook* - user substitute for the evaluator function (see page 8, and evalhook and applyhook functions). .*applyhook* - user substitute for function application (see page 8, and evalhook and applyhook functions). .*readtable* - the current readtable (see page 12). .*gc-flag* - controls the printing of gc messages. When non-NIL, a message is printed after each garbage collection giving the total number of nodes and the number of nodes free. .*gc-hook* - function to call after garbage collection (see page 8). .*integer-format* - format for printing integers (when not bound to a string, defaults to "%d" or "%ld" depending on implementation) .*ratio-format* - format for printing ratios (when not bound to a string, defaults to "%d/%d" or "%ld/%ld" depending on implementation) .*float-format* - format for printing floats (when not bound to a string, defaults to "%g") .*readtable-case* - symbol read and output case. See page 14 for details .*print-case* - symbol output case when printing. See page 14 for details .*print-level* - When bound to a number, list levels beyond this value are printed as '#'. Used by all printing functions. Good precaution to avoid getting caught in circular lists. .*print-length* - When bound to a number, lists longer than this value are printed as '...'. Used by all printing functions. Good precaution to avoid getting caught in circular lists. .*dos-input* - When not NIL, uses dos line input function for read (see page 3). .*displace-macros* - When not NIL, macros are replaced by their expansions when exectuted (see page 7). .*random-state* - the default random-state used by the random function. .*features* - list of features, initially (:xlisp), used for #+ and #- reader macros. .*startup-functions* - list of functions to be executed when workspace started .*command-line* - the xlisp command line, in the form of a list of strings, one string per argument. .*load-file-arguments* - When not NIL, file arguements are loaded at startup. .*top-level-loop* - Top level loop to utilize, defaults to TOP-LEVEL- LOOP. Note that this function can only be restarted by executing TOP- LEVEL, and it never exits. .*read-suppress* - When not NIL, inhibits certain parts of reading. Used by the #+ and #- macros. .+ .++ .+++ .* .** .*** There are several symbols maintained by the read/eval/print loop. The symbols '+', '++', and '+++' are bound to the most recent three input expressions. The symbols '*', '**' and '***' are bound to the most recent three results. The symbol '-' is bound to the expression currently being evaluated. It becomes the value of '+' at the end of the evaluation. (eval ) EVALUATE AN XLISP EXPRESSION the expression to be evaluated returns the result of evaluating the expression (apply ...) APPLY A FUNCTION TO A LIST OF ARGUMENTS the function to apply (or function symbol). May not be macro or fsubr. initial arguments, which are CONSed to... the argument list returns the result of applying the function to the arguments (funcall ...) CALL A FUNCTION WITH ARGUMENTS the function to call (or function symbol). May not be macro or fsubr. arguments to pass to the function returns the result of calling the function with the arguments (quote ) RETURN AN EXPRESSION UNEVALUATED fsubr the expression to be quoted (quoted) returns unevaluated (function ) GET THE FUNCTIONAL INTERPRETATION fsubr the symbol or lambda expression (quoted) returns the functional interpretation (complement ) MAKE A COMPLEMENTARY FUNCTION This function is intended to eliminate the need for -IF-NOT functions and :TEST-NOT keys by providing a way to make complementary functions. the function or closure (not macro or fsubr) returns a new function closure that returns NOT of the result of the original function. (identity ) RETURN THE EXPRESSION the expression returns the expression (backquote ) FILL IN A TEMPLATE fsubr. Note: an improved backquote facility, which works properly when nested, is available by loading the file backquot.lsp. the template (quoted) returns a copy of the template with comma and comma-at expressions expanded. (comma ) COMMA EXPRESSION (Never executed) As the object of a backquote expansion, the expression is evaluated and becomes an object in the enclosing list. (comma-at ) COMMA-AT EXPRESSION (Never executed) As the object of a backquote expansion, the expression is evaluated (and must evaluate to a list) and is then spliced into the enclosing list. (lambda ...) MAKE A FUNCTION CLOSURE fsubr formal argument list (lambda list) (quoted) expressions of the function body (quoted) returns the function closure (get-lambda-expression ) GET THE LAMBDA EXPRESSION the closure returns the original lambda expression, or NIL if not a closure. Second return value is T if closure has a non-global environment, and the third return value is the name of the closure. (macroexpand
) RECURSIVELY EXPAND MACRO CALLS the form to expand returns the macro expansion (macroexpand-1 ) EXPAND A MACRO CALL the macro call form returns the macro expansion (multiple-value-bind [...]) BIND RETURN VALUES INTO LOCAL CONTEXT defined as macro in common.lsp form to be evaluated list of variables to bind to return values of vform forms evaluated sequentially, as in LET, using local bindings returns values of last form evaluated, or NIL if no forms (multiple-value-call ...) COLLECT VALUES AND APPLY FUNCTION fsubr function to apply forms, which are evaluated, with result values collected returns result of applying fun to all of the returned values of the forms (multiple-value-list ) COLLECT MULTIPLE RETURNED VALUES INTO A LIST defined as macro in common.lsp form to be evaluated returns list of returned values (multiple-value-prog1 [ ...]) RETURN VALUES OF FIRST FORM fsubr one or more forms, which are evaluated sequentially returns the result values of the first form (multiple-value-setq ) BIND RETURN VALUES TO VARIABLES defined as macro in common.lsp form to be evaluated list of variables to bind to return values of form returns (undefined, implementation dependent) (nth-value ) EXTRACT A RETURN VALUE fsubr index into return values form which gets evaluated returns the nth result value of exectuing the form (values []) RETURN MULTIPLE VALUES expression(s) to be evaluated returns each argument as a separate value (values-list ) RETURN MULTIPLE VALUES FROM LIST defined in common.lsp a list returns each list element as a separate value (set ) SET THE GLOBAL VALUE OF A SYMBOL the symbol being set the new value returns the new value (setq [ ]...) SET THE VALUE OF A SYMBOL fsubr the symbol being set (quoted) the new value returns the last new value or NIL if no arguments (psetq [ ]...) PARALLEL VERSION OF SETQ fsubr. All expressions are evaluated before any assignments are made. the symbol being set (quoted) the new value returns NIL (setf [ ]...) SET THE VALUE OF A FIELD fsubr the field specifier (if a macro it is expanded, then the form arguments are evaluated): set value of a symbol (car ) set car of a cons node (cdr ) set cdr of a cons node (nth ) set nth car of a list (aref ) set nth element of an array or string (elt ) set nth element of a sequence (get []) set value of a symbol's property (getf []) set value of a property. must be a valid field specifier. (symbol-value ) set global value of a symbol (symbol-function ) set functional value of a symbol (symbol-plist ) set property list of a symbol (gethash ) add or replace hash table entry. is ignored (send :) (When classes.lsp used), set instance variable of object. (- ) set the element of structure struct, type sym. ( ) the function stored in property *setf* in symbol is applied to ( ). As an alternative, the function stored in property *setf-lambda* is applied, then the result is evaled in the current context. the new value returns the last new value, or NIL if no arguments (psetf [ ]...) PARALLEL VERSION OF SETF fsubr. All expressions are evaluated and macro place forms expanded before any assignments are made. the field specifier (see SETF, above) the new value returns NIL (defsetf ) DEFINE A SETF FIELD SPECIFIER (defsetf () ...) Defined as macro in common.lsp. Convenient, Common Lisp compatible alternative to setting *setf* or *setf-lambda* property directly. field specifier symbol (quoted) function to use (quoted symbol) which takes the same arguments as the field specifier plus an additional argument for the value. The value must be returned. formal argument list of unevaluated arguments (lambda list) (quoted) symbol bound to value to store (quoted). The last expression must an expression to evaluate in the setf context.In this respect, defsetf works like a macro definition. returns the field specifier symbol (push ) CONS TO A FIELD Defined as macro in common.lsp. Only evaluates place form arguments one time. It is recommended that *displace-macros* be non-NIL for best performance. field specifier being modified (see setf) value to cons to field returns the new value which is (CONS ) (pushnew &key :test :test-not :key) CONS NEW TO A FIELD Defined as macro in common.lsp. Only evaluates place form arguments one time. It is recommended that *displace-macros* be non-NIL for best performance. field specifier being modified (see setf) value to cons to field, if not already MEMBER of field :test the test function (defaults to eql) :test-not the test function (sense inverted) :key function to apply to test function list argument (defaults to identity) returns the new value which is (CONS ) or (pop ) REMOVE FIRST ELEMENT OF A FIELD Defined as macro in common.lsp. Only evaluates place form arguments one time. It is recommended that *displace-macros* be non-NIL for best performance. the field being modified (see setf) returns (CAR ), field changed to (CDR ) (incf []) INCREMENT A FIELD (decf []) DECREMENT A FIELD Defined as macro in common.lsp. Only evaluates place form arguments one time. It is recommended that *displace-macros* be non-NIL for best performance. field specifier being modified (see setf) Numeric value (default 1) returns the new value which is (+ ) or (- ) (defun ...) DEFINE A FUNCTION (defmacro ...) DEFINE A MACRO fsubr symbol being defined (quoted) formal argument list (lambda list) (quoted) expressions constituting the body of the function (quoted) returns the function symbol (gensym []) GENERATE A SYMBOL string or number returns the new symbol, uninterned (intern []) MAKE AN INTERNED SYMBOL the symbol's print name string the package (defaults to current package) returns the new symbol. A second value is returned which is NIL if the symbol did not pre-exist, :internal if it is an internal symbol, :external if it is an external symbol, or :inherited if it inherited via USE-PACKAGE. (make-symbol ) MAKE AN UNINTERNED SYMBOL the symbol's print name string returns the new symbol (symbol-name ) GET THE PRINT NAME OF A SYMBOL the symbol returns the symbol's print name (symbol-value ) GET THE VALUE OF A SYMBOL the symbol returns the symbol's value (symbol-function ) GET THE FUNCTIONAL VALUE OF A SYMBOL the symbol returns the symbol's functional value (symbol-plist ) GET THE PROPERTY LIST OF A SYMBOL the symbol returns the symbol's property list (hash ) COMPUTE THE HASH INDEX the object to hash the table size (positive integer) returns the hash index (integer 0 to n-1) (makunbound ) MAKE A SYMBOL VALUE BE UNBOUND You cannot unbind constants. the symbol returns the symbol (fmakunbound ) MAKE A SYMBOL FUNCTION BE UNBOUND the symbol returns the symbol (unintern []) UNINTERN A SYMBOL Defined in common.lsp if package feature not compiled. the symbol the package to look in for the symbol returns t if successful, NIL if symbol not interned (defconstant []) DEFINE A CONSTANT fsubr. the symbol the value optional comment string (ignored) returns the value (defparameter []) DEFINE A PARAMETER fsubr. the symbol the value optional comment string (ignored) returns the value (defvar [ []]) DEFINE A VARIABLE fsubr. Variable only initialized if not previously defined. the symbol the initial value, or NIL if absent. optional comment string (ignored) returns the current value (mark-as-special []) SET SPECIAL ATTRIBUTE Also see definition of PROCLAIM and DECLARE. symbol to mark non-nil to make into a constant returns nil, with symbol marked as special and possibly as a constant. (declare [ ...]) DECLARE ARGUMENT ATTRIBUTES Macro in common.lsp provided to assist in porting Common Lisp applications to XLISP-PLUS. list of local variable and attributes returns nil, produces an error message if attribute SPECIAL is used. (proclaim ) PROCLAIM GLOBAL SYMBOL ATTRIBUTES Function in common.lsp provided to assist in porting Common Lisp applications to XLISP-PLUS. a list of symbols. If the CAR of the list is SPECIAL, then the remaining symbols are marked as special variables. (apropos []) SEARCH SYMBOLS FOR NAME MATCH (apropos-list []) Functions in common.lsp. find symbols which contain this string as substring of print name package to search, if absent, or NIL, search all packages returns apropos-list returns list of symbols, apropos prints them, along with some information, and returns nothing. (defpackage [