This is the nclasses Reference Manual, version 0.6.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Tue Jul 15 06:04:16 2025 GMT+0.
The main system appears first, followed by any subsystem dependency.
nclasses
Simplify class like definitions with define-class and friends.
Atlas Engineer LLC
dwim.hu & Atlas Engineer LLC
(GIT https://github.com/atlas-engineer/nclasses.git)
Public Domain
0.6.1
moptilities
(system).
package.lisp
(file).
duplicates.lisp
(file).
defclass-star.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
nclasses/duplicates.lisp
package.lisp
(file).
nclasses
(system).
concatenate-symbol
(function).
fully-qualified-symbol-name
(function).
remf-keywords
(macro).
remove-keywords
(function).
nclasses/defclass-star.lisp
duplicates.lisp
(file).
nclasses
(system).
*allowed-slot-definition-properties*
(special variable).
always-dashed-predicate-name-transformer
(function).
default-accessor-name-transformer
(function).
default-initarg-name-transformer
(function).
default-predicate-name-transformer
(function).
default-slot-definition-transformer
(function).
default-type-inference
(function).
define-class
(macro).
define-condition*
(macro).
define-generic
(macro).
dwim-accessor-name-transformer
(function).
make-instance*
(macro).
make-name-transformer
(macro).
question-mark-accessor-name-transformer
(function).
question-mark-predicate-name-transformer
(function).
*accessor-name-package*
(special variable).
*accessor-name-transformer*
(special variable).
*accessor-names*
(special variable).
*automatic-accessors-p*
(special variable).
*automatic-initargs-p*
(special variable).
*automatic-predicates-p*
(special variable).
*automatic-types-p*
(special variable).
*export-accessor-names-p*
(special variable).
*export-class-name-p*
(special variable).
*export-generic-name-p*
(special variable).
*export-predicate-name-p*
(special variable).
*export-slot-names-p*
(special variable).
*initarg-name-transformer*
(special variable).
*predicate-name-transformer*
(special variable).
*slot-definition-transformer*
(special variable).
*slot-names*
(special variable).
*symbols-to-export*
(special variable).
*type-inference*
(special variable).
build-defclass-like-expansion
(function).
extract-options-into-bindings
(function).
generalize-arglist
(function).
hu.dwim.defclass-star-style-warning
(condition).
process-slot-definition
(function).
slot-name-package
(function).
slot-type-maybe-inherited
(function).
style-warn
(function).
Packages are listed by definition order.
nclasses
This library offers four helper macros:
- ‘nclasses:define-class’ (aliases ‘nclasses:define-class*’ and ‘nclasses:defclass*’)
- ‘nclasses:define-condition*’ (alias ‘nclasses:defcondition*’).
- ‘nclasses:define-generic’ (aliases ‘nclasses:define-generic*’ and ‘nclasses:defgeneric*’).
- ‘nclasses:make-instance*’ (alias ‘nclasses:make*’ and ‘nclasses:make’).
Compared to the standard macros, they accept extra options and slot definition
is smarter.
Example of ‘nclasses:define-class’:
(define-class foo ()
((slot1 :initarg nil)
(slot2 "hello!")
(unexported-slot :export nil))
(:export-class-name-p t)
(:export-accessor-names-p t)
(:accessor-name-transformer #’nclasses:default-accessor-name-transformer))
In the above, all slot accessors are automatically defined using
‘nclasses:default-accessor-name-transformer’. They are also exported together with the
class name.
The initarg default to the keyword version of the slot symbol, unless it’s
explicitly set to NIL.
Notice that the second value of the slot definition, if not an option, is then
the initform.
See ‘nclasses:define-class’ and other macros’ documentation for more details.
common-lisp
.
*allowed-slot-definition-properties*
(special variable).
always-dashed-predicate-name-transformer
(function).
default-accessor-name-transformer
(function).
default-initarg-name-transformer
(function).
default-predicate-name-transformer
(function).
default-slot-definition-transformer
(function).
default-type-inference
(function).
defclass*
(macro).
defcondition*
(macro).
defgeneric*
(macro).
define-class
(macro).
define-condition*
(macro).
define-generic
(macro).
define-generic*
(macro).
dwim-accessor-name-transformer
(function).
make
(macro).
make*
(macro).
make-instance*
(macro).
make-name-transformer
(macro).
question-mark-accessor-name-transformer
(function).
question-mark-predicate-name-transformer
(function).
*accessor-name-package*
(special variable).
*accessor-name-transformer*
(special variable).
*accessor-names*
(special variable).
*automatic-accessors-p*
(special variable).
*automatic-initargs-p*
(special variable).
*automatic-predicates-p*
(special variable).
*automatic-types-p*
(special variable).
*export-accessor-names-p*
(special variable).
*export-class-name-p*
(special variable).
*export-generic-name-p*
(special variable).
*export-predicate-name-p*
(special variable).
*export-slot-names-p*
(special variable).
*initarg-name-transformer*
(special variable).
*predicate-name-transformer*
(special variable).
*slot-definition-transformer*
(special variable).
*slot-names*
(special variable).
*symbols-to-export*
(special variable).
*type-inference*
(special variable).
build-defclass-like-expansion
(function).
concatenate-symbol
(function).
define-class*
(macro).
extract-options-into-bindings
(function).
fully-qualified-symbol-name
(function).
generalize-arglist
(function).
hu.dwim.defclass-star-style-warning
(condition).
process-slot-definition
(function).
remf-keywords
(macro).
remove-keywords
(function).
slot-name-package
(function).
slot-type-maybe-inherited
(function).
style-warn
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Holds a list of keywords that are allowed in slot definitions (:accessor and :initarg are implicitly included).
Convenience wrapper of ‘defclass’.
It automates a lot of boilerplate (like exporting all the accessors of a class)
plus adds some new features.
Slot options:
- The initform can be specified as the second value.
- ‘:accessor’, ‘:reader’ and ‘:writer’ can be set to either a name, NIL or T.
If NIL, the method is not generated.
If T, the method is generated using the ‘:accessor-name-transformer’ class option value.
- The ‘:export’ option allows to control the slot-name export on a per-slot basis.
New class options (defaults are NIL unless specified):
- ‘:slot-definition-transformer’ (default: ‘default-slot-definition-transformer’).
A function that takes a SLOT-DEFINITION and returns a new one.
- ‘:accessor-name-package’: The package of the generated accessors. See
‘:accessor-name-transformer’. Some special values are accepted:
- ‘:slot-name’: The package of the slot-name.
- ‘:default’: The current package.
- ‘:accessor-name-transformer’ (default ‘default-accessor-name-transformer’).
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the accessor
name (a symbol). Other transformer: ‘dwim-accessor-name-transformer’.
- ‘:automatic-accessors-p’: Whether to generate accessor names automatically for
all slots.
As a special case, the accessor is not generated if all following conditions are met:
- ‘:accessor-name-package’ is ‘:slot-name’,
- slot name package is different from current package,
- if the ‘:accessor’ slot option is not provided,
- ‘:initarg-name-transformer’ (default: ‘default-initarg-name-transformer’.)
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the accessor
name (a symbol.
- ‘:automatic-initargs-p’ (default: T): Whether to generate accessor names
automatically for all slots.
- ‘:predicate-name-transformer’ (default: ‘default-predicate-name-transformer’).
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the predicate
name (a symbol).
- ‘:automatic-predicates-p’ (default: T): Whether to generate a predicate
for the class.
- ‘:type-inference’ (default: ‘default-type-inference’).
Function that returns the type of a slot definition (with an initform). It
takes 3 arguments:
- The initform.
- The slot name.
- The rest of the slot definition.
- ‘:automatic-types-p’: Whether to generate the type automatically for all
slots. The type can still be specified manually with the ‘:type’ slot option.
- Self-explanatory export options (all NIL by default):
- ‘:export-class-name-p’
- ‘:export-accessor-names-p’
- ‘:export-slot-names-p’
- ‘:export-predicate-name’
To ‘define-condition’ what ‘define-class’ is to ‘defclass’. See ‘define-class’ for more details.
Convenience macro to define generics as if they were methods.
ARGLIST can be a method arglist, in which case it’s parsed into
generic function arglist by removing method-specific args.
BODY can be a list of ‘defgeneric’ options (processed as-is, even
:method ones) intermixed with other Lisp forms:
- If there’s a docstring as the first form, it’s processed into
:documentation option of ‘defgeneric’.
- If there are non-option forms, they are put together into a separate
:method option under ARGLIST.
- If there’s a ‘declare’ form:
- If it’s generic-friendly (optimize for speed or space), then it’s
put into both generic body and :method body (if any).
- Otherwise it’s only put into :method (creating it if necessary).
- If there’s an ‘:export-generic-name-p’ boolean option, export (T) or
don’t export (NIL) the generic symbol.
Example:
(define-generic add ((a integer) (b integer) &key coerce-to-fixnum &allow-other-keys)
"Adds A and B, coercing them to fixnum if the sum is too big."
(if coerce-to-fixnum
(coerce (+ a b) ’fixnum)
(+ a b))
(:method ((a string) (b integer))
(error "Cannot use ‘add’ on strings!")))
=>
(defgeneric add (a b &key &allow-other-keys)
(:method ((a integer) (b integer) &key coerce-to-fixnum &allow-other-keys)
(if coerce-to-fixnum
(coerce (+ a b) ’fixnum)
(+ a b)))
(:method ((a string) (b integer))
(error "Cannot use ‘add’ on strings!"))
(:documentation "Adds A and B, coercing them to fixnum if the sum is too big."))
Convenience wrapper of ‘defclass’.
It automates a lot of boilerplate (like exporting all the accessors of a class)
plus adds some new features.
Slot options:
- The initform can be specified as the second value.
- ‘:accessor’, ‘:reader’ and ‘:writer’ can be set to either a name, NIL or T.
If NIL, the method is not generated.
If T, the method is generated using the ‘:accessor-name-transformer’ class option value.
- The ‘:export’ option allows to control the slot-name export on a per-slot basis.
New class options (defaults are NIL unless specified):
- ‘:slot-definition-transformer’ (default: ‘default-slot-definition-transformer’).
A function that takes a SLOT-DEFINITION and returns a new one.
- ‘:accessor-name-package’: The package of the generated accessors. See
‘:accessor-name-transformer’. Some special values are accepted:
- ‘:slot-name’: The package of the slot-name.
- ‘:default’: The current package.
- ‘:accessor-name-transformer’ (default ‘default-accessor-name-transformer’).
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the accessor
name (a symbol). Other transformer: ‘dwim-accessor-name-transformer’.
- ‘:automatic-accessors-p’: Whether to generate accessor names automatically for
all slots.
As a special case, the accessor is not generated if all following conditions are met:
- ‘:accessor-name-package’ is ‘:slot-name’,
- slot name package is different from current package,
- if the ‘:accessor’ slot option is not provided,
- ‘:initarg-name-transformer’ (default: ‘default-initarg-name-transformer’.)
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the accessor
name (a symbol.
- ‘:automatic-initargs-p’ (default: T): Whether to generate accessor names
automatically for all slots.
- ‘:predicate-name-transformer’ (default: ‘default-predicate-name-transformer’).
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the predicate
name (a symbol).
- ‘:automatic-predicates-p’ (default: T): Whether to generate a predicate
for the class.
- ‘:type-inference’ (default: ‘default-type-inference’).
Function that returns the type of a slot definition (with an initform). It
takes 3 arguments:
- The initform.
- The slot name.
- The rest of the slot definition.
- ‘:automatic-types-p’: Whether to generate the type automatically for all
slots. The type can still be specified manually with the ‘:type’ slot option.
- Self-explanatory export options (all NIL by default):
- ‘:export-class-name-p’
- ‘:export-accessor-names-p’
- ‘:export-slot-names-p’
- ‘:export-predicate-name’
To ‘define-condition’ what ‘define-class’ is to ‘defclass’. See ‘define-class’ for more details.
Convenience macro to define generics as if they were methods.
ARGLIST can be a method arglist, in which case it’s parsed into
generic function arglist by removing method-specific args.
BODY can be a list of ‘defgeneric’ options (processed as-is, even
:method ones) intermixed with other Lisp forms:
- If there’s a docstring as the first form, it’s processed into
:documentation option of ‘defgeneric’.
- If there are non-option forms, they are put together into a separate
:method option under ARGLIST.
- If there’s a ‘declare’ form:
- If it’s generic-friendly (optimize for speed or space), then it’s
put into both generic body and :method body (if any).
- Otherwise it’s only put into :method (creating it if necessary).
- If there’s an ‘:export-generic-name-p’ boolean option, export (T) or
don’t export (NIL) the generic symbol.
Example:
(define-generic add ((a integer) (b integer) &key coerce-to-fixnum &allow-other-keys)
"Adds A and B, coercing them to fixnum if the sum is too big."
(if coerce-to-fixnum
(coerce (+ a b) ’fixnum)
(+ a b))
(:method ((a string) (b integer))
(error "Cannot use ‘add’ on strings!")))
=>
(defgeneric add (a b &key &allow-other-keys)
(:method ((a integer) (b integer) &key coerce-to-fixnum &allow-other-keys)
(if coerce-to-fixnum
(coerce (+ a b) ’fixnum)
(+ a b)))
(:method ((a string) (b integer))
(error "Cannot use ‘add’ on strings!"))
(:documentation "Adds A and B, coercing them to fixnum if the sum is too big."))
Convenience macro to define generics as if they were methods.
ARGLIST can be a method arglist, in which case it’s parsed into
generic function arglist by removing method-specific args.
BODY can be a list of ‘defgeneric’ options (processed as-is, even
:method ones) intermixed with other Lisp forms:
- If there’s a docstring as the first form, it’s processed into
:documentation option of ‘defgeneric’.
- If there are non-option forms, they are put together into a separate
:method option under ARGLIST.
- If there’s a ‘declare’ form:
- If it’s generic-friendly (optimize for speed or space), then it’s
put into both generic body and :method body (if any).
- Otherwise it’s only put into :method (creating it if necessary).
- If there’s an ‘:export-generic-name-p’ boolean option, export (T) or
don’t export (NIL) the generic symbol.
Example:
(define-generic add ((a integer) (b integer) &key coerce-to-fixnum &allow-other-keys)
"Adds A and B, coercing them to fixnum if the sum is too big."
(if coerce-to-fixnum
(coerce (+ a b) ’fixnum)
(+ a b))
(:method ((a string) (b integer))
(error "Cannot use ‘add’ on strings!")))
=>
(defgeneric add (a b &key &allow-other-keys)
(:method ((a integer) (b integer) &key coerce-to-fixnum &allow-other-keys)
(if coerce-to-fixnum
(coerce (+ a b) ’fixnum)
(+ a b)))
(:method ((a string) (b integer))
(error "Cannot use ‘add’ on strings!"))
(:documentation "Adds A and B, coercing them to fixnum if the sum is too big."))
Convenience macro on top of ‘make-instance’.
Conveniences:
- First argument can be a (possibly empty) list of shortcut symbols,
which is automatically converted into a KEYWORD+SYMBOL pairs where
- KEYWORD is the same as shortcut name, but interned as keyword.
- And SYMBOL is the same as shortcut.
- The last argument can be an apply argument—arbitrary
list-producing form, which will be used as the last argument
to (apply #’make-instance ...) idiom.
Note that using a singular shortcut list of apply argument is an
ambiguous case that will be interpreted in favor of apply argument. To
force either of interpretations, provide shortcuts and apply arguments
explicitly:
(make-instance* ’class (a b c)) ;; BAD
(make-instance* ’class (a b c) nil) ;; GOOD
(make-instance* ’class (when t nil)) ;; BAD
(make-instance* ’class () (when t nil)) ;; GOOD
Otherwise, the behavior is equivalent to ‘make-instance’.
Examples:
Shortcut args:
(make-instance* ’class (a b c))
=>
(make-instance ’class :a a :b b :c c)
Last form converted into ‘apply’ argument:
(make-instance* ’class :c c :b b (when something (list :a a)))
=>
(apply #’make-instance ’class :c c :b b (when something (list :a a)))
Shortcut arguments, regular arguments, and form for ‘apply’:
(make-instance* ’class (b c) :x x (when something (list :a a)))
=>
(apply #’make-instance ’class :b b :c c :x x (when something (list :a a)))
Form for ‘apply’ (notice the empty shortcuts—these are required for
unambiguous parsing):
(make-instance* ’class () (when something (list :a a)))
=>
(apply #’make-instance ’class (when something (list :a a)))
Regular ‘make-instance’-like use:
(make-instance* ’class :a a-value :b b-value)
=>
(make-instance ’class :a a-value :b b-value)
Convenience macro on top of ‘make-instance’.
Conveniences:
- First argument can be a (possibly empty) list of shortcut symbols,
which is automatically converted into a KEYWORD+SYMBOL pairs where
- KEYWORD is the same as shortcut name, but interned as keyword.
- And SYMBOL is the same as shortcut.
- The last argument can be an apply argument—arbitrary
list-producing form, which will be used as the last argument
to (apply #’make-instance ...) idiom.
Note that using a singular shortcut list of apply argument is an
ambiguous case that will be interpreted in favor of apply argument. To
force either of interpretations, provide shortcuts and apply arguments
explicitly:
(make-instance* ’class (a b c)) ;; BAD
(make-instance* ’class (a b c) nil) ;; GOOD
(make-instance* ’class (when t nil)) ;; BAD
(make-instance* ’class () (when t nil)) ;; GOOD
Otherwise, the behavior is equivalent to ‘make-instance’.
Examples:
Shortcut args:
(make-instance* ’class (a b c))
=>
(make-instance ’class :a a :b b :c c)
Last form converted into ‘apply’ argument:
(make-instance* ’class :c c :b b (when something (list :a a)))
=>
(apply #’make-instance ’class :c c :b b (when something (list :a a)))
Shortcut arguments, regular arguments, and form for ‘apply’:
(make-instance* ’class (b c) :x x (when something (list :a a)))
=>
(apply #’make-instance ’class :b b :c c :x x (when something (list :a a)))
Form for ‘apply’ (notice the empty shortcuts—these are required for
unambiguous parsing):
(make-instance* ’class () (when something (list :a a)))
=>
(apply #’make-instance ’class (when something (list :a a)))
Regular ‘make-instance’-like use:
(make-instance* ’class :a a-value :b b-value)
=>
(make-instance ’class :a a-value :b b-value)
Convenience macro on top of ‘make-instance’.
Conveniences:
- First argument can be a (possibly empty) list of shortcut symbols,
which is automatically converted into a KEYWORD+SYMBOL pairs where
- KEYWORD is the same as shortcut name, but interned as keyword.
- And SYMBOL is the same as shortcut.
- The last argument can be an apply argument—arbitrary
list-producing form, which will be used as the last argument
to (apply #’make-instance ...) idiom.
Note that using a singular shortcut list of apply argument is an
ambiguous case that will be interpreted in favor of apply argument. To
force either of interpretations, provide shortcuts and apply arguments
explicitly:
(make-instance* ’class (a b c)) ;; BAD
(make-instance* ’class (a b c) nil) ;; GOOD
(make-instance* ’class (when t nil)) ;; BAD
(make-instance* ’class () (when t nil)) ;; GOOD
Otherwise, the behavior is equivalent to ‘make-instance’.
Examples:
Shortcut args:
(make-instance* ’class (a b c))
=>
(make-instance ’class :a a :b b :c c)
Last form converted into ‘apply’ argument:
(make-instance* ’class :c c :b b (when something (list :a a)))
=>
(apply #’make-instance ’class :c c :b b (when something (list :a a)))
Shortcut arguments, regular arguments, and form for ‘apply’:
(make-instance* ’class (b c) :x x (when something (list :a a)))
=>
(apply #’make-instance ’class :b b :c c :x x (when something (list :a a)))
Form for ‘apply’ (notice the empty shortcuts—these are required for
unambiguous parsing):
(make-instance* ’class () (when something (list :a a)))
=>
(apply #’make-instance ’class (when something (list :a a)))
Regular ‘make-instance’-like use:
(make-instance* ’class :a a-value :b b-value)
=>
(make-instance ’class :a a-value :b b-value)
Return an accessor name transformer.
The unquoted ‘name’ symbol argument is substituted for the slot name.
Class option examples:
:accessor-name-transformer (make-name-transformer "FOO-" name "-BAR")
Use the slot name directly:
:accessor-name-transformer (make-name-transformer name)
Return predicate name that’s always suffixed with ’-p’.
Return an accessor name following the slot name NAME.
Converts the symbol to a keyword with the same name.
Return predicate name that’s suffixed with ’-p’ if NAME already contains a ’-’, or just ’p’ otherwise..
Converts illegal (list foo) :type declarations into simple list declarations.
Return type of INITFORM.
This is like ‘type-of’ but returns less specialized types for some common
subtypes, e.g. for "" return ’string instead of ‘(SIMPLE-ARRAY CHARACTER
(0))’.
Note that in a slot definition, ’() is inferred to be a list while NIL is
inferred to be a boolean.
If the slot is found in a finalized superclass, the inferred type is then that
of the superclass. If some superclass is not finalized, no type inference is
performed.
Non-basic form types are not inferred (returns nil).
Non-basic scalar types are derived to their own type (with ‘type-of’).
Return an accessor name using the slot name NAME suffixed with "-OF".
If the slot is a boolean not ending with a question mark, it is suffixed with "-P" instead.
If the slot ends with a question mark, the name is taken as is.
Return an accessor name using the slot name NAME suffixed with "-OF". If the slot is a boolean, it ensures the name is suffixed with "?".
Return predicate name that’s always suffixed with ’?’.
A package, or :slot-name means the home-package of the slot-name symbol and nil means *package*
A function that takes the class name and its definition as argument.
Return the name of the predicate function.
The predicate function returns true when the argument is a type of the ‘name’ class.
Function that returns the type of a slot definition (with an initform).
It takes 3 arguments:
- The initform.
- The slot name.
- The rest of the slot definition.
Convenience wrapper of ‘defclass’.
It automates a lot of boilerplate (like exporting all the accessors of a class)
plus adds some new features.
Slot options:
- The initform can be specified as the second value.
- ‘:accessor’, ‘:reader’ and ‘:writer’ can be set to either a name, NIL or T.
If NIL, the method is not generated.
If T, the method is generated using the ‘:accessor-name-transformer’ class option value.
- The ‘:export’ option allows to control the slot-name export on a per-slot basis.
New class options (defaults are NIL unless specified):
- ‘:slot-definition-transformer’ (default: ‘default-slot-definition-transformer’).
A function that takes a SLOT-DEFINITION and returns a new one.
- ‘:accessor-name-package’: The package of the generated accessors. See
‘:accessor-name-transformer’. Some special values are accepted:
- ‘:slot-name’: The package of the slot-name.
- ‘:default’: The current package.
- ‘:accessor-name-transformer’ (default ‘default-accessor-name-transformer’).
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the accessor
name (a symbol). Other transformer: ‘dwim-accessor-name-transformer’.
- ‘:automatic-accessors-p’: Whether to generate accessor names automatically for
all slots.
As a special case, the accessor is not generated if all following conditions are met:
- ‘:accessor-name-package’ is ‘:slot-name’,
- slot name package is different from current package,
- if the ‘:accessor’ slot option is not provided,
- ‘:initarg-name-transformer’ (default: ‘default-initarg-name-transformer’.)
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the accessor
name (a symbol.
- ‘:automatic-initargs-p’ (default: T): Whether to generate accessor names
automatically for all slots.
- ‘:predicate-name-transformer’ (default: ‘default-predicate-name-transformer’).
A function of (SLOT-NAME SLOT-DEFINITION) arguments that returns the predicate
name (a symbol).
- ‘:automatic-predicates-p’ (default: T): Whether to generate a predicate
for the class.
- ‘:type-inference’ (default: ‘default-type-inference’).
Function that returns the type of a slot definition (with an initform). It
takes 3 arguments:
- The initform.
- The slot name.
- The rest of the slot definition.
- ‘:automatic-types-p’: Whether to generate the type automatically for all
slots. The type can still be specified manually with the ‘:type’ slot option.
- Self-explanatory export options (all NIL by default):
- ‘:export-class-name-p’
- ‘:export-accessor-names-p’
- ‘:export-slot-names-p’
- ‘:export-predicate-name’
Removes the properties identified by KEYWORDS from PLACE.
Args are processed as parts of the result symbol with two exceptions except when a package is encountered then it is stored as the target package at intern.
Generalizes ARGLIST to be accepted by ‘defgeneric’ (3.4.2 of CLCS/CLHS). Removes all the default forms or specializers and removes all keyword arguments if &allow-other-keys is present.
Creates a copy of PLIST without the listed KEYWORDS.
simple-condition
.
style-warning
.
Jump to: | A B C D E F G M P Q R S |
---|
Jump to: | A B C D E F G M P Q R S |
---|
Jump to: | *
S |
---|
Jump to: | *
S |
---|
Jump to: | C D F H N P S |
---|
Jump to: | C D F H N P S |
---|