389 lines
23 KiB
HTML
389 lines
23 KiB
HTML
<!-- Common Lisp HyperSpec (TM), version 7.0 generated by Kent M. Pitman on Mon, 11-Apr-2005 2:31am EDT -->
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>CLHS: Issue CHARACTER-PROPOSAL Writeup</TITLE>
|
|
<LINK HREF="../Data/clhs.css" REL="stylesheet" TYPE="text/css" />
|
|
<META HTTP-EQUIV="Author" CONTENT="Kent M. Pitman">
|
|
<META HTTP-EQUIV="Organization" CONTENT="LispWorks Ltd.">
|
|
<LINK REL=TOP HREF="../Front/index.htm">
|
|
<LINK REL=COPYRIGHT HREF="../Front/Help.htm#Legal">
|
|
<LINK REL=DISCLAIMER HREF="../Front/Help.htm#Disclaimer">
|
|
<LINK REL=PREV HREF="../Issues/iss025_w.htm">
|
|
<LINK REL=UP HREF="../Issues/iss026_m.htm">
|
|
<LINK REL=NEXT HREF="../Issues/iss046_w.htm">
|
|
</HEAD>
|
|
<BODY>
|
|
<H1><A REV=MADE HREF="http://www.lispworks.com/"><IMG WIDTH=80 HEIGHT=65 ALT="[LISPWORKS]" SRC="../Graphics/LWSmall.gif" ALIGN=Bottom></A><A REL=TOP HREF="../Front/index.htm"><IMG WIDTH=237 HEIGHT=65 ALT="[Common Lisp HyperSpec (TM)]" SRC="../Graphics/CLHS_Sm.gif" ALIGN=Bottom></A> <A REL=PREV HREF="../Issues/iss025_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Previous]" SRC="../Graphics/Prev.gif" ALIGN=Bottom></A><A REL=UP HREF="../Issues/iss026_m.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Up]" SRC="../Graphics/Up.gif" ALIGN=Bottom></A><A REL=NEXT HREF="../Issues/iss046_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Next]" SRC="../Graphics/Next.gif" ALIGN=Bottom></A></H1>
|
|
|
|
<HR>
|
|
|
|
|
|
|
|
<H2>Issue CHARACTER-PROPOSAL Writeup</H2>
|
|
|
|
<PRE>This is KMP's plain-text transcription of the issues which comprise<P>
|
|
the Character Proposal. This isn't what was voted on, but it may be<P>
|
|
easier to use than the one that was, since it's not full of TeX codes.<P>
|
|
================================================================================<P>
|
|
<P>
|
|
Proposal 2.0.1: [Passed 03/89]<P>
|
|
<P>
|
|
The terminology introduced in this proposal will be included<P>
|
|
in the language specification at the discretion of the editor.<P>
|
|
<P>
|
|
Proposal 2.1.1: [Alternative A, Passed as Modified 03/89]<P>
|
|
<P>
|
|
Remove all discussion of attributes from<P>
|
|
the language specification. Add the following discussion:<P>
|
|
``Earlier versions of Common LISP incorporated FONT and BITS as<P>
|
|
attributes of character objects. These and other supported<P>
|
|
attributes are considered implementation-defined attributes and<P>
|
|
if supported by an implementation effect the action of selected<P>
|
|
functions.''<P>
|
|
All types, constants and functions dealing with the BITS and<P>
|
|
FONT attributes are either removed or modified as follows:<P>
|
|
<P>
|
|
* Modify CHAR-=: If two characters differ in any implementation-defined<P>
|
|
attributes, then they are not CHAR-=.<P>
|
|
<P>
|
|
* Modify CHAR-<: If two characters have identical implementation-defined<P>
|
|
attributes, then their ordering by <A REL=DEFINITION HREF="../Body/f_chareq.htm#charLT"><B>CHAR<</B></A> is consistent with the<P>
|
|
numerical ordering by the predicate < on their code. (Similarly for<P>
|
|
<A REL=DEFINITION HREF="../Body/f_chareq.htm#charGT"><B>CHAR></B></A>, <A REL=DEFINITION HREF="../Body/f_chareq.htm#charGTEQ"><B>CHAR>=</B></A> and <A REL=DEFINITION HREF="../Body/f_chareq.htm#charLTEQ"><B>CHAR<=</B></A>.)<P>
|
|
<P>
|
|
* Modify CHAR-EQUAL: The effect, if any, on <A REL=DEFINITION HREF="../Body/f_chareq.htm#char-equal"><B>CHAR-EQUAL</B></A> of each <P>
|
|
implementation-defined attribute has to be specified as part of the<P>
|
|
definition of that attribute (and similarly for <A REL=DEFINITION HREF="../Body/f_chareq.htm#char-not-equal"><B>CHAR-NOT-EQUAL</B></A>,<P>
|
|
<A REL=DEFINITION HREF="../Body/f_chareq.htm#char-lessp"><B>CHAR-LESSP</B></A>, <A REL=DEFINITION HREF="../Body/f_chareq.htm#char-greaterp"><B>CHAR-GREATERP</B></A>, <A REL=DEFINITION HREF="../Body/f_chareq.htm#char-not-greaterp"><B>CHAR-NOT-GREATERP</B></A>, <A REL=DEFINITION HREF="../Body/f_chareq.htm#char-not-lessp"><B>CHAR-NOT-LESSP</B></A>).<P>
|
|
<P>
|
|
* Modify <A REL=DEFINITION HREF="../Body/f_char_u.htm#char-upcase"><B>CHAR-UPCASE</B></A> and CHAR-DOWNCASE: The effect of <A REL=DEFINITION HREF="../Body/f_char_u.htm#char-upcase"><B>CHAR-UPCASE</B></A> and<P>
|
|
<A REL=DEFINITION HREF="../Body/f_char_u.htm#char-downcase"><B>CHAR-DOWNCASE</B></A> is to preserve implementation-defined attributes.<P>
|
|
<P>
|
|
* Modify READ: It is implementation dependent which attributes are<P>
|
|
removed from symbol names. It is implementation dependent which<P>
|
|
attributes are removed from characters within double quotes.<P>
|
|
<P>
|
|
* Modify INTERN: It is implementation dependent which <P>
|
|
implementation-defined attributes are removed. <P>
|
|
<P>
|
|
* Modify DIGIT-CHAR: remove the optional FONT argument.<P>
|
|
<P>
|
|
* Modify CODE-CHAR: remove the optional FONT and <A REL=DEFINITION HREF="../Body/a_bit.htm#bit"><B>BIT</B></A> arguments.<P>
|
|
<P>
|
|
* Remove CHAR-FONT-LIMIT<P>
|
|
<P>
|
|
* Remove CHAR-BITS-LIMIT<P>
|
|
<P>
|
|
* Remove INT-CHAR<P>
|
|
<P>
|
|
* Remove <A REL=DEFINITION HREF="../Body/f_char_i.htm#char-int"><B>CHAR-INT</B></A><P>
|
|
<<This removal is later rescinded by 2.1.2. See below. -kmp 2-Aug-89>><P>
|
|
<P>
|
|
* Remove CHAR-BITS<P>
|
|
<P>
|
|
* Remove CHAR-FONT<P>
|
|
<P>
|
|
* Remove MAKE-CHAR<P>
|
|
<P>
|
|
* Remove CHAR-CONTROL-BIT<P>
|
|
<P>
|
|
* Remove CHAR-META-BIT<P>
|
|
<P>
|
|
* Remove CHAR-SUPER-BIT<P>
|
|
<P>
|
|
* Remove CHAR-HYPER-BIT<P>
|
|
<P>
|
|
* Remove CHAR-BIT<P>
|
|
<P>
|
|
* Remove SET-CHAR-BIT<P>
|
|
<P>
|
|
* Remove STRING-CHAR and STRING-CHAR-P<P>
|
|
<P>
|
|
* Modify readtable: If implementation-defined attributes are supported,<P>
|
|
an implementation need not (but may) allow for such characters to have<P>
|
|
syntax descriptions in the <A REL=DEFINITION HREF="../Body/t_rdtabl.htm#readtable"><B>readtable</B></A>. Otherwise, all characters are<P>
|
|
representable in the <A REL=DEFINITION HREF="../Body/t_rdtabl.htm#readtable"><B>readtable</B></A>.<P>
|
|
<P>
|
|
Proposal 2.1.2: [Alternative B, Passed as Modified 03/89]<P>
|
|
<P>
|
|
This is identical to all of Alternative A (above) except that the function<P>
|
|
<A REL=DEFINITION HREF="../Body/f_char_i.htm#char-int"><B>CHAR-INT</B></A> is retained. <A REL=DEFINITION HREF="../Body/f_char_i.htm#char-int"><B>CHAR-INT</B></A> returns a non-negative integer encoding the<P>
|
|
character object. The manner in which the integer is computed is <P>
|
|
implementation dependent. In contrast to <A REL=DEFINITION HREF="../Body/f_sxhash.htm#sxhash"><B>SXHASH</B></A>, the result is not<P>
|
|
guaranteed independent of the particular "incarnation" or "core image".<P>
|
|
<P>
|
|
Proposal 2.2.1: [Passed 03/89]<P>
|
|
<P>
|
|
The discussion of <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> characters is replaced by the following:<P>
|
|
<P>
|
|
Common LISP requires all implementations to support and document<P>
|
|
a <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>STANDARD</B></A> character subrepertoire. The Common LISP <A REL=DEFINITION HREF="../Body/07_ffb.htm#standard"><B>standard</B></A> character<P>
|
|
subrepertoire consists of a newline, #\Newline; the graphic space<P>
|
|
character #\Space; and the following additional ninety-four graphic<P>
|
|
characters or their equivalents:<P>
|
|
<P>
|
|
Note: #\Space and #\Newline are omitted. Graphic labels and <P>
|
|
descriptions are from ISO 6937/2. The first letter of the<P>
|
|
graphic Id categorizes the character as follows:<P>
|
|
L - Latin, N - Numeric, S - Special.<P>
|
|
<P>
|
|
Id Glyph Name or description Id Glyph Name or description<P>
|
|
<P>
|
|
LA01 a small a ND01 1 digit 1<P>
|
|
LA02 A capital A ND02 2 digit 2<P>
|
|
LB01 b small b ND03 3 digit 3<P>
|
|
LB02 B capital B ND04 4 digit 4<P>
|
|
LC01 c small c ND05 5 digit 5<P>
|
|
LC02 C capital C ND06 6 digit 6<P>
|
|
LD01 d small d ND07 7 digit 7<P>
|
|
LD02 D capital D ND08 8 digit 8<P>
|
|
LE01 e small e ND09 9 digit 9<P>
|
|
LE02 E capital E ND10 0 digit 0<P>
|
|
LF01 f small f SC03 $ dollar sign<P>
|
|
LF02 F capital F SP02 ! exclamation mark<P>
|
|
LG01 g small g SP04 " quotation mark<P>
|
|
LG02 G capital G SP05 ' apostrophe<P>
|
|
LH01 h small h SP06 ( left parenthesis<P>
|
|
LH02 H capital H SP07 ) right parenthesis<P>
|
|
LI01 i small i SP08 , comma<P>
|
|
LI02 I capital I SP09 _ low line<P>
|
|
LJ01 j small j SP10 - hyphen or minus sign<P>
|
|
LJ02 J capital J SP11 . full stop, period<P>
|
|
LK01 k small k SP12 / solidus<P>
|
|
LK02 K capital K SP13 : colon<P>
|
|
LL01 l small l SP14 ; semicolon<P>
|
|
LL02 L capital L SP15 ? question mark<P>
|
|
LM01 m small m SA01 + plus sign<P>
|
|
LM02 M capital M SA03 < less-than sign<P>
|
|
LN01 n small n SA04 = equals sign<P>
|
|
LN02 N capital N SA05 > greater-than sign<P>
|
|
LO01 o small o SM01 # number sign<P>
|
|
LO02 O capital O SM02 % percent sign<P>
|
|
LP01 p small p SM03 & ampersand<P>
|
|
LP02 P capital P SM04 * asterisk<P>
|
|
LQ01 q small q SM05 @ commercial at<P>
|
|
LQ02 Q capital Q SM06 [ left square bracket<P>
|
|
LR01 r small r SM07 \ reverse solidus<P>
|
|
LR02 R capital R SM08 ] right square bracket<P>
|
|
LS01 s small s SM11 { left curly bracket<P>
|
|
LS02 S capital S SM13 | vertical bar<P>
|
|
LT01 t small t SM14 } right curly bracket<P>
|
|
LT02 T capital T SD13 ` grave accent<P>
|
|
LU01 u small u SD15 ^ circumflex accent<P>
|
|
LU02 U capital U SD19 ~ tilde<P>
|
|
LV01 v small v<P>
|
|
LV02 V capital V<P>
|
|
LW01 w small w<P>
|
|
LW02 W capital W<P>
|
|
LX01 x small x<P>
|
|
LX02 X capital X<P>
|
|
LY01 y small y<P>
|
|
LY02 Y capital Y<P>
|
|
LZ01 z small z<P>
|
|
LZ02 Z capital Z<P>
|
|
<P>
|
|
Proposal 2.3.1: [Passed as Modified 03/89]<P>
|
|
<P>
|
|
The following type definitions are added:<P>
|
|
<P>
|
|
Define BASE-CHARACTER as (<A REL=DEFINITION HREF="../Body/f_upgr_1.htm#upgraded-array-element-type"><B>UPGRADED-ARRAY-ELEMENT-TYPE</B></A> '<A REL=DEFINITION HREF="../Body/t_std_ch.htm#standard-char"><B>STANDARD-CHAR</B></A>)<P>
|
|
and EXTENDED-CHARACTER as type (<A REL=DEFINITION HREF="../Body/a_and.htm#and"><B>AND</B></A> <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A> (<A REL=DEFINITION HREF="../Body/a_not.htm#not"><B>NOT</B></A> BASE-CHARACTER)).<P>
|
|
Characters of type BASE-CHARACTER are referred to as ``base characters''.<P>
|
|
Characters of type EXTENDED-CHARACTER are referred to as <P>
|
|
``extended characters.''<P>
|
|
<P>
|
|
Proposal 2.3.2: [Passed 03/89]<P>
|
|
<P>
|
|
The <A REL=DEFINITION HREF="../Body/a_string.htm#string"><B>STRING</B></A> type is defined as a union type. More precisely, a string<P>
|
|
is a specialized vector whose elements are of type <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A> or a<P>
|
|
subtype of <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A>. <A REL=DEFINITION HREF="../Body/a_string.htm#string"><B>STRING</B></A> used as a type specifier for object <P>
|
|
creation means (<A REL=DEFINITION HREF="../Body/a_vector.htm#vector"><B>VECTOR</B></A> <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A>).<P>
|
|
<P>
|
|
Proposal 2.3.3: [Passed as Modified 03/89]<P>
|
|
<P>
|
|
The following string subtypes are distinguished with standardized names.<P>
|
|
* <A REL=DEFINITION HREF="../Body/t_base_s.htm#base-string"><B>BASE-STRING</B></A> is equivalent to (<A REL=DEFINITION HREF="../Body/a_vector.htm#vector"><B>VECTOR</B></A> BASE-CHARACTER).<P>
|
|
Strings of type <A REL=DEFINITION HREF="../Body/t_base_s.htm#base-string"><B>BASE-STRING</B></A> are referred to as ``base strings.''<P>
|
|
* <A REL=DEFINITION HREF="../Body/t_base_s.htm#base-string"><B>BASE-STRING</B></A> is valid as a type specifier that abbreviates.<P>
|
|
<P>
|
|
Proposal 2.3.4: [Passed as Modified 03/89]<P>
|
|
<P>
|
|
Define <A REL=DEFINITION HREF="../Body/t_smp_st.htm#simple-string"><B>SIMPLE-STRING</B></A> as a union type. A simple string is a specialized<P>
|
|
simple one dimensional array whose elements are of type <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A> or a<P>
|
|
subtype of <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A>. <A REL=DEFINITION HREF="../Body/t_smp_st.htm#simple-string"><B>SIMPLE-STRING</B></A> used as a type specifier for object<P>
|
|
creation means (<A REL=DEFINITION HREF="../Body/t_smp_ar.htm#simple-array"><B>SIMPLE-ARRAY</B></A> <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A> size).<P>
|
|
<P>
|
|
Proposal 2.3.5: [Passed as Modified 03/89]<P>
|
|
<P>
|
|
The following simple string subtypes are distinguished with standardized<P>
|
|
names:<P>
|
|
* <A REL=DEFINITION HREF="../Body/t_smp_ba.htm#simple-base-string"><B>SIMPLE-BASE-STRING</B></A> is equivalent to (<A REL=DEFINITION HREF="../Body/t_smp_ar.htm#simple-array"><B>SIMPLE-ARRAY</B></A> BASE-CHARACTER (*)).<P>
|
|
<A REL=DEFINITION HREF="../Body/t_smp_ba.htm#simple-base-string"><B>SIMPLE-BASE-STRING</B></A> is a subtype of <A REL=DEFINITION HREF="../Body/t_base_s.htm#base-string"><B>BASE-STRING</B></A>.<P>
|
|
* <A REL=DEFINITION HREF="../Body/t_smp_ba.htm#simple-base-string"><B>SIMPLE-BASE-STRING</B></A> is valid as a type specifier that abbreviates.<P>
|
|
<P>
|
|
Proposal 2.3.6: [Passed 03/89]<P>
|
|
<P>
|
|
Extend the <A REL=DEFINITION HREF="../Body/f_mk_stg.htm#make-string"><B>MAKE-STRING</B></A> function to allow an ELEMENT-TYPE keyword argument:<P>
|
|
* <A REL=DEFINITION HREF="../Body/f_mk_stg.htm#make-string"><B>MAKE-STRING</B></A> size <A REL=DEFINITION HREF="../Body/03_da.htm#AMkey"><B>&KEY</B></A> :initial-element :element-type [Function]<P>
|
|
This returns a simple string of length SIZE, each of whose characters<P>
|
|
has been initialized to the :INITIAL-ELEMENT argument. If an<P>
|
|
:INITIAL-ELEMENT argument is not specified, then the string will be<P>
|
|
initialized in an implementation-dependent way. The :ELEMENT-TYPE<P>
|
|
argument names the type of the elements of the string; a string is<P>
|
|
constructed of the most specialized type that can accommodate elements<P>
|
|
of the given type. If :ELEMENT-TYPE is omitted, the type <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A><P>
|
|
is the default.<P>
|
|
<P>
|
|
Proposal 2.4.1: [Passed 03/89]<P>
|
|
<P>
|
|
Common LISP character codes are composed from a character script and<P>
|
|
a character label. The convention by which a character label and<P>
|
|
character script compose a character code is implementation dependent.<P>
|
|
<P>
|
|
Proposal 2.4.2: [Passed as Modified 06/89]<P>
|
|
<P>
|
|
An implementation must document the scripts it supports. For each script<P>
|
|
supported the documentation must include at least the following:<P>
|
|
<P>
|
|
* Character Labels, Glyphs, and Descriptions. Character labels must<P>
|
|
be uniquely named using only Latin capital letters A-Z, hyphen and<P>
|
|
digits 0-9.<P>
|
|
<P>
|
|
* Effect of <A REL=DEFINITION HREF="../Body/f_char_u.htm#char-upcase"><B>CHAR-UPCASE</B></A> and <A REL=DEFINITION HREF="../Body/f_char_u.htm#char-downcase"><B>CHAR-DOWNCASE</B></A>.<P>
|
|
<P>
|
|
* Reader canonicalization and format directives.<P>
|
|
Note: Any mechanisms by which the <A REL=DEFINITION HREF="../Body/f_rd_rd.htm#read"><B>READ</B></A> function treats distinct<P>
|
|
characters as equivalent.<P>
|
|
<P>
|
|
* Effect of character predicates. In particular,<P>
|
|
- <A REL=DEFINITION HREF="../Body/f_chareq.htm#char-equal"><B>CHAR-EQUAL</B></A> and other case-insensitive character predicates.<P>
|
|
- <A REL=DEFINITION HREF="../Body/f_alpha_.htm#alpha-char-p"><B>ALPHA-CHAR-P</B></A><P>
|
|
- <A REL=DEFINITION HREF="../Body/f_upper_.htm#lower-case-p"><B>LOWER-CASE-P</B></A><P>
|
|
- <A REL=DEFINITION HREF="../Body/f_upper_.htm#upper-case-p"><B>UPPER-CASE-P</B></A><P>
|
|
- <A REL=DEFINITION HREF="../Body/f_upper_.htm#both-case-p"><B>BOTH-CASE-P</B></A><P>
|
|
- <A REL=DEFINITION HREF="../Body/f_graphi.htm#graphic-char-p"><B>GRAPHIC-CHAR-P</B></A><P>
|
|
- <A REL=DEFINITION HREF="../Body/f_alphan.htm#alphanumericp"><B>ALPHANUMERICP</B></A><P>
|
|
<P>
|
|
* Interaction with File I/O. In particular, the coded character<P>
|
|
sets (e.g., ISO8859/1-1987) and external encoding schemes <P>
|
|
supported are documented.<P>
|
|
<P>
|
|
Proposal 2.4.3: [Passed as Modified 06/89]<P>
|
|
<P>
|
|
Every character repertoire name is a type specifier and a subtype of<P>
|
|
type <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A>.<P>
|
|
<P>
|
|
Proposal 2.5.2: [Passed as Modified 06/89]<P>
|
|
<P>
|
|
Add an additional keyword argument to <A REL=DEFINITION HREF="../Body/f_open.htm#open"><B>OPEN</B></A> and a new function to query<P>
|
|
external file format:<P>
|
|
<P>
|
|
* :EXTERNAL-FORMAT keyword argument on <A REL=DEFINITION HREF="../Body/f_open.htm#open"><B>OPEN</B></A> which specifies an <P>
|
|
implementation recognized scheme for representing characters in files.<P>
|
|
<P>
|
|
The default value is :DEFAULT and is implementation defined but must<P>
|
|
support the base characters.<P>
|
|
<P>
|
|
If the argument is not recognized by the implementation, an error is<P>
|
|
signalled. This argument is provided for input, output, and bidirectional<P>
|
|
streams. It is an error to write a character which cannot be represented<P>
|
|
using the given file format. (This excludes the #\Newline character.<P>
|
|
Implementations must <A REL=DEFINITION HREF="../Body/f_provid.htm#provide"><B>provide</B></A> appropriate line division behavior for all<P>
|
|
character streams.)<P>
|
|
<P>
|
|
* <A REL=DEFINITION HREF="../Body/f_stm_ex.htm#stream-external-format"><B>STREAM-EXTERNAL-FORMAT</B></A> stream [Function]<P>
|
|
<P>
|
|
<A REL=DEFINITION HREF="../Body/f_stm_ex.htm#stream-external-format"><B>STREAM-EXTERNAL-FORMAT</B></A> returns the implementation recognized format of<P>
|
|
the specified file.<P>
|
|
<P>
|
|
Proposal 2.5.4: [Alternative A, Passed 06/89]<P>
|
|
<P>
|
|
The default for the :ELEMENT-TYPE argument of <A REL=DEFINITION HREF="../Body/f_open.htm#open"><B>OPEN</B></A> is <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A>.<P>
|
|
<P>
|
|
Proposal 2.5.6: [Passed as Modified 06/89]<P>
|
|
<P>
|
|
Modify the following functions:<P>
|
|
<P>
|
|
* <A REL=DEFINITION HREF="../Body/m_w_out_.htm#with-output-to-string"><B>WITH-OUTPUT-TO-STRING</B></A>. A new keyword argument :ELEMENT-TYPE is added<P>
|
|
which defaults to <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A>. If a string argument is provided, the<P>
|
|
:ELEMENT-TYPE argument is ignored. A string argument of <A REL=DEFINITION HREF="../Body/a_nil.htm#nil"><B>NIL</B></A> means<P>
|
|
no initial string argument is provided. If no string argument is<P>
|
|
provided, produces a stream that accepts all characters of the<P>
|
|
indicated type and returns a string of the indicated element type.<P>
|
|
<P>
|
|
* <A REL=DEFINITION HREF="../Body/f_mk_s_2.htm#make-string-output-stream"><B>MAKE-STRING-OUTPUT-STREAM</B></A>. A new keyword argument :ELEMENT-TYPE is<P>
|
|
added which defaults to <A REL=DEFINITION HREF="../Body/a_ch.htm#character"><B>CHARACTER</B></A>. <A REL=DEFINITION HREF="../Body/f_mk_s_2.htm#make-string-output-stream"><B>MAKE-STRING-OUTPUT-STREAM</B></A> returns<P>
|
|
an output stream that accepts all characters of the indicated type<P>
|
|
and returns (via <A REL=DEFINITION HREF="../Body/f_get_ou.htm#get-output-stream-string"><B>GET-OUTPUT-STREAM-STRING</B></A>) a string of the indicated<P>
|
|
type.<P>
|
|
<P>
|
|
Proposal 2.5.7: [Passed as Modified 06/89]<P>
|
|
<P>
|
|
Add the following function:<P>
|
|
* <A REL=DEFINITION HREF="../Body/f_file_s.htm#file-string-length"><B>FILE-STRING-LENGTH</B></A> <A REL=DEFINITION HREF="../Body/t_file_s.htm#file-stream"><B>file-stream</B></A> object [Function]<P>
|
|
<P>
|
|
<A REL=DEFINITION HREF="../Body/f_file_s.htm#file-string-length"><B>FILE-STRING-LENGTH</B></A> returns a non-negative integer which represents<P>
|
|
the difference between what (<A REL=DEFINITION HREF="../Body/f_file_p.htm#file-position"><B>FILE-POSITION</B></A> <A REL=DEFINITION HREF="../Body/t_file_s.htm#file-stream"><B>file-stream</B></A>) would be<P>
|
|
after writing the OBJECT and its current value, or <A REL=DEFINITION HREF="../Body/a_nil.htm#nil"><B>NIL</B></A> if this cannot<P>
|
|
be determined. OBJECT must be a string or character.<P>
|
|
<P>
|
|
This return value depends on the current state of the stream, that<P>
|
|
is, two calls to <A REL=DEFINITION HREF="../Body/f_file_s.htm#file-string-length"><B>FILE-STRING-LENGTH</B></A> with the same stream and object<P>
|
|
may return different values.<P>
|
|
<P>
|
|
<P>
|
|
Misc effects on CLtL...<P>
|
|
<P>
|
|
Proposal 2.6.1: [Passed 03/89]<P>
|
|
<P>
|
|
Chapter 2 Data Types (Page 12)<P>
|
|
<P>
|
|
Replace:<P>
|
|
provides for a<P>
|
|
rich character set, including ways to represent characters of various<P>
|
|
type styles.<P>
|
|
with:<P>
|
|
provides support for international language characters as well<P>
|
|
as characters used in specialized arenas, eg. mathematics.<P>
|
|
<P>
|
|
Proposal 2.6.2: [Passed as Modified 03/89]<P>
|
|
<P>
|
|
Chapter 2 Symbols (Page 25)<P>
|
|
<P>
|
|
Clarify:<P>
|
|
A symbol may have any character in its print name.<P>
|
|
<P>
|
|
Proposal 2.6.3: [Passed 03/89]<P>
|
|
<P>
|
|
Chapter 10 Symbols (Page 163)<P>
|
|
<P>
|
|
Replace:<P>
|
|
It is ordinarily not permitted to alter a symbol's print name.<P>
|
|
with:<P>
|
|
It is an error to alter a symbol's print name.<P>
|
|
<P>
|
|
Proposal 2.6.4: [Passed 03/89]<P>
|
|
<P>
|
|
Chapter 10 The Print Name (Page 168)<P>
|
|
<P>
|
|
Replace:<P>
|
|
It is an extremely bad idea to modify a string being used<P>
|
|
as the print name of a symbol.<P>
|
|
with:<P>
|
|
It is an error to modify a string being used<P>
|
|
as the print name of a symbol.<P>
|
|
<P>
|
|
Proposal 2.6.5: [Passed 03/89]<P>
|
|
<P>
|
|
Chapter 14 Simple Sequence Functions (Page 249, <A REL=DEFINITION HREF="../Body/f_mk_seq.htm#make-sequence"><B>make-sequence</B></A>)<P>
|
|
<P>
|
|
Append:<P>
|
|
If type <A REL=DEFINITION HREF="../Body/a_string.htm#string"><B>STRING</B></A> is specified, the result is equivalent to <A REL=DEFINITION HREF="../Body/f_mk_stg.htm#make-string"><B>MAKE-STRING</B></A>.<P>
|
|
</PRE>
|
|
<HR>
|
|
|
|
<A REL=NAVIGATOR HREF="../Front/StartPts.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Starting Points]" SRC="../Graphics/StartPts.gif" ALIGN=Bottom></A><A REL=TOC HREF="../Front/Contents.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Contents]" SRC="../Graphics/Contents.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Master.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Index]" SRC="../Graphics/Index.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Symbol.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Symbols]" SRC="../Graphics/Symbols.gif" ALIGN=Bottom></A><A REL=GLOSSARY HREF="../Body/26_a.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Glossary]" SRC="../Graphics/Glossary.gif" ALIGN=Bottom></A><A HREF="../Front/X3J13Iss.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Issues]" SRC="../Graphics/Issues.gif" ALIGN=Bottom></A><BR>
|
|
|
|
<A REL=COPYRIGHT HREF="../Front/Help.htm#Legal"><I>Copyright 1996-2005, LispWorks Ltd. All rights reserved.</I></A><P>
|
|
</BODY>
|
|
</HTML>
|