استاندارد Lisp عمومی X3J13
Common Lisp Standard X3J13
معرفی کتاب «استاندارد Lisp عمومی X3J13» (با عنوان لاتین Common Lisp Standard X3J13) نوشتهٔ ANSI، منتشرشده توسط نشر ANSI در سال 1994. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
Contents 1 Introduction 1.1 Scope, Purpose, and History 1.1.1 Scope and Purpose 1.1.2 History 1.2 Organization of the Document 1.3 Referenced Publications 1.4 Definitions 1.4.1 Notational Conventions 1.4.1.1 Font Key 1.4.1.2 Modified BNF Syntax 1.4.1.3 Special Symbols 1.4.1.4 Objects with Multiple Notations 1.4.1.5 Designators 1.4.1.6 Nonsense Words 1.4.2 Error Terminology 1.4.3 Sections Not Formally Part Of This Standard 1.4.4 Interpreting Dictionary Entries 1.4.4.1 The ``Affected By'' Section of a Dictionary Entry 1.4.4.2 The ``Arguments'' Section of a Dictionary Entry 1.4.4.3 The ``Arguments and Values'' Section of a Dictionary Entry 1.4.4.4 The ``Binding Types Affected'' Section of a Dictionary Entry 1.4.4.5 The ``Class Precedence List'' Section of a Dictionary Entry 1.4.4.6 Dictionary Entries for Type Specifiers 1.4.4.7 The ``Constant Value'' Section of a Dictionary Entry 1.4.4.8 The ``Description'' Section of a Dictionary Entry 1.4.4.9 The ``Examples'' Section of a Dictionary Entry 1.4.4.10 The ``Exceptional Situations'' Section of a Dictionary Entry 1.4.4.11 The ``Initial Value'' Section of a Dictionary Entry 1.4.4.12 The ``Argument Precedence Order'' Section of a Dictionary Entry 1.4.4.13 The ``Method Signature'' Section of a Dictionary Entry 1.4.4.14 The ``Name'' Section of a Dictionary Entry 1.4.4.15 The ``Notes'' Section of a Dictionary Entry 1.4.4.16 The ``Pronunciation'' Section of a Dictionary Entry 1.4.4.17 The ``See Also'' Section of a Dictionary Entry 1.4.4.18 The ``Side Effects'' Section of a Dictionary Entry 1.4.4.19 The ``Supertypes'' Section of a Dictionary Entry 1.4.4.20 The ``Syntax'' Section of a Dictionary Entry 1.4.4.21 The ``Valid Context'' Section of a Dictionary Entry 1.4.4.22 The ``Value Type'' Section of a Dictionary Entry 1.5 Conformance 1.5.1 Conforming Implementations 1.5.1.1 Required Language Features 1.5.1.2 Documentation of Implementation-Dependent Features 1.5.1.3 Documentation of Extensions 1.5.1.4 Treatment of Exceptional Situations 1.5.1.5 Conformance Statement 1.5.2 Conforming Programs 1.5.2.1 Use of Implementation-Defined Language Features 1.5.2.2 Character Set for Portable Code 1.6 Language Extensions 1.7 Language Subsets 1.8 Deprecated Language Features 1.8.1 Deprecated Functions 1.8.2 Deprecated Argument Conventions 1.8.3 Deprecated Variables 1.8.4 Deprecated Reader Syntax 1.9 Symbols in the COMMON-LISP Package 2 Syntax 2.1 Character Syntax 2.1.1 Readtables 2.1.1.1 The Current Readtable 2.1.1.2 The Standard Readtable 2.1.1.3 The Initial Readtable 2.1.2 Variables that affect the Lisp Reader 2.1.3 Standard Characters 2.1.4 Character Syntax Types 2.1.4.1 Constituent Characters 2.1.4.2 Constituent Traits 2.1.4.3 Invalid Characters 2.1.4.4 Macro Characters 2.1.4.5 Multiple Escape Characters 2.1.4.6 Single Escape Character 2.1.4.7 Whitespace Characters 2.2 Reader Algorithm 2.3 Interpretation of Tokens 2.3.1 Numbers as Tokens 2.3.1.1 Potential Numbers as Tokens 2.3.2 Constructing Numbers from Tokens 2.3.2.1 Syntax of a Rational 2.3.2.2 Syntax of a Float 2.3.2.3 Syntax of a Complex 2.3.3 The Consing Dot 2.3.4 Symbols as Tokens 2.3.5 Valid Patterns for Tokens 2.3.6 Package System Consistency Rules 2.4 Standard Macro Characters 2.4.1 Left-Parenthesis 2.4.2 Right-Parenthesis 2.4.3 Single-Quote 2.4.3.1 Examples of Single-Quote 2.4.4 Semicolon 2.4.4.1 Examples of Semicolon 2.4.4.2 Notes about Style for Semicolon 2.4.5 Double-Quote 2.4.6 Backquote 2.4.6.1 Notes about Backquote 2.4.7 Comma 2.4.8 Sharpsign 2.4.8.1 Sharpsign Backslash 2.4.8.2 Sharpsign Single-Quote 2.4.8.3 Sharpsign Left-Parenthesis 2.4.8.4 Sharpsign Asterisk 2.4.8.5 Sharpsign Colon 2.4.8.6 Sharpsign Dot 2.4.8.7 Sharpsign B 2.4.8.8 Sharpsign O 2.4.8.9 Sharpsign X 2.4.8.10 Sharpsign R 2.4.8.11 Sharpsign C 2.4.8.12 Sharpsign A 2.4.8.13 Sharpsign S 2.4.8.14 Sharpsign P 2.4.8.15 Sharpsign Equal-Sign 2.4.8.16 Sharpsign Sharpsign 2.4.8.17 Sharpsign Plus 2.4.8.18 Sharpsign Minus 2.4.8.19 Sharpsign Vertical-Bar 2.4.8.20 Sharpsign Less-Than-Sign 2.4.8.21 Sharpsign Whitespace 2.4.8.22 Sharpsign Right-Parenthesis 2.4.9 Re-Reading Abbreviated Expressions 3 Evaluation and Compilation 3.1 Evaluation 3.1.1 Introduction to Environments 3.1.1.1 The Global Environment 3.1.1.2 Dynamic Environments 3.1.1.3 Lexical Environments 3.1.1.4 Environment Objects 3.1.2 The Evaluation Model 3.1.2.1 Form Evaluation 3.1.3 Lambda Expressions 3.1.4 Closures and Lexical Binding 3.1.5 Shadowing 3.1.6 Extent 3.1.7 Return Values 3.2 Compilation 3.2.1 Compiler Terminology 3.2.2 Compilation Semantics 3.2.2.1 Compiler Macros 3.2.2.2 Minimal Compilation 3.2.2.3 Semantic Constraints 3.2.3 File Compilation 3.2.3.1 Processing of Top Level Forms 3.2.4 Literal Objects in Compiled Files 3.2.4.1 Externalizable Objects 3.2.4.2 Similarity of Literal Objects 3.2.4.3 Extensions to Similarity Rules 3.2.4.4 Additional Constraints on Externalizable Objects 3.2.5 Exceptional Situations in the Compiler 3.3 Declarations 3.3.1 Minimal Declaration Processing Requirements 3.3.2 Declaration Specifiers 3.3.3 Declaration Identifiers 3.3.3.1 Shorthand notation for Type Declarations 3.3.4 Declaration Scope 3.3.4.1 Examples of Declaration Scope 3.4 Lambda Lists 3.4.1 Ordinary Lambda Lists 3.4.1.1 Specifiers for the required parameters 3.4.1.2 Specifiers for optional parameters 3.4.1.3 A specifier for a rest parameter 3.4.1.4 Specifiers for keyword parameters 3.4.1.5 Specifiers for {{$ $}}\hbox {{\bbfnine \&aux\/}} variables 3.4.1.6 Examples of Ordinary Lambda Lists 3.4.2 Generic Function Lambda Lists 3.4.3 Specialized Lambda Lists 3.4.4 Macro Lambda Lists 3.4.4.1 Destructuring by Lambda Lists 3.4.5 Destructuring Lambda Lists 3.4.6 Boa Lambda Lists 3.4.7 Defsetf Lambda Lists 3.4.8 Deftype Lambda Lists 3.4.9 Define-modify-macro Lambda Lists 3.4.10 Define-method-combination Arguments Lambda Lists 3.4.11 Syntactic Interaction of Documentation Strings and Declarations 3.5 Error Checking in Function Calls 3.5.1 Argument Mismatch Detection 3.5.1.1 Safe and Unsafe Calls 3.5.1.2 Too Few Arguments 3.5.1.3 Too Many Arguments 3.5.1.4 Unrecognized Keyword Arguments 3.5.1.5 Invalid Keyword Arguments 3.5.1.6 Odd Number of Keyword Arguments 3.5.1.7 Destructuring Mismatch 3.5.1.8 Errors When Calling a Next Method 3.6 Traversal Rules and Side Effects 3.7 Destructive Operations 3.7.1 Modification of Literal Objects 3.7.2 Transfer of Control during a Destructive Operation 3.7.2.1 Examples of Transfer of Control during a Destructive Operation 3.8 Dictionary lambda lambda compile eval eval-when load-time-value quote compiler-macro-function define-compiler-macro defmacro macro-function macroexpand, macroexpand-1 define-symbol-macro symbol-macrolet *macroexpand-hook* proclaim declaim declare ignore, ignorable dynamic-extent type inline, notinline ftype declaration optimize special locally the special-operator-p constantp 4 Types and Classes 4.1 Introduction 4.2 Types 4.2.1 Data Type Definition 4.2.2 Type Relationships 4.2.3 Type Specifiers 4.3 Classes 4.3.1 Introduction to Classes 4.3.1.1 Standard Metaclasses 4.3.2 Defining Classes 4.3.3 Creating Instances of Classes 4.3.4 Inheritance 4.3.4.1 Examples of Inheritance 4.3.4.2 Inheritance of Class Options 4.3.5 Determining the Class Precedence List 4.3.5.1 Topological Sorting 4.3.5.2 Examples of Class Precedence List Determination 4.3.6 Redefining Classes 4.3.6.1 Modifying the Structure of Instances 4.3.6.2 Initializing Newly Added Local Slots 4.3.6.3 Customizing Class Redefinition 4.3.7 Integrating Types and Classes 4.4 Dictionary nil boolean function compiled-function generic-function standard-generic-function class built-in-class structure-class standard-class method standard-method structure-object standard-object method-combination t satisfies member not and or values eql coerce deftype subtypep type-of typep type-error type-error-datum, type-error-expected-type simple-type-error 5 Data and Control Flow 5.1 Generalized Reference 5.1.1 Overview of Places and Generalized Reference 5.1.1.1 Evaluation of Subforms to Places 5.1.1.2 Setf Expansions 5.1.2 Kinds of Places 5.1.2.1 Variable Names as Places 5.1.2.2 Function Call Forms as Places 5.1.2.3 VALUES Forms as Places 5.1.2.4 THE Forms as Places 5.1.2.5 APPLY Forms as Places 5.1.2.6 Setf Expansions and Places 5.1.2.7 Macro Forms as Places 5.1.2.8 Symbol Macros as Places 5.1.2.9 Other Compound Forms as Places 5.1.3 Treatment of Other Macros Based on SETF 5.2 Transfer of Control to an Exit Point 5.3 Dictionary apply defun fdefinition fboundp fmakunbound flet, labels, macrolet funcall function function-lambda-expression functionp compiled-function-p call-arguments-limit lambda-list-keywords lambda-parameters-limit defconstant defparameter, defvar destructuring-bind let, let* progv setq psetq block catch go return-from return tagbody throw unwind-protect nil not t eq eql equal equalp identity complement constantly every, some, notevery, notany and cond if or when, unless case, ccase, ecase typecase, ctypecase, etypecase multiple-value-bind multiple-value-call multiple-value-list multiple-value-prog1 multiple-value-setq values values-list multiple-values-limit nth-value prog, prog* prog1, prog2 progn define-modify-macro defsetf define-setf-expander get-setf-expansion setf, psetf shiftf rotatef control-error program-error undefined-function 6 Iteration 6.1 The LOOP Facility 6.1.1 Overview of the Loop Facility 6.1.1.1 Simple vs Extended Loop 6.1.1.2 Loop Keywords 6.1.1.3 Parsing Loop Clauses 6.1.1.4 Expanding Loop Forms 6.1.1.5 Summary of Loop Clauses 6.1.1.6 Order of Execution 6.1.1.7 Destructuring 6.1.1.8 Restrictions on Side-Effects 6.1.2 Variable Initialization and Stepping Clauses 6.1.2.1 Iteration Control 6.1.2.2 Local Variable Initializations 6.1.3 Value Accumulation Clauses 6.1.3.1 Examples of COLLECT clause 6.1.3.2 Examples of APPEND and NCONC clauses 6.1.3.3 Examples of COUNT clause 6.1.3.4 Examples of MAXIMIZE and MINIMIZE clauses 6.1.3.5 Examples of SUM clause 6.1.4 Termination Test Clauses 6.1.4.1 Examples of REPEAT clause 6.1.4.2 Examples of ALWAYS, NEVER, and THEREIS clauses 6.1.4.3 Examples of WHILE and UNTIL clauses 6.1.5 Unconditional Execution Clauses 6.1.5.1 Examples of unconditional execution 6.1.6 Conditional Execution Clauses 6.1.6.1 Examples of WHEN clause 6.1.7 Miscellaneous Clauses 6.1.7.1 Control Transfer Clauses 6.1.7.2 Initial and Final Execution 6.1.8 Examples of Miscellaneous Loop Features 6.1.8.1 Examples of clause grouping 6.1.9 Notes about Loop 6.2 Dictionary do, do* dotimes dolist loop loop-finish 7 Objects 7.1 Object Creation and Initialization 7.1.1 Initialization Arguments 7.1.2 Declaring the Validity of Initialization Arguments 7.1.3 Defaulting of Initialization Arguments 7.1.4 Rules for Initialization Arguments 7.1.5 Shared-Initialize 7.1.6 Initialize-Instance 7.1.7 Definitions of Make-Instance and Initialize-Instance 7.2 Changing the Class of an Instance 7.2.1 Modifying the Structure of the Instance 7.2.2 Initializing Newly Added Local Slots 7.2.3 Customizing the Change of Class of an Instance 7.3 Reinitializing an Instance 7.3.1 Customizing Reinitialization 7.4 Meta-Objects 7.4.1 Standard Meta-objects 7.5 Slots 7.5.1 Introduction to Slots 7.5.2 Accessing Slots 7.5.3 Inheritance of Slots and Slot Options 7.6 Generic Functions and Methods 7.6.1 Introduction to Generic Functions 7.6.2 Introduction to Methods 7.6.3 Agreement on Parameter Specializers and Qualifiers 7.6.4 Congruent Lambda-lists for all Methods of a Generic Function 7.6.5 Keyword Arguments in Generic Functions and Methods 7.6.5.1 Examples of Keyword Arguments in Generic Functions and Methods 7.6.6 Method Selection and Combination 7.6.6.1 Determining the Effective Method 7.6.6.2 Standard Method Combination 7.6.6.3 Declarative Method Combination 7.6.6.4 Built-in Method Combination Types 7.6.7 Inheritance of Methods 7.7 Dictionary function-keywords ensure-generic-function allocate-instance reinitialize-instance shared-initialize update-instance-for-different-class update-instance-for-redefined-class change-class slot-boundp slot-exists-p slot-makunbound slot-missing slot-unbound slot-value method-qualifiers no-applicable-method no-next-method remove-method make-instance make-instances-obsolete make-load-form make-load-form-saving-slots with-accessors with-slots defclass defgeneric defmethod find-class next-method-p call-method, make-method call-next-method compute-applicable-methods define-method-combination find-method add-method initialize-instance class-name (setf class-name) class-of unbound-slot unbound-slot-instance 8 Structures 8.1 Dictionary defstruct copy-structure 9 Conditions 9.1 Condition System Concepts 9.1.1 Condition Types 9.1.1.1 Serious Conditions 9.1.2 Creating Conditions 9.1.2.1 Condition Designators 9.1.3 Printing Conditions 9.1.3.1 Recommended Style in Condition Reporting 9.1.4 Signaling and Handling Conditions 9.1.4.1 Signaling 9.1.4.2 Restarts 9.1.5 Assertions 9.1.6 Notes about the Condition System's Background 9.2 Dictionary condition warning style-warning serious-condition error cell-error cell-error-name parse-error storage-condition assert error cerror check-type simple-error invalid-method-error method-combination-error signal simple-condition simple-condition-format-control, simple-condition-format-arguments warn simple-warning invoke-debugger break *debugger-hook* *break-on-signals* handler-bind handler-case ignore-errors define-condition make-condition restart compute-restarts find-restart invoke-restart invoke-restart-interactively restart-bind restart-case restart-name with-condition-restarts with-simple-restart abort continue muffle-warning store-value use-value abort, continue, muffle-warning, store-value, use-value 10 Symbols 10.1 Symbol Concepts 10.2 Dictionary symbol keyword symbolp keywordp make-symbol copy-symbol gensym *gensym-counter* gentemp symbol-function symbol-name symbol-package symbol-plist symbol-value get remprop boundp makunbound set unbound-variable 11 Packages 11.1 Package Concepts 11.1.1 Introduction to Packages 11.1.1.1 Package Names and Nicknames 11.1.1.2 Symbols in a Package 11.1.2 Standardized Packages 11.1.2.1 The COMMON-LISP Package 11.1.2.2 The COMMON-LISP-USER Package 11.1.2.3 The KEYWORD Package 11.1.2.4 Implementation-Defined Packages 11.2 Dictionary package export find-symbol find-package find-all-symbols import list-all-packages rename-package shadow shadowing-import delete-package make-package with-package-iterator unexport unintern in-package unuse-package use-package defpackage do-symbols, do-external-symbols, do-all-symbols intern package-name package-nicknames package-shadowing-symbols package-use-list package-used-by-list packagep *package* package-error package-error-package 12 Numbers 12.1 Number Concepts 12.1.1 Numeric Operations 12.1.1.1 Associativity and Commutativity in Numeric Operations 12.1.1.2 Contagion in Numeric Operations 12.1.1.3 Viewing Integers as Bits and Bytes 12.1.2 Implementation-Dependent Numeric Constants 12.1.3 Rational Computations 12.1.3.1 Rule of Unbounded Rational Precision 12.1.3.2 Rule of Canonical Representation for Rationals 12.1.3.3 Rule of Float Substitutability 12.1.4 Floating-point Computations 12.1.4.1 Rule of Float and Rational Contagion 12.1.4.2 Rule of Float Approximation 12.1.4.3 Rule of Float Underflow and Overflow 12.1.4.4 Rule of Float Precision Contagion 12.1.5 Complex Computations 12.1.5.1 Rule of Complex Substitutability 12.1.5.2 Rule of Complex Contagion 12.1.5.3 Rule of Canonical Representation for Complex Rationals 12.1.5.4 Principal Values and Branch Cuts 12.1.6 Interval Designators 12.1.7 Random-State Operations 12.2 Dictionary number complex real float short-float, single-float, double-float, long-float rational ratio integer signed-byte unsigned-byte mod bit fixnum bignum =, /=, {$\spLT $}, {$\spGT $}, {$\spLT $}=, {$\spGT $}= max, min minusp, plusp zerop floor, ffloor, ceiling, fceiling, truncate, ftruncate, round, fround sin, cos, tan asin, acos, atan pi sinh, cosh, tanh, asinh, acosh, atanh * + $-$ / 1+, 1$-$ abs evenp, oddp exp, expt gcd incf, decf lcm log mod, rem signum sqrt, isqrt random-state make-random-state random random-state-p *random-state* numberp cis complex complexp conjugate phase realpart, imagpart upgraded-complex-part-type realp numerator, denominator rational, rationalize rationalp ash integer-length integerp parse-integer boole boole-1, boole-2, boole-and, boole-andc1, boole-andc2, boole-c1, boole-c2, boole-clr, boole-eqv, boole-ior, boole-nand, boole-nor, boole-orc1, boole-orc2, boole-set, boole-xor logand, logandc1, logandc2, logeqv, logior, lognand, lognor, lognot, logorc1, logorc2, logxor logbitp logcount logtest byte, byte-size, byte-position deposit-field dpb ldb ldb-test mask-field most-positive-fixnum, most-negative-fixnum decode-float, scale-float, float-radix, float-sign, float-digits, float-precision, integer-decode-float float floatp most-positive-short-float, least-positive-short-float, least-positive-normalized-short-float, most-positive-double-float, least-positive-double-float, least-positive-normalized-double-float, most-positive-long-float, least-positive-long-float, least-positive-normalized-long-float, most-positive-single-float, least-positive-single-float, least-positive-normalized-single-float, most-negative-short-float, least-negative-short-float, least-negative-normalized-short-float, most-negative-single-float, least-negative-single-float, least-negative-normalized-single-float, most-negative-double-float, least-negative-double-float, least-negative-normalized-double-float, most-negative-long-float, least-negative-long-float, least-negative-normalized-long-float short-float-epsilon, short-float-negative-epsilon, single-float-epsilon, single-float-negative-epsilon, double-float-epsilon, double-float-negative-epsilon, long-float-epsilon, long-float-negative-epsilon arithmetic-error arithmetic-error-operands, arithmetic-error-operation division-by-zero floating-point-invalid-operation floating-point-inexact floating-point-overflow floating-point-underflow 13 Characters 13.1 Character Concepts 13.1.1 Introduction to Characters 13.1.2 Introduction to Scripts and Repertoires 13.1.2.1 Character Scripts 13.1.2.2 Character Repertoires 13.1.3 Character Attributes 13.1.4 Character Categories 13.1.4.1 Graphic Characters 13.1.4.2 Alphabetic Characters 13.1.4.3 Characters With Case 13.1.4.4 Numeric Characters 13.1.4.5 Alphanumeric Characters 13.1.4.6 Digits in a Radix 13.1.5 Identity of Characters 13.1.6 Ordering of Characters 13.1.7 Character Names 13.1.8 Treatment of Newline during Input and Output 13.1.9 Character Encodings 13.1.10 Documentation of Implementation-Defined Scripts 13.2 Dictionary character base-char standard-char extended-char char=, char/=, char{$\spLT $}, char{$\spGT $}, char{$\spLT $}=, char{$\spGT $}=, char-equal, char-not-equal, char-lessp, char-greaterp, char-not-greaterp, char-not-lessp character characterp alpha-char-p alphanumericp digit-char digit-char-p graphic-char-p standard-char-p char-upcase, char-downcase upper-case-p, lower-case-p, both-case-p char-code char-int code-char char-code-limit char-name name-char 14 Conses 14.1 Cons Concepts 14.1.1 Conses as Trees 14.1.1.1 General Restrictions on Parameters that must be Trees 14.1.2 Conses as Lists 14.1.2.1 Lists as Association Lists 14.1.2.2 Lists as Sets 14.1.2.3 General Restrictions on Parameters that must be Lists 14.2 Dictionary list null cons atom cons consp atom rplaca, rplacd car, cdr, caar, cadr, cdar, cddr, caaar, caadr, cadar, caddr, cdaar, cdadr, cddar, cdddr, caaaar, caaadr, caadar, caaddr, cadaar, cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar, cddddr copy-tree sublis, nsublis subst, subst-if, subst-if-not, nsubst, nsubst-if, nsubst-if-not tree-equal copy-list list, list* list-length listp make-list push pop first, second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth nth endp null nconc append revappend, nreconc butlast, nbutlast last ldiff, tailp nthcdr rest member, member-if, member-if-not mapc, mapcar, mapcan, mapl, maplist, mapcon acons assoc, assoc-if, assoc-if-not copy-alist pairlis rassoc, rassoc-if, rassoc-if-not get-properties getf remf intersection, nintersection adjoin pushnew set-difference, nset-difference set-exclusive-or, nset-exclusive-or subsetp union, nunion 15 Arrays 15.1 Array Concepts 15.1.1 Array Elements 15.1.1.1 Array Indices 15.1.1.2 Array Dimensions 15.1.1.3 Array Rank 15.1.2 Specialized Arrays 15.1.2.1 Array Upgrading 15.1.2.2 Required Kinds of Specialized Arrays 15.2 Dictionary array simple-array vector simple-vector bit-vector simple-bit-vector make-array adjust-array adjustable-array-p aref array-dimension array-dimensions array-element-type array-has-fill-pointer-p array-displacement array-in-bounds-p array-rank array-row-major-index array-total-size arrayp fill-pointer row-major-aref upgraded-array-element-type array-dimension-limit array-rank-limit array-total-size-limit simple-vector-p svref vector vector-pop vector-push, vector-push-extend vectorp bit, sbit bit-and, bit-andc1, bit-andc2, bit-eqv, bit-ior, bit-nand, bit-nor, bit-not, bit-orc1, bit-orc2, bit-xor bit-vector-p simple-bit-vector-p 16 Strings 16.1 String Concepts 16.1.1 Implications of Strings Being Arrays 16.1.2 Subtypes of STRING 16.2 Dictionary string base-string simple-string simple-base-string simple-string-p char, schar string string-upcase, string-downcase, string-capitalize, nstring-upcase, nstring-downcase, nstring-capitalize string-trim, string-left-trim, string-right-trim string=, string/=, string{$\spLT $}, string{$\spGT $}, string{$\spLT $}=, string{$\spGT $}=, string-equal, string-not-equal, string-lessp, string-greaterp, string-not-greaterp, string-not-lessp stringp make-string 17 Sequences 17.1 Sequence Concepts 17.1.1 General Restrictions on Parameters that must be Sequences 17.2 Rules about Test Functions 17.2.1 Satisfying a Two-Argument Test 17.2.1.1 Examples of Satisfying a Two-Argument Test 17.2.2 Satisfying a One-Argument Test 17.2.2.1 Examples of Satisfying a One-Argument Test 17.3 Dictionary sequence copy-seq elt fill make-sequence subseq map map-into reduce count, count-if, count-if-not length reverse, nreverse sort, stable-sort find, find-if, find-if-not position, position-if, position-if-not search mismatch replace substitute, substitute-if, substitute-if-not, nsubstitute, nsubstitute-if, nsubstitute-if-not concatenate merge remove, remove-if, remove-if-not, delete, delete-if, delete-if-not remove-duplicates, delete-duplicates 18 Hash Tables 18.1 Hash Table Concepts 18.1.1 Hash-Table Operations 18.1.2 Modifying Hash Table Keys 18.1.2.1 Visible Modification of Objects with respect to EQ and EQL 18.1.2.2 Visible Modification of Objects with respect to EQUAL 18.1.2.3 Visible Modification of Objects with respect to EQUALP 18.1.2.4 Visible Modifications by Language Extensions 18.2 Dictionary hash-table make-hash-table hash-table-p hash-table-count hash-table-rehash-size hash-table-rehash-threshold hash-table-size hash-table-test gethash remhash maphash with-hash-table-iterator clrhash sxhash 19 Filenames 19.1 Overview of Filenames 19.1.1 Namestrings as Filenames 19.1.2 Pathnames as Filenames 19.1.3 Parsing Namestrings Into Pathnames 19.2 Pathnames 19.2.1 Pathname Components 19.2.1.1 The Pathname Host Component 19.2.1.2 The Pathname Device Component 19.2.1.3 The Pathname Directory Component 19.2.1.4 The Pathname Name Component 19.2.1.5 The Pathname Type Component 19.2.1.6 The Pathname Version Component 19.2.2 Interpreting Pathname Component Values 19.2.2.1 Strings in Component Values 19.2.2.2 Special Pathname Component Values 19.2.2.3 Restrictions on Wildcard Pathnames 19.2.2.4 Restrictions on Examining Pathname Components 19.2.2.5 Restrictions on Constructing Pathnames 19.2.3 Merging Pathnames 19.2.3.1 Examples of Merging Pathnames 19.3 Logical Pathnames 19.3.1 Syntax of Logical Pathname Namestrings 19.3.1.1 Additional Information about Parsing Logical Pathname Namestrings 19.3.2 Logical Pathname Components 19.3.2.1 Unspecific Components of a Logical Pathname 19.3.2.2 Null Strings as Components of a Logical Pathname 19.4 Dictionary pathname logical-pathname pathname make-pathname pathnamep pathname-host, pathname-device, pathname-directory, pathname-name, pathname-type, pathname-version load-logical-pathname-translations logical-pathname-translations logical-pathname *default-pathname-defaults* namestring, file-namestring, directory-namestring, host-namestring, enough-namestring parse-namestring wild-pathname-p pathname-match-p translate-logical-pathname translate-pathname merge-pathnames 20 Files 20.1 File System Concepts 20.1.1 Coercion of Streams to Pathnames 20.1.2 File Operations on Open and Closed Streams 20.1.3 Truenames 20.1.3.1 Examples of Truenames 20.2 Dictionary directory probe-file ensure-directories-exist truename file-author file-write-date rename-file delete-file file-error file-error-pathname 21 Streams 21.1 Stream Concepts 21.1.1 Introduction to Streams 21.1.1.1 Abstract Classifications of Streams 21.1.1.2 Abstract Classifications of Streams 21.1.1.3 Other Subclasses of Stream 21.1.2 Stream Variables 21.1.3 Stream Arguments to Standardized Functions 21.1.4 Restrictions on Composite Streams 21.2 Dictionary stream broadcast-stream concatenated-stream echo-stream file-stream string-stream synonym-stream two-way-stream input-stream-p, output-stream-p interactive-stream-p open-stream-p stream-element-type streamp read-byte write-byte peek-char read-char read-char-no-hang terpri, fresh-line unread-char write-char read-line write-string, write-line read-sequence write-sequence file-length file-position file-string-length open stream-external-format with-open-file close with-open-stream listen clear-input finish-output, force-output, clear-output y-or-n-p, yes-or-no-p make-synonym-stream synonym-stream-symbol broadcast-stream-streams make-broadcast-stream make-two-way-stream two-way-stream-input-stream, two-way-stream-output-stream echo-stream-input-stream, echo-stream-output-stream make-echo-stream concatenated-stream-streams make-concatenated-stream get-output-stream-string make-string-input-stream make-string-output-stream with-input-from-string with-output-to-string *debug-io*, *error-output*, *query-io*, *standard-input*, *standard-output*, *trace-output* *terminal-io* stream-error stream-error-stream end-of-file 22 Printer 22.1 The Lisp Printer 22.1.1 Overview of The Lisp Printer 22.1.1.1 Multiple Possible Textual Representations 22.1.2 Printer Dispatching 22.1.3 Default Print-Object Methods 22.1.3.1 Printing Numbers 22.1.3.2 Printing Characters 22.1.3.3 Printing Symbols 22.1.3.4 Printing Strings 22.1.3.5 Printing Lists and Conses 22.1.3.6 Printing Bit Vectors 22.1.3.7 Printing Other Vectors 22.1.3.8 Printing Other Arrays 22.1.3.9 Examples of Printing Arrays 22.1.3.10 Printing Random States 22.1.3.11 Printing Pathnames 22.1.3.12 Printing Structures 22.1.3.13 Printing Other Objects 22.1.4 Examples of Printer Behavior 22.2 The Lisp Pretty Printer 22.2.1 Pretty Printer Concepts 22.2.1.1 Dynamic Control of the Arrangement of Output 22.2.1.2 Format Directive Interface 22.2.1.3 Compiling Format Strings 22.2.1.4 Pretty Print Dispatch Tables 22.2.1.5 Pretty Printer Margins 22.2.2 Examples of using the Pretty Printer 22.2.3 Notes about the Pretty Printer's Background 22.3 Formatted Output 22.3.1 FORMAT Basic Output 22.3.1.1 Tilde C: Character 22.3.1.2 Tilde Percent: Newline 22.3.1.3 Tilde Ampersand: Fresh-Line 22.3.1.4 Tilde Vertical-Bar: Page 22.3.1.5 Tilde Tilde: Tilde 22.3.2 FORMAT Radix Control 22.3.2.1 Tilde R: Radix 22.3.2.2 Tilde D: Decimal 22.3.2.3 Tilde B: Binary 22.3.2.4 Tilde O: Octal 22.3.2.5 Tilde X: Hexadecimal 22.3.3 FORMAT Floating-Point Printers 22.3.3.1 Tilde F: Fixed-Format Floating-Point 22.3.3.2 Tilde E: Exponential Floating-Point 22.3.3.3 Tilde G: General Floating-Point 22.3.3.4 Tilde Dollarsign: Monetary Floating-Point 22.3.4 FORMAT Printer Operations 22.3.4.1 Tilde A: Aesthetic 22.3.4.2 Tilde S: Standard 22.3.4.3 Tilde W: Write 22.3.5 FORMAT Pretty Printer Operations 22.3.5.1 Tilde Underscore: Conditional Newline 22.3.5.2 Tilde Less-Than-Sign: Logical Block 22.3.5.3 Tilde I: Indent 22.3.5.4 Tilde Slash: Call Function 22.3.6 FORMAT Layout Control 22.3.6.1 Tilde T: Tabulate 22.3.6.2 Tilde Less-Than-Sign: Justification 22.3.6.3 Tilde Greater-Than-Sign: End of Justification 22.3.7 FORMAT Control-Flow Operations 22.3.7.1 Tilde Asterisk: Go-To 22.3.7.2 Tilde Left-Bracket: Conditional Expression 22.3.7.3 Tilde Right-Bracket: End of Conditional Expression 22.3.7.4 Tilde Left-Brace: Iteration 22.3.7.5 Tilde Right-Brace: End of Iteration 22.3.7.6 Tilde Question-Mark: Recursive Processing 22.3.8 FORMAT Miscellaneous Operations 22.3.8.1 Tilde Left-Paren: Case Conversion 22.3.8.2 Tilde Right-Paren: End of Case Conversion 22.3.8.3 Tilde P: Plural 22.3.9 FORMAT Miscellaneous Pseudo-Operations 22.3.9.1 Tilde Semicolon: Clause Separator 22.3.9.2 Tilde Circumflex: Escape Upward 22.3.9.3 Tilde Newline: Ignored Newline 22.3.10 Additional Information about FORMAT Operations 22.3.10.1 Nesting of FORMAT Operations 22.3.10.2 Missing and Additional FORMAT Arguments 22.3.10.3 Additional FORMAT Parameters 22.3.10.4 Undefined FORMAT Modifier Combinations 22.3.11 Examples of FORMAT 22.3.12 Notes about FORMAT 22.4 Dictionary copy-pprint-dispatch formatter pprint-dispatch pprint-exit-if-list-exhausted pprint-fill, pprint-linear, pprint-tabular pprint-indent pprint-logical-block pprint-newline pprint-pop pprint-tab print-object print-unreadable-object set-pprint-dispatch write, prin1, print, pprint, princ write-to-string, prin1-to-string, princ-to-string *print-array* *print-base*, *print-radix* *print-case* *print-circle* *print-escape* *print-gensym* *print-level*, *print-length* *print-lines* *print-miser-width* *print-pprint-dispatch* *print-pretty* *print-readably* *print-right-margin* print-not-readable p
دانلود کتاب استاندارد Lisp عمومی X3J13