# HG changeset patch # User Glenn Morris # Date 1189051353 0 # Node ID 4f3c50f9c706dfef3b0982594c53e9535772213e # Parent 0dee775094d5079da186f6b4a11278435889b85a Move here from ../../lispintro/ diff -r 0dee775094d5 -r 4f3c50f9c706 doc/lispintro/cons-4.eps --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/lispintro/cons-4.eps Thu Sep 06 04:02:33 2007 +0000 @@ -0,0 +1,683 @@ +%! +%%BoundingBox: 6 681 355 758 +%%Title: cons-cell-diagram4 +%%CreationDate: Wed Mar 8 14:25:06 1995 +%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) +% +% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1 +% + +% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007 +% Free Software Foundation, Inc. +% +% This file is part of GNU Emacs. +% +% GNU Emacs is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 3, or (at your option) +% any later version. +% +% GNU Emacs is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with GNU Emacs; see the file COPYING. If not, write to +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. + +/tgifdict 132 dict def +tgifdict begin + +% +% Using a zero value radius for an ellipse or an arc would result +% in a non-invertible CTM matrix which causes problem when this +% when this PostScript is wrapped inside other routines, such as +% the multi.ps package from +% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such +% error by uncommenting the sole line of the procedure below: +% +/tgif_min_radius + { +% dup 0.01 lt { pop 0.01 } if + } bind def + +/tgifellipsedict 6 dict def +tgifellipsedict /mtrx matrix put + +/tgifellipse + { tgifellipsedict begin + /yrad exch def + /xrad exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y translate + xrad yrad scale + 0 0 1 0 360 arc + savematrix setmatrix + end + } def + +/tgifarrowtipdict 8 dict def +tgifarrowtipdict /mtrx matrix put + +/tgifarrowtip + { tgifarrowtipdict begin + /dy exch def + /dx exch def + /h exch def + /w exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y translate + dy dx atan rotate + 0 0 moveto + w neg h lineto + w neg h neg lineto + savematrix setmatrix + end + } def + +/tgifarcdict 8 dict def +tgifarcdict /mtrx matrix put + +/tgifarcn + { tgifarcdict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y translate + xrad yrad scale + 0 0 1 startangle endangle arc + savematrix setmatrix + end + } def + +/tgifarc + { tgifarcdict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y translate + xrad yrad scale + 0 0 1 startangle endangle arcn + savematrix setmatrix + end + } def + +/tgifsetuserscreendict 22 dict def +tgifsetuserscreendict begin + /tempctm matrix def + /temprot matrix def + /tempscale matrix def + + /concatprocs + { /proc2 exch cvlit def + /proc1 exch cvlit def + /newproc proc1 length proc2 length add array def + newproc 0 proc1 putinterval + newproc proc1 length proc2 putinterval + newproc cvx + } def + /resmatrix matrix def + /findresolution + { 72 0 resmatrix defaultmatrix dtransform + /yres exch def /xres exch def + xres dup mul yres dup mul add sqrt + } def +end + +/tgifsetuserscreen + { tgifsetuserscreendict begin + /spotfunction exch def + /screenangle exch def + /cellsize exch def + + /m tempctm currentmatrix def + /rm screenangle temprot rotate def + /sm cellsize dup tempscale scale def + + sm rm m m concatmatrix m concatmatrix pop + + 1 0 m dtransform /y1 exch def /x1 exch def + + /veclength x1 dup mul y1 dup mul add sqrt def + /frequency findresolution veclength div def + + /newscreenangle y1 x1 atan def + + m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt + + {{neg} /spotfunction load concatprocs + /spotfunction exch def + } if + + frequency newscreenangle /spotfunction load setscreen + end + } def + +/tgifsetpatterndict 18 dict def +tgifsetpatterndict begin + /bitison + { /ybit exch def /xbit exch def + /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def + + /mask 1 7 xbit 8 mod sub bitshift def + bytevalue mask and 0 ne + } def +end + +/tgifbitpatternspotfunction + { tgifsetpatterndict begin + /y exch def /x exch def + + /xindex x 1 add 2 div bpside mul cvi def + /yindex y 1 add 2 div bpside mul cvi def + + xindex yindex bitison + { /onbits onbits 1 add def 1 } + { /offbits offbits 1 add def 0 } + ifelse + end + } def + +/tgifsetpattern + { tgifsetpatterndict begin + /cellsz exch def + /angle exch def + /bwidth exch def + /bpside exch def + /bstring exch def + + /onbits 0 def /offbits 0 def + cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen + {} settransfer + offbits offbits onbits add div setgray + end + } def + +/tgifxpmdict 4 dict def +/tgifbwpicstr 1 string def +/tgifcolorpicstr 3 string def + +/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def + +/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def + +/tgifbwspot + { tgifxpmdict begin + /index exch def + tgifbwpicstr 0 + pixels index 3 mul 3 getinterval aload pop + 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add + cvi put + tgifbwpicstr + end + } def + +/tgifcolorspot + { tgifxpmdict begin + /index exch def + pixels index 3 mul 3 getinterval aload pop + 255 mul cvi tgifcolorpicstr 2 3 -1 roll put + 255 mul cvi tgifcolorpicstr 1 3 -1 roll put + 255 mul cvi tgifcolorpicstr 0 3 -1 roll put + tgifcolorpicstr + end + } def + +/tgifnewcolorspot + { tgifxpmdict begin + /index exch def + pixels index 3 mul 3 getinterval aload pop setrgbcolor + end + } def + +/tgifcolordict 4 dict def + +/colorimage where + { pop } + { /colorimage + { tgifcolordict begin + pop pop pop pop pop + /ih exch def + /iw exch def + /x 0 def + /y 0 def + 1 1 ih + { pop 1 1 iw + { pop currentfile + tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot + x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto + closepath fill + /x x 1 add def + } for + /y y 1 add def + /x 0 def + } for + end + } def + } ifelse + +/tgifpatdict 10 dict def + +/tgifpatbyte + { currentdict /retstr get exch + pat i cellsz mod get put + } def + +/tgifpatproc + { 0 1 widthlim {tgifpatbyte} for retstr + /i i 1 add def + } def + +/tgifpatfill + { tgifpatdict begin + /h exch def + /w exch def + /lty exch def + /ltx exch def + /cellsz exch def + /pat exch def + + /widthlim w cellsz div cvi 1 sub def + /retstr widthlim 1 add string def + /i 0 def + + ltx lty translate + w h true [1 0 0 1 0 0] {tgifpatproc} imagemask + ltx neg lty neg translate + end + } def + +/pat1 def +/pat2 <0000000000000000> def +/pat3 <8000000008000000> def +/pat4 <8800000022000000> def +/pat5 <8800220088002200> def +/pat6 <8822882288228822> def +/pat7 def +/pat8 <77dd77dd77dd77dd> def +/pat9 <77ffddff77ffddff> def +/pat10 <77ffffff77ffffff> def +/pat11 <7fffffff7fffffff> def +/pat12 <8040200002040800> def +/pat13 <40a00000040a0000> def +/pat14 def +/pat15 def +/pat16 def +/pat17 <038448300c020101> def +/pat18 <081c22c180010204> def +/pat19 <8080413e080814e3> def +/pat20 <8040201008040201> def +/pat21 <8844221188442211> def +/pat22 <77bbddee77bbddee> def +/pat23 def +/pat24 <7fbfdfeff7fbfdfe> def +/pat25 <3e1f8fc7e3f1f87c> def +/pat26 <0102040810204080> def +/pat27 <1122448811224488> def +/pat28 def +/pat29 <83070e1c3870e0c1> def +/pat30 def +/pat31 <7cf8f1e3c78f1f3e> def + +/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def + +/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def + +/tgifreencsmalldict 12 dict def +/tgifReEncodeSmall + { tgifreencsmalldict begin + /newcodesandnames exch def + /newfontname exch def + /basefontname exch def + + /basefontdict basefontname findfont def + /newfont basefontdict maxlength dict def + + basefontdict + { exch dup /FID ne + { dup /Encoding eq + { exch dup length array copy newfont 3 1 roll put } + { exch newfont 3 1 roll put } + ifelse + } + { pop pop } + ifelse + } + forall + + newfont /FontName newfontname put + newcodesandnames aload pop + + newcodesandnames length 2 idiv + { newfont /Encoding get 3 1 roll put} + repeat + + newfontname newfont definefont pop + end + } def + +/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def + +/tgifboxdict 6 dict def +/tgifboxstroke + { tgifboxdict begin + /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + 1.415 setmiterlimit + w 1 eq { w setlinewidth } if + pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if + newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath + pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse + pat pat1 ne pat pat2 ne and { grestore } if + w 1 eq { 1 setlinewidth } if + 1 setmiterlimit + end + } def +/tgifboxfill + { tgifboxdict begin + /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def + pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if + newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath + pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse + pat pat1 ne pat pat2 ne and { grestore } if + end + } def + +end + +%%PageBoundingBox: 6 681 355 758 +tgifdict begin +/tgifsavedpage save def + +1 setmiterlimit +1 setlinewidth + +0 setgray + +72 0 mul 72 11.00 mul translate +72 128 div 100 mul 100 div dup neg scale + +gsave + +% POLY/OPEN-SPLINE +gsave + newpath + 274 102 moveto + 274 134 lineto + stroke +grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 289 122 moveto + 0 56 atan dup cos 8 mul 345 exch sub + exch sin 8 mul 122 exch sub lineto + stroke +grestore +gsave + newpath + 345 122 8 3 56 0 tgifarrowtip + closepath fill +grestore + +% BOX +gsave + 1.415 setmiterlimit + newpath + 350 100 moveto 414 100 lineto 414 132 lineto 350 132 lineto + closepath stroke + 1 setmiterlimit +grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 382 100 moveto + 382 132 lineto + stroke +grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 397 114 moveto + 0 59 atan dup cos 8 mul 456 exch sub + exch sin 8 mul 114 exch sub lineto + stroke +grestore +gsave + newpath + 456 114 8 3 59 0 tgifarrowtip + closepath fill +grestore + +% TEXT +0 setgray +/Courier findfont [17 0 0 -17 0 0] makefont setfont + gsave + 430 170 moveto (violet) show + grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 366 116 moveto + 366 165 lineto + 0 48 atan dup cos 8 mul 414 exch sub + exch sin 8 mul 165 exch sub lineto + stroke +grestore +gsave + newpath + 414 165 8 3 48 0 tgifarrowtip + closepath fill +grestore + +% TEXT +0 setgray +/Courier findfont [17 0 0 -17 0 0] makefont setfont + gsave + 219 78 moveto (flowers) show + grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 298 73 moveto + 325 73 lineto + 325 111 lineto + 0 18 atan dup cos 8 mul 343 exch sub + exch sin 8 mul 111 exch sub lineto + stroke +grestore +gsave + newpath + 343 111 8 3 18 0 tgifarrowtip + closepath fill +grestore + +% BOX +gsave + 1.415 setmiterlimit + newpath + 459 95 moveto 523 95 lineto 523 127 lineto 459 127 lineto + closepath stroke + 1 setmiterlimit +grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 490 95 moveto + 490 127 lineto + stroke +grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 506 112 moveto + 0 48 atan dup cos 8 mul 554 exch sub + exch sin 8 mul 112 exch sub lineto + stroke +grestore +gsave + newpath + 554 112 8 3 48 0 tgifarrowtip + closepath fill +grestore + +% TEXT +0 setgray +/Courier findfont [17 0 0 -17 0 0] makefont setfont + gsave + 566 118 moveto (nil) show + grestore + +% TEXT +0 setgray +/Courier findfont [17 0 0 -17 0 0] makefont setfont + gsave + 538 151 moveto (buttercup) show + grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 474 109 moveto + 474 146 lineto + 0 48 atan dup cos 8 mul 522 exch sub + exch sin 8 mul 146 exch sub lineto + stroke +grestore +gsave + newpath + 522 146 8 3 48 0 tgifarrowtip + closepath fill +grestore + +% BOX +gsave + 1.415 setmiterlimit + newpath + 244 102 moveto 308 102 lineto 308 134 lineto 244 134 lineto + closepath stroke + 1 setmiterlimit +grestore + +% TEXT +0 setgray +/Courier findfont [17 0 0 -17 0 0] makefont setfont + gsave + 324 189 moveto (rose) show + grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 260 117 moveto + 260 184 lineto + 0 48 atan dup cos 8 mul 308 exch sub + exch sin 8 mul 184 exch sub lineto + stroke +grestore +gsave + newpath + 308 184 8 3 48 0 tgifarrowtip + closepath fill +grestore + +% BOX +gsave + 1.415 setmiterlimit + newpath + 146 101 moveto 210 101 lineto 210 133 lineto 146 133 lineto + closepath stroke + 1 setmiterlimit +grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 177 101 moveto + 177 133 lineto + stroke +grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 193 118 moveto + 0 48 atan dup cos 8 mul 241 exch sub + exch sin 8 mul 118 exch sub lineto + stroke +grestore +gsave + newpath + 241 118 8 3 48 0 tgifarrowtip + closepath fill +grestore + +% TEXT +0 setgray +/Courier findfont [17 0 0 -17 0 0] makefont setfont + gsave + 187 178 moveto (lily) show + grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 163 118 moveto + 163 171 lineto + 0 18 atan dup cos 8 mul 181 exch sub + exch sin 8 mul 171 exch sub lineto + stroke +grestore +gsave + newpath + 181 171 8 3 18 0 tgifarrowtip + closepath fill +grestore + +% TEXT +0 setgray +/Courier findfont [17 0 0 -17 0 0] makefont setfont + gsave + 16 78 moveto (bouquet) show + grestore + +% POLY/OPEN-SPLINE +gsave + newpath + 95 73 moveto + 122 73 lineto + 122 111 lineto + 0 18 atan dup cos 8 mul 140 exch sub + exch sin 8 mul 111 exch sub lineto + stroke +grestore +gsave + newpath + 140 111 8 3 18 0 tgifarrowtip + closepath fill +grestore + +grestore +tgifsavedpage restore +end +%MatchingCreationDate: Wed Mar 8 14:25:06 1995