Commit 201cf829 authored by Marco Antoniotti's avatar Marco Antoniotti 💬
Browse files

Updated HTML documentation.

parent 89db285e
<head>
<title>
NEW: a new operator for Common Lisp
:
FUNCTION
compute-data-dimensions
</title>
<link rel="stylesheet" href="../helambdap.css" />
</head>
<body>
<h1>
<i>
Internal
Function
</i>
<strong>
compute-data-dimensions
</strong>
</h1>
<h2>
Package:
</h2>
<p>
IT.UNIMIB.DISCO.MA.CL.EXT.TAC.NEW-OP
</p>
<h2>
Syntax:
</h2>
<div>
<p>
<pre>
<strong style="color: red">compute-data-dimensions</strong> <i>DATA</i> <span style="color: blue">&OPTIONAL</span> <i>RANK</i> <i>ERROR-IF-UNEQUAL-P</i> &rarr; <i>result</i></pre>
</p>
</div>
<h3>
Arguments and Values:
</h3>
<ul style="list-style-type: none">
<li style="list-style-type: none">
<i>
<code>
DATA
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
RANK
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
ERROR-IF-UNEQUAL-P
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
NESTED-SEQUENCES
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
result
</code>
</i>
: a T.
</li>
</ul>
<h2>
Description:
</h2>
<p>
Computes the dimensions of DATA.
</p>
<p>
DATA is a sequence of nested sequences. RANK can be passed to limit
the depth of the reconstruction; if NIL (the default) the dimensions
are computed down to 'atoms'. ERROR-IF-UNEQUAL-P controls whether an
error is signalled if the shape of DATA is 'ragged'. An error is also
signalled if RANK is higher than the actual DATA rank.
</p>
</body>
\ No newline at end of file
<head>
<title>
NEW: a new operator for Common Lisp
:
FUNCTION
copy-hash-table
</title>
<link rel="stylesheet" href="../helambdap.css" />
</head>
<body>
<h1>
<i>
Internal
Function
</i>
<strong>
copy-hash-table
</strong>
</h1>
<h2>
Package:
</h2>
<p>
IT.UNIMIB.DISCO.MA.CL.EXT.TAC.NEW-OP
</p>
<h2>
Syntax:
</h2>
<div>
<p>
<pre>
<strong style="color: red">copy-hash-table</strong> <i>HT</i> &rarr; <i>result</i></pre>
</p>
</div>
<h3>
Arguments and Values:
</h3>
<ul style="list-style-type: none">
<li style="list-style-type: none">
<i>
<code>
HT
</code>
</i>
:
a
HASH-TABLE
</li>
<li style="list-style-type: none">
<i>
<code>
result
</code>
</i>
: a T.
</li>
</ul>
<h2>
Description:
</h2>
<p>
Copies and HASH-TABLE.
</p>
<p>
This function is implementation dependent. The basic behavior
provided just copies an hash-table with the standard components.
</p>
</body>
\ No newline at end of file
<head>
<title>
NEW: a new operator for Common Lisp
:
FUNCTION
register-structure-constructor
</title>
<link rel="stylesheet" href="../helambdap.css" />
</head>
<body>
<h1>
<i>
Function
</i>
<strong>
register-structure-constructor
</strong>
</h1>
<h2>
Package:
</h2>
<p>
IT.UNIMIB.DISCO.MA.CL.EXT.TAC.NEW-OP
</p>
<h2>
Syntax:
</h2>
<div>
<p>
<pre>
<strong style="color: red">register-structure-constructor</strong> <i>SC</i> <i>CONSTRUCTOR</i> &rarr; <i>result</i></pre>
</p>
</div>
<h3>
Arguments and Values:
</h3>
<ul style="list-style-type: none">
<li style="list-style-type: none">
<i>
<code>
SC
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
CONSTRUCTOR
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
result
</code>
</i>
: a T.
</li>
</ul>
<h2>
Description:
</h2>
<p>
Registers CONSTRUCTOR for structure class SC.
</p>
<p>
The CONSTRUCTOR will then be available to NEW whenever a SC needs to be
created.
</p>
</body>
\ No newline at end of file
<head>
<title>
NEW: a new operator for Common Lisp
:
Generic Function
new
</title>
<link rel="stylesheet" href="../helambdap.css" />
</head>
<body>
<h1>
<i>
Generic Function
</i>
<strong>
new
</strong>
</h1>
<h2>
Package:
</h2>
<p>
IT.UNIMIB.DISCO.MA.CL.EXT.TAC.NEW-OP
</p>
<h2>
Syntax:
</h2>
<p>
<pre>
<span style="color: red"><strong>new</strong></span> <i>WHAT</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i>
&rarr; <i>result</i></pre>
</p>
<h3>
Arguments and Values:
</h3>
<ul style="list-style-type: none">
<li style="list-style-type: none">
<i>
<code>
WHAT
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
ARGUMENTS
</code>
</i>
:
a
T
</li>
<li style="list-style-type: none">
<i>
<code>
result
</code>
</i>
: a T.
</li>
</ul>
<h2>
Description:
</h2>
<p>
Generic 'construction' function.
</p>
<p>
The NEW generic function is a single entry point for MAKE-INSTANCE,
DEFSTRUCT and other constructors, e.g., for HASH-TABLEs and ARRAYs.
</p>
<p>
Methods for NEW can be defined specialized for new classes.
Structure classes need to register their constuctor; see
REGISTER-STRUCTURE-CONSTRUCTOR. Compound type specifiers must be
specialized by defining methods for TYPE-CONS.
</p>
<div>
<h2>
Known Documented Methods:
</h2>
<ol>
<li>
<p>
<pre>
<strong>new</strong> <i>&lt;SYMBOL&gt;</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
SYMBOL Method.
</p>
<p>
Dispatches on the class named by the argument.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>&lt;STANDARD-CLASS&gt;</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
STANDARD-CLASS Method.
</p>
<p>
Applies MAKE-INSTANCE to the class and ARGUMENTS. This method is, to
all effects, MAKE-INSTANCE in disguise.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>&lt;STRUCTURE-CLASS&gt;</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
STRUCTURE-CLASS Method.
</p>
<p>
Applies the constructor of the STRUCTURE-CLASS to the ARGUMENTS. The
constructor must have been registered with
REGISTER-STRUCTURE-CONSTRUCTOR to be applicable.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>&lt;BUILT-IN-CLASS&gt;</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
BUILT-IN-CLASS Method.
</p>
<p>
Signals an 'undefined' error. This method is a sink for the
built-in classes which do not have a specialized method built with EQL.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> :AROUND <i>&lt;CLASS&gt;</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
CLASS Around Method.
</p>
<p>
This method helps dealing with some of the vagaries of the CL type
system, e.g., COMPLEX and RATIONAL types with their relationship.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE ARRAY)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
ARRAY Method.
</p>
<p>
Calls MAKE-ARRAY after having manipulated the ARGUMENTS.
The 'bare' constructor for objects of 'type' ARRAY actually behaves
as having the following simple syntax:
<pre>
new 'array &optional INITIAL-CONTENTS &rest MAKE-ARRAY-keywords
</pre>
I.e., the constructor figures out the dimensions of the
INITIAL-CONTENTS before dispatching to MAKE-ARRAY.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE VECTOR)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
VECTOR Method.
</p>
<p>
Applies the function VECTOR to the ARGUMENTS.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE STRING)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
STRING Method.
</p>
<p>
Applies the function STRING to the first of ARGUMENTS.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE LIST)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
LIST Method.
</p>
<p>
Applies the function VECTOR to the ARGUMENTS.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE CHARACTER)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
CHARACTER Method.
</p>
<p>
Applies the function CHARACTER to the first of ARGUMENTS.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE SYMBOL)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
SYMBOL Method.
</p>
<p>
The SYMBOL method has the following syntax.
<pre>
new 'symbol S &optional (PACKAGE *PACKAGE*) COPY-PROPERTIES
</pre>
S can be a STRING or a SYMBOL. If it is a SYMBOL, S is first copied,
using COPY-SYMBOL and COPY-PROPERTIES (cfr., COPY-SYMBOL in the CL
Standard). If S is a STRING then MAKE-SYMBOL is initially called. If
PACKAGE is NIL then a fresh, uninterned symbol is returned, otherwise
the resulting symbol is IMPORTed in PACKAGE.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE PATHNAME)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
PATHNAME Method.
</p>
<p>
The PATHNAME method dispatches on the first element of ARGUMENTS. If
it is a KEYWORD, it assumes that MAKE-PATHNAME is to be called,
applied to all the ARGUMENTS.
Otherwise it checks whether the first of ARGUMENTS ia a STRING, a
STREAM or a PATHNAME, in which case is passes it to the function
PATHNAME.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE NUMBER)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
NUMBER Method.
</p>
<p>
The NUMBER method just checks that the argument is a number and
returns it.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE COMPLEX)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
COMPLEX Method.
</p>
<p>
The COMPLEX method applies the function COMPLEX to the arguments.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL (FIND-CLASS (QUOTE HASH-TABLE)))</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
HASH-TABLE Method.
</p>
<p>
The HASH-TABLE method admits a non-traditional syntax. It can be
invoked in two forms.
<pre>
new 'HASH-TABLE
&optional PAIRS
&rest HASH-TABLE-STANDARD-ARGS
&key &allow-other-keys
</pre>
or
<pre>
new 'HASH-TABLE
&rest HASH-TABLE-STANDARD-ARGS
&key &allow-other-keys
</pre>
</p>
<p>
I.e., it dispatches on the first of the ARGUMENTS to decide whether it
also has to 'fill' the newly created hash table; in this last case, it
behaves as a 'copy' constructor. If the first of the ARGUMENTS is a
hash-table, the keywords are ignored. If it is a keyword then it is
assumed that the call must resolve to a simple call to
MAKE-HASH-TABLE. Otherwise, <pairs> must be an A-LIST of pairs
<pre>
(key . value)
</pre>
which are then fed into the newly created hash-table.
</p>
<p>
The result is an hash table.
</p>
</p>
</li>
<li>
<p>
<pre>
<strong>new</strong> <i>(EQL 'HASH-SET)</i> <span style="color: blue">&REST</span> <i>ARGUMENTS</i> &rarr; <i>result</i></pre>
</p>
<p>
<p>
HASH-SET Method.
</p>