├── README
├── README.en
├── cons-1.eps
├── cons-1.pdf
├── cons-2.eps
├── cons-2.pdf
├── cons-2a.eps
├── cons-2a.pdf
├── cons-3.eps
├── cons-3.pdf
├── cons-4.eps
├── cons-4.pdf
├── cons-5.eps
├── cons-5.pdf
├── doclicense.texi
├── drawers.eps
├── drawers.pdf
├── emacs-lisp-intro-ja.pdf
├── emacs-lisp-intro-ja.texi
├── emacs-lisp-intro.texi
├── emacsver.texi
├── keisen.pl
├── lambda-1.eps
├── lambda-1.pdf
├── lambda-2.eps
├── lambda-2.pdf
├── lambda-3.eps
├── lambda-3.pdf
└── texinfo.tex
/README:
--------------------------------------------------------------------------------
1 | ;; README for emacs-lisp-jp.texi -*- indented-text -*-
2 |
3 | 新・これは何か?
4 | ================
5 |
6 | このレポジトリは、15年近く昔の『Programming in Emacs Lisp: A
7 | simple introduction』の日本語訳を、現代版に書きなおすことを目指して
8 | います。
9 |
10 | 旧版から10年以上が経過し、Emacs は Unicode 対応になり、またバッファ
11 | 等の制御命令が整理されて、本書の一部のテキストはやや古くなりつつあ
12 | ります。これらを最新版に直すことで、より多くのEmacs Lisp 入門者の教
13 | 科書となることを目指します。
14 |
15 | 以下はオリジナルのREADMEに含まれている文章です。
16 |
17 |
18 | これは何か?
19 | ============
20 |
21 | このディレクトリには、GNU の配布に含まれている Robert J. Chassell
22 | 氏の
23 |
24 | 『Programming in Emacs Lisp: A simple introduction』
25 | (ファイル名は emacs-lisp-intro-1.05.tar.gz)
26 |
27 | の日本語訳、及び簡単に修正した texinfo.tex ファイルが含まれていま
28 | す。内容は非プログラマ向けの Emacs Lisp 入門です。特にプログラムに
29 | 興味はないが、Emacs をもっとカスタマイズして便利に使いたい方から、
30 | これを手始めに Emacs Lisp を勉強していきたいという人まで、役に立つ
31 | のではと思います。なお、素人が個人的に訳したものであるため拙い部分
32 | も多く、形式上もあまりしっかりしてはいません。英語版の texindex が
33 | 通るように日本語の索引もつけておりません。訳の間違い等がありました
34 | ら下記までお知らせ頂けると嬉しく思います。
35 |
36 | matsu@math.s.chiba-u.ac.jp
37 | SGU01663@nifty.ne.jp
38 |
39 |
40 | 配布条件等
41 | ==========
42 |
43 | この文書は全くの *無保証* です。修正や再配布等については、
44 | emacs-lisp-intro-jp.texi の 中にある許可告知の内容に従います。なお、
45 | version 0.91 までは配布条件として GPL に従うと書いておりましたが、
46 | これは私の勘違いであり、許可告知には「GPL に従う」という表現はどこ
47 | にもありません。(このことは飯田義朗様から御指摘頂きました。) GPL
48 | は一般にソースプログラムに対して適用されるもので、この場合ある条件
49 | の元ではソースプログラムなしでもオブジェクトファイル等が配布できる
50 | ような配慮がなされています。一方、マニュアルに対する許可告知は必ず
51 | ソースごと配布するか、あるいは印刷した結果だけを配布するかという選
52 | 択肢になっており、GPL よりも厳しい条件になっています。従って、
53 | PostScript や DVI ファイルのような、ソースを復元出来ない形式だけで
54 | は配布出来ないことに御注意下さい。 参考のために以下に訳を載せます
55 | がこれはあくまで便宜的なものです。正確には原文を参照して下さい。
56 |
57 | ---- ここから ----
58 | Copyright (C) 1990, '91, '92, '93, '94, '95 Free Software Foundation, Inc.
59 |
60 | 著作権表示、及びこの許可告知がすべての写しに掲載されている場合に、この
61 | マニュアルをそのまま写した複写を作成、配布することを許可します。
62 |
63 | 印刷した文書に、この段落を除くことを例外としてこの告知と同一の複写許可
64 | 告知が掲載されている場合に、このファイルを TeX で処理し、出来た結果を
65 | 印刷することを許可します。(この段落は印刷されたマニュアルでは関係あり
66 | ません。)
67 |
68 | ``Copying''の節と``GNU General Public License'' の節がオリジナルと全く
69 | 同様の形で含まれており、かつ修正版全体がこれと同一の許可告知の下で配布
70 | される場合には、そのままの写しを配布する場合と同じ条件の下で、修正版を
71 | 複写、及び配布することを許可します。
72 |
73 | 上の修正版と同じ条件の下で、このマニュアルを他の言語に翻訳したものを複
74 | 写し、配布することを許可します。この場合、この許可告知は Free Software
75 | Foundation によって許可された翻訳であっても構いません。
76 | ---- ここまで ----
77 |
78 |
79 | 利用の仕方
80 | ==========
81 |
82 | 印刷して読む場合
83 | ----------------
84 |
85 | ASCII日本語TeX か NTT-JTeX (jtex とする) を用いて、
86 |
87 | jtex emacs-lisp-intro-jp.texi
88 | texindex emacs-lisp-intro-jp.??
89 | jtex emacs-lisp-intro-jp.texi
90 |
91 | のようにして emacs-lisp-intro-jp.dvi を作って下さい。ただし、漢字
92 | コードが EUC になっているので、DOS/Windows な方は Shift-JIS に変換
93 | してご利用下さい。蛇足ですが、Texinfo ファイルは LaTeX のコマンド
94 | (latex, jlatex, platex という名前のことが多い) ではタイプセットで
95 | きません。あくまで Plain TeX (tex, jtex, ptex という名前のことが多
96 | い) でタイプセットしなければならないことに御注意下さい。
97 |
98 | 分量は、A4 で印刷した場合は200ページ強になると思います。また、
99 | Postscript が使える場合は、ファイルの始めの方で、
100 |
101 | @set print-postscript-figure
102 |
103 | のコメントをはずし、
104 |
105 | @clear print-postscript-figure
106 |
107 | をコメントにしてやれば、図が綺麗に印刷されると思います。ただし筆者
108 | は実験していません。うまくいかない場合は README.org 等を参考になさっ
109 | て下さい。
110 |
111 |
112 | Info にして読む場合
113 | -------------------
114 |
115 | Info ファイルを作成するには、例えば mule を使っている場合は、
116 | コマンドラインで
117 |
118 | mule -batch -l texinfmt -f batch-texinfo-format emacs-lisp-intro-jp.texi
119 |
120 | とすればよいです。また、これは川村尚生様から教えていただいたのです
121 | が、emacs-20.2 (Mule-3.0) では、
122 |
123 | emacs --no-site-file -batch ¥
124 | --eval '(set-language-environment "Japanese")' ¥
125 | -l texinfmt -f batch-texinfo-format emacs-lisp-intro-jp.texi
126 |
127 | のように言語環境を Japanese に指定する必要があるようです。
128 |
129 | 勿論 Mule を起動して emacs-lisp-intro-jp.texi を読み込んでから、
130 | C-c C-e C-b (texinfo-format-buffer) としても出来ます。うまく行かな
131 | い場合は、まず texinfmt.el のバージョンを疑って下さい。Mule-2.3 に
132 | 附属のものでは大丈夫でした。なお、Info ファイルの名前は、
133 | emacs-lisp-intro-jp.texi 三行目の
134 |
135 | @setfilename emacs-lisp-intro-jp
136 |
137 | の部分を書換えることで、変更出来ます。後は、出来たファイルを Info
138 | ファイルのあるディレクトリ(通常は /usr/local/info)に置き、そこの
139 | dir という名前のファイルにエントリを追加するだけです。これは、
140 | install-info というコマンドがあれば、(名前を変更してなければ)
141 |
142 | install-info emacs-lisp-intro-jp
143 |
144 | とすればよいですし、なければ直接 dir ファイルに
145 |
146 | * Emacs lisp Intro: (emacs-lisp-intro-jp). Programming Emacs Lisp.
147 |
148 | のような行を追加しても OK です。root の権限がない場合は、例えば
149 | Emacs version 19 以降(Mule version 2 以降)であれば、.emacs の中で
150 |
151 | (setq Info-directory-list '("‾/info" "/usr/local/info"))
152 |
153 | などと書いて info ディレクトリを追加指定した後、/usr/local/info
154 | 等の下にあった dir ファイル及び、今回作成した info ファイルを
155 | ‾/info にコピーし、そこで同様のことをしても OK です。
156 |
157 | これで二つのディレクトリの dir ファイルをマージして表示してくれる
158 | はずです。他の info ファイルを組込む場合も同様ですが、メニューを手
159 | で追加する際は、コロンや、(emacs-lisp-intro-jp) の後のピリオドを忘れ
160 | ないように注意します。
161 |
162 | なおもし JIS 罫線が化けない環境であれば、附属の keisen.pl を使うこ
163 | とで、多少アスキー図が綺麗になります。
164 |
165 | perl -i keisen.pl emacs-lisp-intro-jp.texi
166 |
167 | などとしてお使い下さい。perl が無い場合は、
168 |
169 | @c ascii diagram
170 |
171 | という行がある箇所を手で直しても OK です。
172 |
173 |
174 | 附属の texinfo.tex について
175 | ===========================
176 |
177 | 附属の texinfo は過去の日本語化された texinfo.tex をいくつか参考に
178 | しておりますが、良く分らずに修正した部分もあるので、おかしな所があ
179 | るかもしれません。(参考にさせて頂いた texinfo ファイルを作成された
180 | 方、ありがとうございました。) 不具合は全て私の責任です。気になる場
181 | 合は、ちゃんと日本語化されたものを何処からか取ってきて下さい。例え
182 | ば Emacs Lisp リファレンスマニュアルの日本語訳に附属のものなどは、
183 | しっかりしていると思います。(この場合 emacs-lisp-intro-jp.texi の
184 | 259、262行目の ¥chapmin を ¥chapdm に変更して下さい。私が試して見
185 | た所、著者名の日本語の所がちょっと小さくなる以外は問題なさそうでし
186 | た。ただ、@def の部分とかが多少見苦しくなるかもしれません。)
187 |
188 | ftp://etlport.etl.go.jp/pub/mule/elisp-manual-19-2.4-jp2.0.tar.gz
189 |
190 | 等に置いてあります。
191 |
192 |
193 | 謝辞
194 | ====
195 |
196 | 上にも書きましたが、参考にさせて頂いた日本語の Texinfo を作成され
197 | た、戸村様、半田様、楠見様、高尾様、他の皆様ありがとうございました。
198 | また、木村浩一様、幸田薫様、本田博通様、山下健司様、神貞介様には、
199 | 前バージョンでの誤りや不具合な点を指摘して頂きました。更に、飯田義
200 | 朗様には、GPL と許可告知の違いについての指摘と丁寧な説明を頂きまし
201 | た。また、川村尚生様には、emacs-20.2 の場合の Info ファイルの作成
202 | 時の注意等を御指摘頂き、Linux の debian のパッケージを作成して頂き
203 | ました。(今の時点では「予定」ですが)
204 |
205 | なお、訳出にあたっては上記の Emacs Lisp リファレンスマニュアルを参
206 | 考にさせて頂きました。訳者の方々及び上の方々に深く感謝いたします。
207 |
208 | 2000-01-10 (Mon) 松田 茂樹
209 |
210 | 変更履歴
211 | ========
212 |
213 | 0.96->0.97 * install-info に対応。eps ファイルの場所の記述の修正。
214 |
215 | 0.95->0.96 * 原文のバージョンが 1.04 から 1.05 に上がったのを機
216 | に、こちらも修正。その際、
217 |
218 | Cutting & Storing Text/delete-region
219 |
220 | の箇所に訳し忘れがあったのを発見(泣)、訳を追加。
221 |
222 | * eval-expression の標準のキーバインドが M-ESC から M-:
223 | に変更されたのに応じて、訳も修正。ただし、日本ではま
224 | だ 19.28 ベースの Mule-2.3 を使っている人も多いと思わ
225 | れるので、その旨書いておく。
226 |
--------------------------------------------------------------------------------
/README.en:
--------------------------------------------------------------------------------
1 | Copyright (C) 2001-2013 Free Software Foundation, Inc.
2 | See the end of the file for license conditions.
3 |
4 |
5 | This directory contains the source of the "Introduction to Programming
6 | in Emacs Lisp" written by Robert J. Chassell, bob@gnu.org. This
7 | manual is an elementary introduction to programming in Emacs Lisp for
8 | people who are not programmers, and who are not necessarily interested
9 | in programming, but who do want to customize or extend their computing
10 | environment.
11 |
12 | This third edition of 2006 Oct 31 updates the previous editions to GNU
13 | Emacs 22.
14 |
15 | You will find additional instructions on formatting in the beginning
16 | of the Texinfo file 'emacs-lisp-intro.texi'. Best Wishes!
17 |
18 | 2006 Oct 31
19 | Robert J. Chassell, bob@gnu.org
20 |
21 |
22 |
23 | COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
24 |
25 | The PostScript images (*.eps) contain copyright and license information
26 | in their headers. The PDF versions were automatically generated using
27 | the epstopdf utility, and are subject to the same conditions as their
28 | EPS counterparts.
29 |
30 |
31 |
32 | This file is part of GNU Emacs.
33 |
34 | GNU Emacs is free software: you can redistribute it and/or modify
35 | it under the terms of the GNU General Public License as published by
36 | the Free Software Foundation, either version 3 of the License, or
37 | (at your option) any later version.
38 |
39 | GNU Emacs is distributed in the hope that it will be useful,
40 | but WITHOUT ANY WARRANTY; without even the implied warranty of
41 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
42 | GNU General Public License for more details.
43 |
44 | You should have received a copy of the GNU General Public License
45 | along with GNU Emacs. If not, see .
46 |
--------------------------------------------------------------------------------
/cons-1.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 35 711 289 757
3 | %%Title: cons-cell-diagram1
4 | %%CreationDate: Wed Mar 8 14:26:58 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 35 711 289 757
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % BOX
410 | gsave
411 | 1.415 setmiterlimit
412 | newpath
413 | 66 66 moveto 130 66 lineto 130 98 lineto 66 98 lineto
414 | closepath stroke
415 | 1 setmiterlimit
416 | grestore
417 |
418 | % POLY/OPEN-SPLINE
419 | gsave
420 | newpath
421 | 98 66 moveto
422 | 98 98 lineto
423 | stroke
424 | grestore
425 |
426 | % POLY/OPEN-SPLINE
427 | gsave
428 | newpath
429 | 114 82 moveto
430 | 0 80 atan dup cos 8 mul 194 exch sub
431 | exch sin 8 mul 82 exch sub lineto
432 | stroke
433 | grestore
434 | gsave
435 | newpath
436 | 194 82 8 3 80 0 tgifarrowtip
437 | closepath fill
438 | grestore
439 |
440 | % TEXT
441 | 0 setgray
442 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
443 | gsave
444 | 146 136 moveto (rose) show
445 | grestore
446 |
447 | % POLY/OPEN-SPLINE
448 | gsave
449 | newpath
450 | 82 82 moveto
451 | 82 131 lineto
452 | 0 48 atan dup cos 8 mul 130 exch sub
453 | exch sin 8 mul 131 exch sub lineto
454 | stroke
455 | grestore
456 | gsave
457 | newpath
458 | 130 131 8 3 48 0 tgifarrowtip
459 | closepath fill
460 | grestore
461 |
462 | % BOX
463 | gsave
464 | 1.415 setmiterlimit
465 | newpath
466 | 199 66 moveto 263 66 lineto 263 98 lineto 199 98 lineto
467 | closepath stroke
468 | 1 setmiterlimit
469 | grestore
470 |
471 | % POLY/OPEN-SPLINE
472 | gsave
473 | newpath
474 | 231 66 moveto
475 | 231 98 lineto
476 | stroke
477 | grestore
478 |
479 | % POLY/OPEN-SPLINE
480 | gsave
481 | newpath
482 | 247 82 moveto
483 | 0 93 atan dup cos 8 mul 340 exch sub
484 | exch sin 8 mul 82 exch sub lineto
485 | stroke
486 | grestore
487 | gsave
488 | newpath
489 | 340 82 8 3 93 0 tgifarrowtip
490 | closepath fill
491 | grestore
492 |
493 | % TEXT
494 | 0 setgray
495 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
496 | gsave
497 | 279 136 moveto (violet) show
498 | grestore
499 |
500 | % POLY/OPEN-SPLINE
501 | gsave
502 | newpath
503 | 215 82 moveto
504 | 215 131 lineto
505 | 0 48 atan dup cos 8 mul 263 exch sub
506 | exch sin 8 mul 131 exch sub lineto
507 | stroke
508 | grestore
509 | gsave
510 | newpath
511 | 263 131 8 3 48 0 tgifarrowtip
512 | closepath fill
513 | grestore
514 |
515 | % BOX
516 | gsave
517 | 1.415 setmiterlimit
518 | newpath
519 | 342 64 moveto 406 64 lineto 406 96 lineto 342 96 lineto
520 | closepath stroke
521 | 1 setmiterlimit
522 | grestore
523 |
524 | % POLY/OPEN-SPLINE
525 | gsave
526 | newpath
527 | 373 64 moveto
528 | 373 96 lineto
529 | stroke
530 | grestore
531 |
532 | % POLY/OPEN-SPLINE
533 | gsave
534 | newpath
535 | 389 81 moveto
536 | 0 48 atan dup cos 8 mul 437 exch sub
537 | exch sin 8 mul 81 exch sub lineto
538 | stroke
539 | grestore
540 | gsave
541 | newpath
542 | 437 81 8 3 48 0 tgifarrowtip
543 | closepath fill
544 | grestore
545 |
546 | % TEXT
547 | 0 setgray
548 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
549 | gsave
550 | 421 135 moveto (buttercup) show
551 | grestore
552 |
553 | % POLY/OPEN-SPLINE
554 | gsave
555 | newpath
556 | 357 81 moveto
557 | 357 130 lineto
558 | 0 48 atan dup cos 8 mul 405 exch sub
559 | exch sin 8 mul 130 exch sub lineto
560 | stroke
561 | grestore
562 | gsave
563 | newpath
564 | 405 130 8 3 48 0 tgifarrowtip
565 | closepath fill
566 | grestore
567 |
568 | % TEXT
569 | 0 setgray
570 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
571 | gsave
572 | 449 87 moveto (nil) show
573 | grestore
574 |
575 | grestore
576 | tgifsavedpage restore
577 | end
578 | %MatchingCreationDate: Wed Mar 8 14:26:58 1995
579 |
--------------------------------------------------------------------------------
/cons-1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/cons-1.pdf
--------------------------------------------------------------------------------
/cons-2.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 15 712 321 775
3 | %%Title: cons-cell-diagram2
4 | %%CreationDate: Wed Mar 8 14:26:39 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 15 712 321 775
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % TEXT
410 | 0 setgray
411 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
412 | gsave
413 | 32 47 moveto (bouquet) show
414 | grestore
415 |
416 | % BOX
417 | gsave
418 | 1.415 setmiterlimit
419 | newpath
420 | 122 65 moveto 186 65 lineto 186 97 lineto 122 97 lineto
421 | closepath stroke
422 | 1 setmiterlimit
423 | grestore
424 |
425 | % POLY/OPEN-SPLINE
426 | gsave
427 | newpath
428 | 154 65 moveto
429 | 154 97 lineto
430 | stroke
431 | grestore
432 |
433 | % POLY/OPEN-SPLINE
434 | gsave
435 | newpath
436 | 170 81 moveto
437 | 0 80 atan dup cos 8 mul 250 exch sub
438 | exch sin 8 mul 81 exch sub lineto
439 | stroke
440 | grestore
441 | gsave
442 | newpath
443 | 250 81 8 3 80 0 tgifarrowtip
444 | closepath fill
445 | grestore
446 |
447 | % TEXT
448 | 0 setgray
449 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
450 | gsave
451 | 202 135 moveto (rose) show
452 | grestore
453 |
454 | % POLY/OPEN-SPLINE
455 | gsave
456 | newpath
457 | 138 81 moveto
458 | 138 130 lineto
459 | 0 48 atan dup cos 8 mul 186 exch sub
460 | exch sin 8 mul 130 exch sub lineto
461 | stroke
462 | grestore
463 | gsave
464 | newpath
465 | 186 130 8 3 48 0 tgifarrowtip
466 | closepath fill
467 | grestore
468 |
469 | % BOX
470 | gsave
471 | 1.415 setmiterlimit
472 | newpath
473 | 255 65 moveto 319 65 lineto 319 97 lineto 255 97 lineto
474 | closepath stroke
475 | 1 setmiterlimit
476 | grestore
477 |
478 | % POLY/OPEN-SPLINE
479 | gsave
480 | newpath
481 | 287 65 moveto
482 | 287 97 lineto
483 | stroke
484 | grestore
485 |
486 | % POLY/OPEN-SPLINE
487 | gsave
488 | newpath
489 | 303 81 moveto
490 | 0 93 atan dup cos 8 mul 396 exch sub
491 | exch sin 8 mul 81 exch sub lineto
492 | stroke
493 | grestore
494 | gsave
495 | newpath
496 | 396 81 8 3 93 0 tgifarrowtip
497 | closepath fill
498 | grestore
499 |
500 | % TEXT
501 | 0 setgray
502 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
503 | gsave
504 | 335 135 moveto (violet) show
505 | grestore
506 |
507 | % POLY/OPEN-SPLINE
508 | gsave
509 | newpath
510 | 271 81 moveto
511 | 271 130 lineto
512 | 0 48 atan dup cos 8 mul 319 exch sub
513 | exch sin 8 mul 130 exch sub lineto
514 | stroke
515 | grestore
516 | gsave
517 | newpath
518 | 319 130 8 3 48 0 tgifarrowtip
519 | closepath fill
520 | grestore
521 |
522 | % BOX
523 | gsave
524 | 1.415 setmiterlimit
525 | newpath
526 | 398 63 moveto 462 63 lineto 462 95 lineto 398 95 lineto
527 | closepath stroke
528 | 1 setmiterlimit
529 | grestore
530 |
531 | % POLY/OPEN-SPLINE
532 | gsave
533 | newpath
534 | 429 63 moveto
535 | 429 95 lineto
536 | stroke
537 | grestore
538 |
539 | % POLY/OPEN-SPLINE
540 | gsave
541 | newpath
542 | 445 80 moveto
543 | 0 48 atan dup cos 8 mul 493 exch sub
544 | exch sin 8 mul 80 exch sub lineto
545 | stroke
546 | grestore
547 | gsave
548 | newpath
549 | 493 80 8 3 48 0 tgifarrowtip
550 | closepath fill
551 | grestore
552 |
553 | % TEXT
554 | 0 setgray
555 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
556 | gsave
557 | 477 134 moveto (buttercup) show
558 | grestore
559 |
560 | % POLY/OPEN-SPLINE
561 | gsave
562 | newpath
563 | 413 80 moveto
564 | 413 129 lineto
565 | 0 48 atan dup cos 8 mul 461 exch sub
566 | exch sin 8 mul 129 exch sub lineto
567 | stroke
568 | grestore
569 | gsave
570 | newpath
571 | 461 129 8 3 48 0 tgifarrowtip
572 | closepath fill
573 | grestore
574 |
575 | % TEXT
576 | 0 setgray
577 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
578 | gsave
579 | 505 86 moveto (nil) show
580 | grestore
581 |
582 | % POLY/OPEN-SPLINE
583 | gsave
584 | newpath
585 | 66 53 moveto
586 | 66 81 lineto
587 | 0 46 atan dup cos 8 mul 112 exch sub
588 | exch sin 8 mul 81 exch sub lineto
589 | stroke
590 | grestore
591 | gsave
592 | newpath
593 | 112 81 8 3 46 0 tgifarrowtip
594 | closepath fill
595 | grestore
596 |
597 | grestore
598 | tgifsavedpage restore
599 | end
600 | %MatchingCreationDate: Wed Mar 8 14:26:39 1995
601 |
--------------------------------------------------------------------------------
/cons-2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/cons-2.pdf
--------------------------------------------------------------------------------
/cons-2a.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 15 702 300 767
3 | %%Title: cons-cell-diagram2a
4 | %%CreationDate: Tue Mar 14 15:09:30 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 15 702 300 767
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % TEXT
410 | 0 setgray
411 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
412 | gsave
413 | 32 62 moveto (bouquet) show
414 | grestore
415 |
416 | % POLY/OPEN-SPLINE
417 | gsave
418 | newpath
419 | 64 80 moveto
420 | 64 120 lineto
421 | 0 49 atan dup cos 8 mul 113 exch sub
422 | exch sin 8 mul 120 exch sub lineto
423 | stroke
424 | grestore
425 | gsave
426 | newpath
427 | 113 120 8 3 49 0 tgifarrowtip
428 | closepath fill
429 | grestore
430 |
431 | % TEXT
432 | 0 setgray
433 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
434 | gsave
435 | 128 110 moveto (car) show
436 | grestore
437 |
438 | % TEXT
439 | 0 setgray
440 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
441 | gsave
442 | 128 142 moveto (rose) show
443 | grestore
444 |
445 | % TEXT
446 | 0 setgray
447 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
448 | gsave
449 | 192 110 moveto (cdr) show
450 | grestore
451 |
452 | % OVAL
453 | gsave
454 | newpath 207 124 4 4 tgifellipse stroke
455 | grestore
456 |
457 | % POLY/OPEN-SPLINE
458 | gsave
459 | newpath
460 | 217 123 moveto
461 | 0 38 atan dup cos 8 mul 255 exch sub
462 | exch sin 8 mul 123 exch sub lineto
463 | stroke
464 | grestore
465 | gsave
466 | newpath
467 | 255 123 8 3 38 0 tgifarrowtip
468 | closepath fill
469 | grestore
470 |
471 | % TEXT
472 | 0 setgray
473 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
474 | gsave
475 | 268 111 moveto (car) show
476 | grestore
477 |
478 | % TEXT
479 | 0 setgray
480 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
481 | gsave
482 | 264 143 moveto (violet) show
483 | grestore
484 |
485 | % TEXT
486 | 0 setgray
487 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
488 | gsave
489 | 332 111 moveto (cdr) show
490 | grestore
491 |
492 | % OVAL
493 | gsave
494 | newpath 347 125 4 4 tgifellipse stroke
495 | grestore
496 |
497 | % POLY/OPEN-SPLINE
498 | gsave
499 | newpath
500 | 357 124 moveto
501 | 0 38 atan dup cos 8 mul 395 exch sub
502 | exch sin 8 mul 124 exch sub lineto
503 | stroke
504 | grestore
505 | gsave
506 | newpath
507 | 395 124 8 3 38 0 tgifarrowtip
508 | closepath fill
509 | grestore
510 |
511 | % TEXT
512 | 0 setgray
513 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
514 | gsave
515 | 408 112 moveto (car) show
516 | grestore
517 |
518 | % TEXT
519 | 0 setgray
520 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
521 | gsave
522 | 408 136 moveto (butter-) show
523 | 408 153 moveto (cup) show
524 | grestore
525 |
526 | % TEXT
527 | 0 setgray
528 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
529 | gsave
530 | 496 113 moveto (cdr) show
531 | grestore
532 |
533 | % TEXT
534 | 0 setgray
535 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
536 | gsave
537 | 495 137 moveto (nil) show
538 | grestore
539 |
540 | % POLY/OPEN-SPLINE
541 | gsave
542 | newpath
543 | 178 86 moveto
544 | 178 157 lineto
545 | stroke
546 | grestore
547 |
548 | % POLY/OPEN-SPLINE
549 | gsave
550 | newpath
551 | 485 84 moveto
552 | 485 157 lineto
553 | stroke
554 | grestore
555 |
556 | % POLY/OPEN-SPLINE
557 | gsave
558 | newpath
559 | 327 85 moveto
560 | 327 157 lineto
561 | stroke
562 | grestore
563 |
564 | % BOX
565 | gsave
566 | 1.415 setmiterlimit
567 | newpath
568 | 120 86 moveto 234 86 lineto 234 157 lineto 120 157 lineto
569 | closepath stroke
570 | 1 setmiterlimit
571 | grestore
572 |
573 | % BOX
574 | gsave
575 | 1.415 setmiterlimit
576 | newpath
577 | 257 85 moveto 371 85 lineto 371 157 lineto 257 157 lineto
578 | closepath stroke
579 | 1 setmiterlimit
580 | grestore
581 |
582 | % BOX
583 | gsave
584 | 1.415 setmiterlimit
585 | newpath
586 | 397 84 moveto 531 84 lineto 531 157 lineto 397 157 lineto
587 | closepath stroke
588 | 1 setmiterlimit
589 | grestore
590 |
591 | grestore
592 | tgifsavedpage restore
593 | end
594 | %MatchingCreationDate: Tue Mar 14 15:09:30 1995
595 |
--------------------------------------------------------------------------------
/cons-2a.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/cons-2a.pdf
--------------------------------------------------------------------------------
/cons-3.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: -1 691 324 757
3 | %%Title: cons-cell-diagram3
4 | %%CreationDate: Wed Mar 8 14:25:41 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: -1 691 324 757
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % BOX
410 | gsave
411 | 1.415 setmiterlimit
412 | newpath
413 | 128 102 moveto 192 102 lineto 192 134 lineto 128 134 lineto
414 | closepath stroke
415 | 1 setmiterlimit
416 | grestore
417 |
418 | % POLY/OPEN-SPLINE
419 | gsave
420 | newpath
421 | 160 102 moveto
422 | 160 134 lineto
423 | stroke
424 | grestore
425 |
426 | % POLY/OPEN-SPLINE
427 | gsave
428 | newpath
429 | 176 124 moveto
430 | 0 80 atan dup cos 8 mul 256 exch sub
431 | exch sin 8 mul 124 exch sub lineto
432 | stroke
433 | grestore
434 | gsave
435 | newpath
436 | 256 124 8 3 80 0 tgifarrowtip
437 | closepath fill
438 | grestore
439 |
440 | % TEXT
441 | 0 setgray
442 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
443 | gsave
444 | 208 172 moveto (rose) show
445 | grestore
446 |
447 | % POLY/OPEN-SPLINE
448 | gsave
449 | newpath
450 | 144 118 moveto
451 | 144 167 lineto
452 | 0 48 atan dup cos 8 mul 192 exch sub
453 | exch sin 8 mul 167 exch sub lineto
454 | stroke
455 | grestore
456 | gsave
457 | newpath
458 | 192 167 8 3 48 0 tgifarrowtip
459 | closepath fill
460 | grestore
461 |
462 | % BOX
463 | gsave
464 | 1.415 setmiterlimit
465 | newpath
466 | 261 102 moveto 325 102 lineto 325 134 lineto 261 134 lineto
467 | closepath stroke
468 | 1 setmiterlimit
469 | grestore
470 |
471 | % POLY/OPEN-SPLINE
472 | gsave
473 | newpath
474 | 293 102 moveto
475 | 293 134 lineto
476 | stroke
477 | grestore
478 |
479 | % POLY/OPEN-SPLINE
480 | gsave
481 | newpath
482 | 309 118 moveto
483 | 0 93 atan dup cos 8 mul 402 exch sub
484 | exch sin 8 mul 118 exch sub lineto
485 | stroke
486 | grestore
487 | gsave
488 | newpath
489 | 402 118 8 3 93 0 tgifarrowtip
490 | closepath fill
491 | grestore
492 |
493 | % TEXT
494 | 0 setgray
495 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
496 | gsave
497 | 341 172 moveto (violet) show
498 | grestore
499 |
500 | % POLY/OPEN-SPLINE
501 | gsave
502 | newpath
503 | 277 118 moveto
504 | 277 167 lineto
505 | 0 48 atan dup cos 8 mul 325 exch sub
506 | exch sin 8 mul 167 exch sub lineto
507 | stroke
508 | grestore
509 | gsave
510 | newpath
511 | 325 167 8 3 48 0 tgifarrowtip
512 | closepath fill
513 | grestore
514 |
515 | % BOX
516 | gsave
517 | 1.415 setmiterlimit
518 | newpath
519 | 404 100 moveto 468 100 lineto 468 132 lineto 404 132 lineto
520 | closepath stroke
521 | 1 setmiterlimit
522 | grestore
523 |
524 | % POLY/OPEN-SPLINE
525 | gsave
526 | newpath
527 | 435 100 moveto
528 | 435 132 lineto
529 | stroke
530 | grestore
531 |
532 | % POLY/OPEN-SPLINE
533 | gsave
534 | newpath
535 | 451 117 moveto
536 | 0 48 atan dup cos 8 mul 499 exch sub
537 | exch sin 8 mul 117 exch sub lineto
538 | stroke
539 | grestore
540 | gsave
541 | newpath
542 | 499 117 8 3 48 0 tgifarrowtip
543 | closepath fill
544 | grestore
545 |
546 | % TEXT
547 | 0 setgray
548 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
549 | gsave
550 | 483 171 moveto (buttercup) show
551 | grestore
552 |
553 | % POLY/OPEN-SPLINE
554 | gsave
555 | newpath
556 | 419 117 moveto
557 | 419 166 lineto
558 | 0 48 atan dup cos 8 mul 467 exch sub
559 | exch sin 8 mul 166 exch sub lineto
560 | stroke
561 | grestore
562 | gsave
563 | newpath
564 | 467 166 8 3 48 0 tgifarrowtip
565 | closepath fill
566 | grestore
567 |
568 | % TEXT
569 | 0 setgray
570 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
571 | gsave
572 | 511 123 moveto (nil) show
573 | grestore
574 |
575 | % TEXT
576 | 0 setgray
577 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
578 | gsave
579 | 131 80 moveto (flowers) show
580 | grestore
581 |
582 | % POLY/OPEN-SPLINE
583 | gsave
584 | newpath
585 | 210 75 moveto
586 | 237 75 lineto
587 | 237 113 lineto
588 | 0 18 atan dup cos 8 mul 255 exch sub
589 | exch sin 8 mul 113 exch sub lineto
590 | stroke
591 | grestore
592 | gsave
593 | newpath
594 | 255 113 8 3 18 0 tgifarrowtip
595 | closepath fill
596 | grestore
597 |
598 | % TEXT
599 | 0 setgray
600 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
601 | gsave
602 | 2 80 moveto (bouquet) show
603 | grestore
604 |
605 | % POLY/OPEN-SPLINE
606 | gsave
607 | newpath
608 | 81 77 moveto
609 | 108 77 lineto
610 | 108 115 lineto
611 | 0 18 atan dup cos 8 mul 126 exch sub
612 | exch sin 8 mul 115 exch sub lineto
613 | stroke
614 | grestore
615 | gsave
616 | newpath
617 | 126 115 8 3 18 0 tgifarrowtip
618 | closepath fill
619 | grestore
620 |
621 | grestore
622 | tgifsavedpage restore
623 | end
624 | %MatchingCreationDate: Wed Mar 8 14:25:41 1995
625 |
--------------------------------------------------------------------------------
/cons-3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/cons-3.pdf
--------------------------------------------------------------------------------
/cons-4.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 6 681 355 758
3 | %%Title: cons-cell-diagram4
4 | %%CreationDate: Wed Mar 8 14:25:06 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 6 681 355 758
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % POLY/OPEN-SPLINE
410 | gsave
411 | newpath
412 | 274 102 moveto
413 | 274 134 lineto
414 | stroke
415 | grestore
416 |
417 | % POLY/OPEN-SPLINE
418 | gsave
419 | newpath
420 | 289 122 moveto
421 | 0 56 atan dup cos 8 mul 345 exch sub
422 | exch sin 8 mul 122 exch sub lineto
423 | stroke
424 | grestore
425 | gsave
426 | newpath
427 | 345 122 8 3 56 0 tgifarrowtip
428 | closepath fill
429 | grestore
430 |
431 | % BOX
432 | gsave
433 | 1.415 setmiterlimit
434 | newpath
435 | 350 100 moveto 414 100 lineto 414 132 lineto 350 132 lineto
436 | closepath stroke
437 | 1 setmiterlimit
438 | grestore
439 |
440 | % POLY/OPEN-SPLINE
441 | gsave
442 | newpath
443 | 382 100 moveto
444 | 382 132 lineto
445 | stroke
446 | grestore
447 |
448 | % POLY/OPEN-SPLINE
449 | gsave
450 | newpath
451 | 397 114 moveto
452 | 0 59 atan dup cos 8 mul 456 exch sub
453 | exch sin 8 mul 114 exch sub lineto
454 | stroke
455 | grestore
456 | gsave
457 | newpath
458 | 456 114 8 3 59 0 tgifarrowtip
459 | closepath fill
460 | grestore
461 |
462 | % TEXT
463 | 0 setgray
464 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
465 | gsave
466 | 430 170 moveto (violet) show
467 | grestore
468 |
469 | % POLY/OPEN-SPLINE
470 | gsave
471 | newpath
472 | 366 116 moveto
473 | 366 165 lineto
474 | 0 48 atan dup cos 8 mul 414 exch sub
475 | exch sin 8 mul 165 exch sub lineto
476 | stroke
477 | grestore
478 | gsave
479 | newpath
480 | 414 165 8 3 48 0 tgifarrowtip
481 | closepath fill
482 | grestore
483 |
484 | % TEXT
485 | 0 setgray
486 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
487 | gsave
488 | 219 78 moveto (flowers) show
489 | grestore
490 |
491 | % POLY/OPEN-SPLINE
492 | gsave
493 | newpath
494 | 298 73 moveto
495 | 325 73 lineto
496 | 325 111 lineto
497 | 0 18 atan dup cos 8 mul 343 exch sub
498 | exch sin 8 mul 111 exch sub lineto
499 | stroke
500 | grestore
501 | gsave
502 | newpath
503 | 343 111 8 3 18 0 tgifarrowtip
504 | closepath fill
505 | grestore
506 |
507 | % BOX
508 | gsave
509 | 1.415 setmiterlimit
510 | newpath
511 | 459 95 moveto 523 95 lineto 523 127 lineto 459 127 lineto
512 | closepath stroke
513 | 1 setmiterlimit
514 | grestore
515 |
516 | % POLY/OPEN-SPLINE
517 | gsave
518 | newpath
519 | 490 95 moveto
520 | 490 127 lineto
521 | stroke
522 | grestore
523 |
524 | % POLY/OPEN-SPLINE
525 | gsave
526 | newpath
527 | 506 112 moveto
528 | 0 48 atan dup cos 8 mul 554 exch sub
529 | exch sin 8 mul 112 exch sub lineto
530 | stroke
531 | grestore
532 | gsave
533 | newpath
534 | 554 112 8 3 48 0 tgifarrowtip
535 | closepath fill
536 | grestore
537 |
538 | % TEXT
539 | 0 setgray
540 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
541 | gsave
542 | 566 118 moveto (nil) show
543 | grestore
544 |
545 | % TEXT
546 | 0 setgray
547 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
548 | gsave
549 | 538 151 moveto (buttercup) show
550 | grestore
551 |
552 | % POLY/OPEN-SPLINE
553 | gsave
554 | newpath
555 | 474 109 moveto
556 | 474 146 lineto
557 | 0 48 atan dup cos 8 mul 522 exch sub
558 | exch sin 8 mul 146 exch sub lineto
559 | stroke
560 | grestore
561 | gsave
562 | newpath
563 | 522 146 8 3 48 0 tgifarrowtip
564 | closepath fill
565 | grestore
566 |
567 | % BOX
568 | gsave
569 | 1.415 setmiterlimit
570 | newpath
571 | 244 102 moveto 308 102 lineto 308 134 lineto 244 134 lineto
572 | closepath stroke
573 | 1 setmiterlimit
574 | grestore
575 |
576 | % TEXT
577 | 0 setgray
578 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
579 | gsave
580 | 324 189 moveto (rose) show
581 | grestore
582 |
583 | % POLY/OPEN-SPLINE
584 | gsave
585 | newpath
586 | 260 117 moveto
587 | 260 184 lineto
588 | 0 48 atan dup cos 8 mul 308 exch sub
589 | exch sin 8 mul 184 exch sub lineto
590 | stroke
591 | grestore
592 | gsave
593 | newpath
594 | 308 184 8 3 48 0 tgifarrowtip
595 | closepath fill
596 | grestore
597 |
598 | % BOX
599 | gsave
600 | 1.415 setmiterlimit
601 | newpath
602 | 146 101 moveto 210 101 lineto 210 133 lineto 146 133 lineto
603 | closepath stroke
604 | 1 setmiterlimit
605 | grestore
606 |
607 | % POLY/OPEN-SPLINE
608 | gsave
609 | newpath
610 | 177 101 moveto
611 | 177 133 lineto
612 | stroke
613 | grestore
614 |
615 | % POLY/OPEN-SPLINE
616 | gsave
617 | newpath
618 | 193 118 moveto
619 | 0 48 atan dup cos 8 mul 241 exch sub
620 | exch sin 8 mul 118 exch sub lineto
621 | stroke
622 | grestore
623 | gsave
624 | newpath
625 | 241 118 8 3 48 0 tgifarrowtip
626 | closepath fill
627 | grestore
628 |
629 | % TEXT
630 | 0 setgray
631 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
632 | gsave
633 | 187 178 moveto (lily) show
634 | grestore
635 |
636 | % POLY/OPEN-SPLINE
637 | gsave
638 | newpath
639 | 163 118 moveto
640 | 163 171 lineto
641 | 0 18 atan dup cos 8 mul 181 exch sub
642 | exch sin 8 mul 171 exch sub lineto
643 | stroke
644 | grestore
645 | gsave
646 | newpath
647 | 181 171 8 3 18 0 tgifarrowtip
648 | closepath fill
649 | grestore
650 |
651 | % TEXT
652 | 0 setgray
653 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
654 | gsave
655 | 16 78 moveto (bouquet) show
656 | grestore
657 |
658 | % POLY/OPEN-SPLINE
659 | gsave
660 | newpath
661 | 95 73 moveto
662 | 122 73 lineto
663 | 122 111 lineto
664 | 0 18 atan dup cos 8 mul 140 exch sub
665 | exch sin 8 mul 111 exch sub lineto
666 | stroke
667 | grestore
668 | gsave
669 | newpath
670 | 140 111 8 3 18 0 tgifarrowtip
671 | closepath fill
672 | grestore
673 |
674 | grestore
675 | tgifsavedpage restore
676 | end
677 | %MatchingCreationDate: Wed Mar 8 14:25:06 1995
678 |
--------------------------------------------------------------------------------
/cons-4.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/cons-4.pdf
--------------------------------------------------------------------------------
/cons-5.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 15 680 305 764
3 | %%Title: cons-cell-diagram5
4 | %%CreationDate: Wed Mar 8 14:27:28 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 15 680 305 764
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % POLY/OPEN-SPLINE
410 | gsave
411 | newpath
412 | 156 105 moveto
413 | 156 137 lineto
414 | stroke
415 | grestore
416 |
417 | % POLY/OPEN-SPLINE
418 | gsave
419 | newpath
420 | 171 125 moveto
421 | 0 56 atan dup cos 8 mul 227 exch sub
422 | exch sin 8 mul 125 exch sub lineto
423 | stroke
424 | grestore
425 | gsave
426 | newpath
427 | 227 125 8 3 56 0 tgifarrowtip
428 | closepath fill
429 | grestore
430 |
431 | % BOX
432 | gsave
433 | 1.415 setmiterlimit
434 | newpath
435 | 232 103 moveto 296 103 lineto 296 135 lineto 232 135 lineto
436 | closepath stroke
437 | 1 setmiterlimit
438 | grestore
439 |
440 | % POLY/OPEN-SPLINE
441 | gsave
442 | newpath
443 | 264 103 moveto
444 | 264 135 lineto
445 | stroke
446 | grestore
447 |
448 | % POLY/OPEN-SPLINE
449 | gsave
450 | newpath
451 | 279 117 moveto
452 | 0 59 atan dup cos 8 mul 338 exch sub
453 | exch sin 8 mul 117 exch sub lineto
454 | stroke
455 | grestore
456 | gsave
457 | newpath
458 | 338 117 8 3 59 0 tgifarrowtip
459 | closepath fill
460 | grestore
461 |
462 | % TEXT
463 | 0 setgray
464 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
465 | gsave
466 | 289 172 moveto (a different piece of text) show
467 | grestore
468 |
469 | % POLY/OPEN-SPLINE
470 | gsave
471 | newpath
472 | 248 119 moveto
473 | 248 168 lineto
474 | 0 29 atan dup cos 8 mul 277 exch sub
475 | exch sin 8 mul 168 exch sub lineto
476 | stroke
477 | grestore
478 | gsave
479 | newpath
480 | 277 168 8 3 29 0 tgifarrowtip
481 | closepath fill
482 | grestore
483 |
484 | % TEXT
485 | 0 setgray
486 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
487 | gsave
488 | 147 66 moveto (kill-ring-yank-pointer) show
489 | grestore
490 |
491 | % POLY/OPEN-SPLINE
492 | gsave
493 | newpath
494 | 207 76 moveto
495 | 207 114 lineto
496 | 0 18 atan dup cos 8 mul 225 exch sub
497 | exch sin 8 mul 114 exch sub lineto
498 | stroke
499 | grestore
500 | gsave
501 | newpath
502 | 225 114 8 3 18 0 tgifarrowtip
503 | closepath fill
504 | grestore
505 |
506 | % BOX
507 | gsave
508 | 1.415 setmiterlimit
509 | newpath
510 | 341 98 moveto 405 98 lineto 405 130 lineto 341 130 lineto
511 | closepath stroke
512 | 1 setmiterlimit
513 | grestore
514 |
515 | % POLY/OPEN-SPLINE
516 | gsave
517 | newpath
518 | 372 98 moveto
519 | 372 130 lineto
520 | stroke
521 | grestore
522 |
523 | % POLY/OPEN-SPLINE
524 | gsave
525 | newpath
526 | 388 115 moveto
527 | 0 48 atan dup cos 8 mul 436 exch sub
528 | exch sin 8 mul 115 exch sub lineto
529 | stroke
530 | grestore
531 | gsave
532 | newpath
533 | 436 115 8 3 48 0 tgifarrowtip
534 | closepath fill
535 | grestore
536 |
537 | % TEXT
538 | 0 setgray
539 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
540 | gsave
541 | 448 121 moveto (nil) show
542 | grestore
543 |
544 | % TEXT
545 | 0 setgray
546 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
547 | gsave
548 | 397 154 moveto (yet more text) show
549 | grestore
550 |
551 | % POLY/OPEN-SPLINE
552 | gsave
553 | newpath
554 | 356 112 moveto
555 | 356 149 lineto
556 | 0 35 atan dup cos 8 mul 391 exch sub
557 | exch sin 8 mul 149 exch sub lineto
558 | stroke
559 | grestore
560 | gsave
561 | newpath
562 | 391 149 8 3 35 0 tgifarrowtip
563 | closepath fill
564 | grestore
565 |
566 | % BOX
567 | gsave
568 | 1.415 setmiterlimit
569 | newpath
570 | 126 105 moveto 190 105 lineto 190 137 lineto 126 137 lineto
571 | closepath stroke
572 | 1 setmiterlimit
573 | grestore
574 |
575 | % TEXT
576 | 0 setgray
577 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
578 | gsave
579 | 206 192 moveto (some text) show
580 | grestore
581 |
582 | % POLY/OPEN-SPLINE
583 | gsave
584 | newpath
585 | 142 120 moveto
586 | 142 187 lineto
587 | 0 48 atan dup cos 8 mul 190 exch sub
588 | exch sin 8 mul 187 exch sub lineto
589 | stroke
590 | grestore
591 | gsave
592 | newpath
593 | 190 187 8 3 48 0 tgifarrowtip
594 | closepath fill
595 | grestore
596 |
597 | % TEXT
598 | 0 setgray
599 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
600 | gsave
601 | 32 66 moveto (kill-ring) show
602 | grestore
603 |
604 | % POLY/OPEN-SPLINE
605 | gsave
606 | newpath
607 | 65 81 moveto
608 | 65 121 lineto
609 | 0 51 atan dup cos 8 mul 116 exch sub
610 | exch sin 8 mul 121 exch sub lineto
611 | stroke
612 | grestore
613 | gsave
614 | newpath
615 | 116 121 8 3 51 0 tgifarrowtip
616 | closepath fill
617 | grestore
618 |
619 | grestore
620 | tgifsavedpage restore
621 | end
622 | %MatchingCreationDate: Wed Mar 8 14:27:28 1995
623 |
--------------------------------------------------------------------------------
/cons-5.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/cons-5.pdf
--------------------------------------------------------------------------------
/doclicense.texi:
--------------------------------------------------------------------------------
1 | @c The GNU Free Documentation License.
2 | @center Version 1.3, 3 November 2008
3 |
4 | @c This file is intended to be included within another document,
5 | @c hence no sectioning command or @node.
6 |
7 | @display
8 | Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
9 | @uref{http://fsf.org/}
10 |
11 | Everyone is permitted to copy and distribute verbatim copies
12 | of this license document, but changing it is not allowed.
13 | @end display
14 |
15 | @enumerate 0
16 | @item
17 | PREAMBLE
18 |
19 | The purpose of this License is to make a manual, textbook, or other
20 | functional and useful document @dfn{free} in the sense of freedom: to
21 | assure everyone the effective freedom to copy and redistribute it,
22 | with or without modifying it, either commercially or noncommercially.
23 | Secondarily, this License preserves for the author and publisher a way
24 | to get credit for their work, while not being considered responsible
25 | for modifications made by others.
26 |
27 | This License is a kind of ``copyleft'', which means that derivative
28 | works of the document must themselves be free in the same sense. It
29 | complements the GNU General Public License, which is a copyleft
30 | license designed for free software.
31 |
32 | We have designed this License in order to use it for manuals for free
33 | software, because free software needs free documentation: a free
34 | program should come with manuals providing the same freedoms that the
35 | software does. But this License is not limited to software manuals;
36 | it can be used for any textual work, regardless of subject matter or
37 | whether it is published as a printed book. We recommend this License
38 | principally for works whose purpose is instruction or reference.
39 |
40 | @item
41 | APPLICABILITY AND DEFINITIONS
42 |
43 | This License applies to any manual or other work, in any medium, that
44 | contains a notice placed by the copyright holder saying it can be
45 | distributed under the terms of this License. Such a notice grants a
46 | world-wide, royalty-free license, unlimited in duration, to use that
47 | work under the conditions stated herein. The ``Document'', below,
48 | refers to any such manual or work. Any member of the public is a
49 | licensee, and is addressed as ``you''. You accept the license if you
50 | copy, modify or distribute the work in a way requiring permission
51 | under copyright law.
52 |
53 | A ``Modified Version'' of the Document means any work containing the
54 | Document or a portion of it, either copied verbatim, or with
55 | modifications and/or translated into another language.
56 |
57 | A ``Secondary Section'' is a named appendix or a front-matter section
58 | of the Document that deals exclusively with the relationship of the
59 | publishers or authors of the Document to the Document's overall
60 | subject (or to related matters) and contains nothing that could fall
61 | directly within that overall subject. (Thus, if the Document is in
62 | part a textbook of mathematics, a Secondary Section may not explain
63 | any mathematics.) The relationship could be a matter of historical
64 | connection with the subject or with related matters, or of legal,
65 | commercial, philosophical, ethical or political position regarding
66 | them.
67 |
68 | The ``Invariant Sections'' are certain Secondary Sections whose titles
69 | are designated, as being those of Invariant Sections, in the notice
70 | that says that the Document is released under this License. If a
71 | section does not fit the above definition of Secondary then it is not
72 | allowed to be designated as Invariant. The Document may contain zero
73 | Invariant Sections. If the Document does not identify any Invariant
74 | Sections then there are none.
75 |
76 | The ``Cover Texts'' are certain short passages of text that are listed,
77 | as Front-Cover Texts or Back-Cover Texts, in the notice that says that
78 | the Document is released under this License. A Front-Cover Text may
79 | be at most 5 words, and a Back-Cover Text may be at most 25 words.
80 |
81 | A ``Transparent'' copy of the Document means a machine-readable copy,
82 | represented in a format whose specification is available to the
83 | general public, that is suitable for revising the document
84 | straightforwardly with generic text editors or (for images composed of
85 | pixels) generic paint programs or (for drawings) some widely available
86 | drawing editor, and that is suitable for input to text formatters or
87 | for automatic translation to a variety of formats suitable for input
88 | to text formatters. A copy made in an otherwise Transparent file
89 | format whose markup, or absence of markup, has been arranged to thwart
90 | or discourage subsequent modification by readers is not Transparent.
91 | An image format is not Transparent if used for any substantial amount
92 | of text. A copy that is not ``Transparent'' is called ``Opaque''.
93 |
94 | Examples of suitable formats for Transparent copies include plain
95 | ASCII without markup, Texinfo input format, La@TeX{} input
96 | format, SGML or XML using a publicly available
97 | DTD, and standard-conforming simple HTML,
98 | PostScript or PDF designed for human modification. Examples
99 | of transparent image formats include PNG, XCF and
100 | JPG@. Opaque formats include proprietary formats that can be
101 | read and edited only by proprietary word processors, SGML or
102 | XML for which the DTD and/or processing tools are
103 | not generally available, and the machine-generated HTML,
104 | PostScript or PDF produced by some word processors for
105 | output purposes only.
106 |
107 | The ``Title Page'' means, for a printed book, the title page itself,
108 | plus such following pages as are needed to hold, legibly, the material
109 | this License requires to appear in the title page. For works in
110 | formats which do not have any title page as such, ``Title Page'' means
111 | the text near the most prominent appearance of the work's title,
112 | preceding the beginning of the body of the text.
113 |
114 | The ``publisher'' means any person or entity that distributes copies
115 | of the Document to the public.
116 |
117 | A section ``Entitled XYZ'' means a named subunit of the Document whose
118 | title either is precisely XYZ or contains XYZ in parentheses following
119 | text that translates XYZ in another language. (Here XYZ stands for a
120 | specific section name mentioned below, such as ``Acknowledgements'',
121 | ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
122 | of such a section when you modify the Document means that it remains a
123 | section ``Entitled XYZ'' according to this definition.
124 |
125 | The Document may include Warranty Disclaimers next to the notice which
126 | states that this License applies to the Document. These Warranty
127 | Disclaimers are considered to be included by reference in this
128 | License, but only as regards disclaiming warranties: any other
129 | implication that these Warranty Disclaimers may have is void and has
130 | no effect on the meaning of this License.
131 |
132 | @item
133 | VERBATIM COPYING
134 |
135 | You may copy and distribute the Document in any medium, either
136 | commercially or noncommercially, provided that this License, the
137 | copyright notices, and the license notice saying this License applies
138 | to the Document are reproduced in all copies, and that you add no other
139 | conditions whatsoever to those of this License. You may not use
140 | technical measures to obstruct or control the reading or further
141 | copying of the copies you make or distribute. However, you may accept
142 | compensation in exchange for copies. If you distribute a large enough
143 | number of copies you must also follow the conditions in section 3.
144 |
145 | You may also lend copies, under the same conditions stated above, and
146 | you may publicly display copies.
147 |
148 | @item
149 | COPYING IN QUANTITY
150 |
151 | If you publish printed copies (or copies in media that commonly have
152 | printed covers) of the Document, numbering more than 100, and the
153 | Document's license notice requires Cover Texts, you must enclose the
154 | copies in covers that carry, clearly and legibly, all these Cover
155 | Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
156 | the back cover. Both covers must also clearly and legibly identify
157 | you as the publisher of these copies. The front cover must present
158 | the full title with all words of the title equally prominent and
159 | visible. You may add other material on the covers in addition.
160 | Copying with changes limited to the covers, as long as they preserve
161 | the title of the Document and satisfy these conditions, can be treated
162 | as verbatim copying in other respects.
163 |
164 | If the required texts for either cover are too voluminous to fit
165 | legibly, you should put the first ones listed (as many as fit
166 | reasonably) on the actual cover, and continue the rest onto adjacent
167 | pages.
168 |
169 | If you publish or distribute Opaque copies of the Document numbering
170 | more than 100, you must either include a machine-readable Transparent
171 | copy along with each Opaque copy, or state in or with each Opaque copy
172 | a computer-network location from which the general network-using
173 | public has access to download using public-standard network protocols
174 | a complete Transparent copy of the Document, free of added material.
175 | If you use the latter option, you must take reasonably prudent steps,
176 | when you begin distribution of Opaque copies in quantity, to ensure
177 | that this Transparent copy will remain thus accessible at the stated
178 | location until at least one year after the last time you distribute an
179 | Opaque copy (directly or through your agents or retailers) of that
180 | edition to the public.
181 |
182 | It is requested, but not required, that you contact the authors of the
183 | Document well before redistributing any large number of copies, to give
184 | them a chance to provide you with an updated version of the Document.
185 |
186 | @item
187 | MODIFICATIONS
188 |
189 | You may copy and distribute a Modified Version of the Document under
190 | the conditions of sections 2 and 3 above, provided that you release
191 | the Modified Version under precisely this License, with the Modified
192 | Version filling the role of the Document, thus licensing distribution
193 | and modification of the Modified Version to whoever possesses a copy
194 | of it. In addition, you must do these things in the Modified Version:
195 |
196 | @enumerate A
197 | @item
198 | Use in the Title Page (and on the covers, if any) a title distinct
199 | from that of the Document, and from those of previous versions
200 | (which should, if there were any, be listed in the History section
201 | of the Document). You may use the same title as a previous version
202 | if the original publisher of that version gives permission.
203 |
204 | @item
205 | List on the Title Page, as authors, one or more persons or entities
206 | responsible for authorship of the modifications in the Modified
207 | Version, together with at least five of the principal authors of the
208 | Document (all of its principal authors, if it has fewer than five),
209 | unless they release you from this requirement.
210 |
211 | @item
212 | State on the Title page the name of the publisher of the
213 | Modified Version, as the publisher.
214 |
215 | @item
216 | Preserve all the copyright notices of the Document.
217 |
218 | @item
219 | Add an appropriate copyright notice for your modifications
220 | adjacent to the other copyright notices.
221 |
222 | @item
223 | Include, immediately after the copyright notices, a license notice
224 | giving the public permission to use the Modified Version under the
225 | terms of this License, in the form shown in the Addendum below.
226 |
227 | @item
228 | Preserve in that license notice the full lists of Invariant Sections
229 | and required Cover Texts given in the Document's license notice.
230 |
231 | @item
232 | Include an unaltered copy of this License.
233 |
234 | @item
235 | Preserve the section Entitled ``History'', Preserve its Title, and add
236 | to it an item stating at least the title, year, new authors, and
237 | publisher of the Modified Version as given on the Title Page. If
238 | there is no section Entitled ``History'' in the Document, create one
239 | stating the title, year, authors, and publisher of the Document as
240 | given on its Title Page, then add an item describing the Modified
241 | Version as stated in the previous sentence.
242 |
243 | @item
244 | Preserve the network location, if any, given in the Document for
245 | public access to a Transparent copy of the Document, and likewise
246 | the network locations given in the Document for previous versions
247 | it was based on. These may be placed in the ``History'' section.
248 | You may omit a network location for a work that was published at
249 | least four years before the Document itself, or if the original
250 | publisher of the version it refers to gives permission.
251 |
252 | @item
253 | For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
254 | the Title of the section, and preserve in the section all the
255 | substance and tone of each of the contributor acknowledgements and/or
256 | dedications given therein.
257 |
258 | @item
259 | Preserve all the Invariant Sections of the Document,
260 | unaltered in their text and in their titles. Section numbers
261 | or the equivalent are not considered part of the section titles.
262 |
263 | @item
264 | Delete any section Entitled ``Endorsements''. Such a section
265 | may not be included in the Modified Version.
266 |
267 | @item
268 | Do not retitle any existing section to be Entitled ``Endorsements'' or
269 | to conflict in title with any Invariant Section.
270 |
271 | @item
272 | Preserve any Warranty Disclaimers.
273 | @end enumerate
274 |
275 | If the Modified Version includes new front-matter sections or
276 | appendices that qualify as Secondary Sections and contain no material
277 | copied from the Document, you may at your option designate some or all
278 | of these sections as invariant. To do this, add their titles to the
279 | list of Invariant Sections in the Modified Version's license notice.
280 | These titles must be distinct from any other section titles.
281 |
282 | You may add a section Entitled ``Endorsements'', provided it contains
283 | nothing but endorsements of your Modified Version by various
284 | parties---for example, statements of peer review or that the text has
285 | been approved by an organization as the authoritative definition of a
286 | standard.
287 |
288 | You may add a passage of up to five words as a Front-Cover Text, and a
289 | passage of up to 25 words as a Back-Cover Text, to the end of the list
290 | of Cover Texts in the Modified Version. Only one passage of
291 | Front-Cover Text and one of Back-Cover Text may be added by (or
292 | through arrangements made by) any one entity. If the Document already
293 | includes a cover text for the same cover, previously added by you or
294 | by arrangement made by the same entity you are acting on behalf of,
295 | you may not add another; but you may replace the old one, on explicit
296 | permission from the previous publisher that added the old one.
297 |
298 | The author(s) and publisher(s) of the Document do not by this License
299 | give permission to use their names for publicity for or to assert or
300 | imply endorsement of any Modified Version.
301 |
302 | @item
303 | COMBINING DOCUMENTS
304 |
305 | You may combine the Document with other documents released under this
306 | License, under the terms defined in section 4 above for modified
307 | versions, provided that you include in the combination all of the
308 | Invariant Sections of all of the original documents, unmodified, and
309 | list them all as Invariant Sections of your combined work in its
310 | license notice, and that you preserve all their Warranty Disclaimers.
311 |
312 | The combined work need only contain one copy of this License, and
313 | multiple identical Invariant Sections may be replaced with a single
314 | copy. If there are multiple Invariant Sections with the same name but
315 | different contents, make the title of each such section unique by
316 | adding at the end of it, in parentheses, the name of the original
317 | author or publisher of that section if known, or else a unique number.
318 | Make the same adjustment to the section titles in the list of
319 | Invariant Sections in the license notice of the combined work.
320 |
321 | In the combination, you must combine any sections Entitled ``History''
322 | in the various original documents, forming one section Entitled
323 | ``History''; likewise combine any sections Entitled ``Acknowledgements'',
324 | and any sections Entitled ``Dedications''. You must delete all
325 | sections Entitled ``Endorsements.''
326 |
327 | @item
328 | COLLECTIONS OF DOCUMENTS
329 |
330 | You may make a collection consisting of the Document and other documents
331 | released under this License, and replace the individual copies of this
332 | License in the various documents with a single copy that is included in
333 | the collection, provided that you follow the rules of this License for
334 | verbatim copying of each of the documents in all other respects.
335 |
336 | You may extract a single document from such a collection, and distribute
337 | it individually under this License, provided you insert a copy of this
338 | License into the extracted document, and follow this License in all
339 | other respects regarding verbatim copying of that document.
340 |
341 | @item
342 | AGGREGATION WITH INDEPENDENT WORKS
343 |
344 | A compilation of the Document or its derivatives with other separate
345 | and independent documents or works, in or on a volume of a storage or
346 | distribution medium, is called an ``aggregate'' if the copyright
347 | resulting from the compilation is not used to limit the legal rights
348 | of the compilation's users beyond what the individual works permit.
349 | When the Document is included in an aggregate, this License does not
350 | apply to the other works in the aggregate which are not themselves
351 | derivative works of the Document.
352 |
353 | If the Cover Text requirement of section 3 is applicable to these
354 | copies of the Document, then if the Document is less than one half of
355 | the entire aggregate, the Document's Cover Texts may be placed on
356 | covers that bracket the Document within the aggregate, or the
357 | electronic equivalent of covers if the Document is in electronic form.
358 | Otherwise they must appear on printed covers that bracket the whole
359 | aggregate.
360 |
361 | @item
362 | TRANSLATION
363 |
364 | Translation is considered a kind of modification, so you may
365 | distribute translations of the Document under the terms of section 4.
366 | Replacing Invariant Sections with translations requires special
367 | permission from their copyright holders, but you may include
368 | translations of some or all Invariant Sections in addition to the
369 | original versions of these Invariant Sections. You may include a
370 | translation of this License, and all the license notices in the
371 | Document, and any Warranty Disclaimers, provided that you also include
372 | the original English version of this License and the original versions
373 | of those notices and disclaimers. In case of a disagreement between
374 | the translation and the original version of this License or a notice
375 | or disclaimer, the original version will prevail.
376 |
377 | If a section in the Document is Entitled ``Acknowledgements'',
378 | ``Dedications'', or ``History'', the requirement (section 4) to Preserve
379 | its Title (section 1) will typically require changing the actual
380 | title.
381 |
382 | @item
383 | TERMINATION
384 |
385 | You may not copy, modify, sublicense, or distribute the Document
386 | except as expressly provided under this License. Any attempt
387 | otherwise to copy, modify, sublicense, or distribute it is void, and
388 | will automatically terminate your rights under this License.
389 |
390 | However, if you cease all violation of this License, then your license
391 | from a particular copyright holder is reinstated (a) provisionally,
392 | unless and until the copyright holder explicitly and finally
393 | terminates your license, and (b) permanently, if the copyright holder
394 | fails to notify you of the violation by some reasonable means prior to
395 | 60 days after the cessation.
396 |
397 | Moreover, your license from a particular copyright holder is
398 | reinstated permanently if the copyright holder notifies you of the
399 | violation by some reasonable means, this is the first time you have
400 | received notice of violation of this License (for any work) from that
401 | copyright holder, and you cure the violation prior to 30 days after
402 | your receipt of the notice.
403 |
404 | Termination of your rights under this section does not terminate the
405 | licenses of parties who have received copies or rights from you under
406 | this License. If your rights have been terminated and not permanently
407 | reinstated, receipt of a copy of some or all of the same material does
408 | not give you any rights to use it.
409 |
410 | @item
411 | FUTURE REVISIONS OF THIS LICENSE
412 |
413 | The Free Software Foundation may publish new, revised versions
414 | of the GNU Free Documentation License from time to time. Such new
415 | versions will be similar in spirit to the present version, but may
416 | differ in detail to address new problems or concerns. See
417 | @uref{http://www.gnu.org/copyleft/}.
418 |
419 | Each version of the License is given a distinguishing version number.
420 | If the Document specifies that a particular numbered version of this
421 | License ``or any later version'' applies to it, you have the option of
422 | following the terms and conditions either of that specified version or
423 | of any later version that has been published (not as a draft) by the
424 | Free Software Foundation. If the Document does not specify a version
425 | number of this License, you may choose any version ever published (not
426 | as a draft) by the Free Software Foundation. If the Document
427 | specifies that a proxy can decide which future versions of this
428 | License can be used, that proxy's public statement of acceptance of a
429 | version permanently authorizes you to choose that version for the
430 | Document.
431 |
432 | @item
433 | RELICENSING
434 |
435 | ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any
436 | World Wide Web server that publishes copyrightable works and also
437 | provides prominent facilities for anybody to edit those works. A
438 | public wiki that anybody can edit is an example of such a server. A
439 | ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the
440 | site means any set of copyrightable works thus published on the MMC
441 | site.
442 |
443 | ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0
444 | license published by Creative Commons Corporation, a not-for-profit
445 | corporation with a principal place of business in San Francisco,
446 | California, as well as future copyleft versions of that license
447 | published by that same organization.
448 |
449 | ``Incorporate'' means to publish or republish a Document, in whole or
450 | in part, as part of another Document.
451 |
452 | An MMC is ``eligible for relicensing'' if it is licensed under this
453 | License, and if all works that were first published under this License
454 | somewhere other than this MMC, and subsequently incorporated in whole
455 | or in part into the MMC, (1) had no cover texts or invariant sections,
456 | and (2) were thus incorporated prior to November 1, 2008.
457 |
458 | The operator of an MMC Site may republish an MMC contained in the site
459 | under CC-BY-SA on the same site at any time before August 1, 2009,
460 | provided the MMC is eligible for relicensing.
461 |
462 | @end enumerate
463 |
464 | @page
465 | @heading ADDENDUM: How to use this License for your documents
466 |
467 | To use this License in a document you have written, include a copy of
468 | the License in the document and put the following copyright and
469 | license notices just after the title page:
470 |
471 | @smallexample
472 | @group
473 | Copyright (C) @var{year} @var{your name}.
474 | Permission is granted to copy, distribute and/or modify this document
475 | under the terms of the GNU Free Documentation License, Version 1.3
476 | or any later version published by the Free Software Foundation;
477 | with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
478 | Texts. A copy of the license is included in the section entitled ``GNU
479 | Free Documentation License''.
480 | @end group
481 | @end smallexample
482 |
483 | If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
484 | replace the ``with@dots{}Texts.''@: line with this:
485 |
486 | @smallexample
487 | @group
488 | with the Invariant Sections being @var{list their titles}, with
489 | the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
490 | being @var{list}.
491 | @end group
492 | @end smallexample
493 |
494 | If you have Invariant Sections without Cover Texts, or some other
495 | combination of the three, merge those two alternatives to suit the
496 | situation.
497 |
498 | If your document contains nontrivial examples of program code, we
499 | recommend releasing these examples in parallel under your choice of
500 | free software license, such as the GNU General Public License,
501 | to permit their use in free software.
502 |
503 | @c Local Variables:
504 | @c ispell-local-pdict: "ispell-dict"
505 | @c End:
506 |
--------------------------------------------------------------------------------
/drawers.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 34 577 324 778
3 | %%Title: chest-of-drawers-diagram-new
4 | %%CreationDate: Fri Sep 14 17:40:57 2001
5 | %%Creator: Tgif-4.1.35 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 | %%ProducedBy: (unknown)
7 | %%Pages: 1
8 | %%DocumentFonts: (atend)
9 | %%EndComments
10 | %%BeginProlog
11 |
12 | % Copyright (C) 2001-2013 Free Software Foundation, Inc.
13 | %
14 | % This file is part of GNU Emacs.
15 | %
16 | % GNU Emacs is free software: you can redistribute it and/or modify
17 | % it under the terms of the GNU General Public License as published by
18 | % the Free Software Foundation, either version 3 of the License, or
19 | % (at your option) any later version.
20 | %
21 | % GNU Emacs is distributed in the hope that it will be useful,
22 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
23 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 | % GNU General Public License for more details.
25 | %
26 | % You should have received a copy of the GNU General Public License
27 | % along with GNU Emacs. If not, see .
28 |
29 | /tgifdict 53 dict def
30 | tgifdict begin
31 |
32 | /tgifellipsedict 6 dict def
33 | tgifellipsedict /mtrx matrix put
34 |
35 | /TGEL % tgifellipse
36 | { tgifellipsedict begin
37 | /yrad exch def
38 | /xrad exch def
39 | /y exch def
40 | /x exch def
41 | /savematrix mtrx currentmatrix def
42 | x y translate
43 | xrad yrad scale
44 | 0 0 1 0 360 arc
45 | savematrix setmatrix
46 | end
47 | } def
48 |
49 | /TGMAX
50 | { exch dup 3 1 roll exch dup 3 1 roll gt { pop } { exch pop } ifelse
51 | } def
52 | /TGMIN
53 | { exch dup 3 1 roll exch dup 3 1 roll lt { pop } { exch pop } ifelse
54 | } def
55 | /TGSW { stringwidth pop } def
56 |
57 | /bd { bind def } bind def
58 |
59 | /GS { gsave } bd
60 | /GR { grestore } bd
61 | /NP { newpath } bd
62 | /CP { closepath } bd
63 | /CHP { charpath } bd
64 | /CT { curveto } bd
65 | /L { lineto } bd
66 | /RL { rlineto } bd
67 | /M { moveto } bd
68 | /RM { rmoveto } bd
69 | /S { stroke } bd
70 | /F { fill } bd
71 | /TR { translate } bd
72 | /RO { rotate } bd
73 | /SC { scale } bd
74 | /MU { mul } bd
75 | /DI { div } bd
76 | /DU { dup } bd
77 | /NE { neg } bd
78 | /AD { add } bd
79 | /SU { sub } bd
80 | /PO { pop } bd
81 | /EX { exch } bd
82 | /CO { concat } bd
83 | /CL { clip } bd
84 | /EC { eoclip } bd
85 | /EF { eofill } bd
86 | /IM { image } bd
87 | /IMM { imagemask } bd
88 | /ARY { array } bd
89 | /SG { setgray } bd
90 | /RG { setrgbcolor } bd
91 | /SD { setdash } bd
92 | /W { setlinewidth } bd
93 | /SM { setmiterlimit } bd
94 | /SLC { setlinecap } bd
95 | /SLJ { setlinejoin } bd
96 | /SH { show } bd
97 | /FF { findfont } bd
98 | /MS { makefont setfont } bd
99 | /AR { arcto 4 {pop} repeat } bd
100 | /CURP { currentpoint } bd
101 | /FLAT { flattenpath strokepath clip newpath } bd
102 | /TGSM { tgiforigctm setmatrix } def
103 | /TGRM { savematrix setmatrix } def
104 |
105 | end
106 |
107 | %%EndProlog
108 | %%Page: 1 1
109 |
110 | %%PageBoundingBox: 34 577 324 778
111 | tgifdict begin
112 | /tgifsavedpage save def
113 |
114 | 1 SM
115 | 1 W
116 |
117 | 0 SG
118 |
119 | 72 0 MU 72 11 MU TR
120 | 72 128 DI 100.000 MU 100 DI DU NE SC
121 |
122 | GS
123 |
124 | /tgiforigctm matrix currentmatrix def
125 |
126 | % BOX
127 | 0 SG
128 | GS
129 | 10 SM
130 | GS
131 | NP 64 104 M 255 104 L 255 360 L 64 360 L CP
132 | S
133 | GR
134 | GR
135 |
136 | % POLY/OPEN-SPLINE
137 | 0 SG
138 | GS
139 | NP
140 | 65 296 M
141 | 254 296 L
142 | TGSM
143 | 1 W
144 | S
145 | GR
146 |
147 | % POLY/OPEN-SPLINE
148 | 0 SG
149 | GS
150 | NP
151 | 63 233 M
152 | 255 233 L
153 | TGSM
154 | 1 W
155 | S
156 | GR
157 |
158 | % POLY/OPEN-SPLINE
159 | 0 SG
160 | GS
161 | NP
162 | 63 169 M
163 | 255 169 L
164 | TGSM
165 | 1 W
166 | S
167 | GR
168 |
169 | % POLY/OPEN-SPLINE
170 | 0 SG
171 | GS
172 | NP
173 | 251 362 M
174 | 251 361 L
175 | 251 379 L
176 | 244 379 L
177 | 229 361 L
178 | TGSM
179 | 1 W
180 | S
181 | GR
182 |
183 | % OVAL
184 | 0 SG
185 | GS
186 | GS
187 | NP 160 72 10 6 TGEL
188 | S
189 | GR
190 | GR
191 |
192 | % POLY/OPEN-SPLINE
193 | 0 SG
194 | GS
195 | NP
196 | 63 104 M
197 | 128 64 L
198 | 138 69 L
199 | TGSM
200 | 1 W
201 | S
202 | GR
203 |
204 | % POLY/OPEN-SPLINE
205 | 0 SG
206 | GS
207 | NP
208 | 255 103 M
209 | 190 63 L
210 | 180 68 L
211 | TGSM
212 | 1 W
213 | S
214 | GR
215 |
216 | % TEXT
217 | NP
218 | 0 SG
219 | GS
220 | 1 W
221 | 160 152 M
222 | GS
223 | GS
224 | 0
225 | /Courier FF [17 0 0 -17 0 0] MS
226 | (symbol name) TGSW
227 | AD
228 | GR
229 | 2 DI NE 0 RM
230 | 0 SG
231 | /Courier FF [17 0 0 -17 0 0] MS
232 | (symbol name) SH
233 | GR
234 | GR
235 |
236 | % TEXT
237 | NP
238 | 0 SG
239 | GS
240 | 1 W
241 | 160 41 M
242 | GS
243 | GS
244 | 0
245 | /Courier FF [17 0 0 -17 0 0] MS
246 | (Chest of Drawers) TGSW
247 | AD
248 | GR
249 | 2 DI NE 0 RM
250 | 0 SG
251 | /Courier FF [17 0 0 -17 0 0] MS
252 | (Chest of Drawers) SH
253 | GR
254 | GR
255 |
256 | % TEXT
257 | NP
258 | 0 SG
259 | GS
260 | 1 W
261 | 344 41 M
262 | GS
263 | 0 SG
264 | /Courier FF [17 0 0 -17 0 0] MS
265 | (Contents of Drawers) SH
266 | GR
267 | GR
268 |
269 | % TEXT
270 | NP
271 | 0 SG
272 | GS
273 | 1 W
274 | 344 160 M
275 | GS
276 | 0 SG
277 | /Courier FF [17 0 0 -17 0 0] MS
278 | (bouquet) SH
279 | GR
280 | GR
281 |
282 | % TEXT
283 | NP
284 | 0 SG
285 | GS
286 | 1 W
287 | 344 220 M
288 | GS
289 | 0 SG
290 | /Courier FF [17 0 0 -17 0 0] MS
291 | ([none]) SH
292 | GR
293 | GR
294 |
295 | % TEXT
296 | NP
297 | 0 SG
298 | GS
299 | 1 W
300 | 344 279 M
301 | GS
302 | 0 SG
303 | /Courier FF [17 0 0 -17 0 0] MS
304 | (\(rose violet buttercup\)) SH
305 | GR
306 | GR
307 |
308 | % TEXT
309 | NP
310 | 0 SG
311 | GS
312 | 1 W
313 | 344 337 M
314 | GS
315 | 0 SG
316 | /Courier FF [17 0 0 -17 0 0] MS
317 | ([not described here]) SH
318 | GR
319 | GR
320 |
321 | % POLY/OPEN-SPLINE
322 | 0 SG
323 | GS
324 | NP
325 | 68 362 M
326 | 68 361 L
327 | 68 379 L
328 | 75 379 L
329 | 90 361 L
330 | TGSM
331 | 1 W
332 | S
333 | GR
334 |
335 | % TEXT
336 | NP
337 | 0 SG
338 | GS
339 | 1 W
340 | 158 132 M
341 | GS
342 | GS
343 | 0
344 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
345 | (directions to) TGSW
346 | AD
347 | GR
348 | 2 DI NE 0 RM
349 | 0 SG
350 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
351 | (directions to) SH
352 | GR
353 | GR
354 |
355 | % TEXT
356 | NP
357 | 0 SG
358 | GS
359 | 1 W
360 | 345 139 M
361 | GS
362 | 0 SG
363 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
364 | (map to) SH
365 | GR
366 | GR
367 |
368 | % TEXT
369 | NP
370 | 0 SG
371 | GS
372 | 1 W
373 | 350 259 M
374 | GS
375 | 0 SG
376 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
377 | (map to) SH
378 | GR
379 | GR
380 |
381 | % TEXT
382 | NP
383 | 0 SG
384 | GS
385 | 1 W
386 | 159 213 M
387 | GS
388 | GS
389 | 0
390 | /Courier FF [17 0 0 -17 0 0] MS
391 | (symbol definition) TGSW
392 | AD
393 | GR
394 | 2 DI NE 0 RM
395 | 0 SG
396 | /Courier FF [17 0 0 -17 0 0] MS
397 | (symbol definition) SH
398 | GR
399 | GR
400 |
401 | % TEXT
402 | NP
403 | 0 SG
404 | GS
405 | 1 W
406 | 159 195 M
407 | GS
408 | GS
409 | 0
410 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
411 | (directions to) TGSW
412 | AD
413 | GR
414 | 2 DI NE 0 RM
415 | 0 SG
416 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
417 | (directions to) SH
418 | GR
419 | GR
420 |
421 | % TEXT
422 | NP
423 | 0 SG
424 | GS
425 | 1 W
426 | 160 276 M
427 | GS
428 | GS
429 | 0
430 | /Courier FF [17 0 0 -17 0 0] MS
431 | (variable name) TGSW
432 | AD
433 | GR
434 | 2 DI NE 0 RM
435 | 0 SG
436 | /Courier FF [17 0 0 -17 0 0] MS
437 | (variable name) SH
438 | GR
439 | GR
440 |
441 | % TEXT
442 | NP
443 | 0 SG
444 | GS
445 | 1 W
446 | 158 260 M
447 | GS
448 | GS
449 | 0
450 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
451 | (directions to) TGSW
452 | AD
453 | GR
454 | 2 DI NE 0 RM
455 | 0 SG
456 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
457 | (directions to) SH
458 | GR
459 | GR
460 |
461 | % TEXT
462 | NP
463 | 0 SG
464 | GS
465 | 1 W
466 | 160 339 M
467 | GS
468 | GS
469 | 0
470 | /Courier FF [17 0 0 -17 0 0] MS
471 | (property list) TGSW
472 | AD
473 | GR
474 | 2 DI NE 0 RM
475 | 0 SG
476 | /Courier FF [17 0 0 -17 0 0] MS
477 | (property list) SH
478 | GR
479 | GR
480 |
481 | % TEXT
482 | NP
483 | 0 SG
484 | GS
485 | 1 W
486 | 158 323 M
487 | GS
488 | GS
489 | 0
490 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
491 | (directions to) TGSW
492 | AD
493 | GR
494 | 2 DI NE 0 RM
495 | 0 SG
496 | /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
497 | (directions to) SH
498 | GR
499 | GR
500 |
501 | GR
502 | tgifsavedpage restore
503 | end
504 | showpage
505 |
506 | %%Trailer
507 | %MatchingCreationDate: Fri Sep 14 17:40:57 2001
508 | %%DocumentFonts: NewCenturySchlbk-Roman
509 | %%+ Courier
510 | %%EOF
511 |
--------------------------------------------------------------------------------
/drawers.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/drawers.pdf
--------------------------------------------------------------------------------
/emacs-lisp-intro-ja.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/emacs-lisp-intro-ja.pdf
--------------------------------------------------------------------------------
/emacsver.texi:
--------------------------------------------------------------------------------
1 | @c It would be nicer to generate this using configure and @version@.
2 | @c However, that would mean emacsver.texi would always be newer
3 | @c then the info files in release tarfiles.
4 | @set EMACSVER 24.3.50
5 |
--------------------------------------------------------------------------------
/keisen.pl:
--------------------------------------------------------------------------------
1 | #!/usr/local/bin/perl
2 | $flag = 0;
3 | while (<>) {
4 | chop && /\n$/;
5 | if (/\@c ascii diagram$/) {$flag = 1;}
6 | if (/\@c ascii diagram end$/) {$flag = 0;}
7 | if (($flag == 1) && (/^[^\@]/)) {s/^/\@d /;}
8 | if (($flag == 1) && (/^\@c/)) {
9 | unless (/^\@c ascii/) {
10 | s/^\@c //;
11 | }
12 | }
13 | if (($flag == 1) && (/^\@d/)) {s/^\@d/\@c/;}
14 | print $_,"\n";
15 | }
16 |
--------------------------------------------------------------------------------
/lambda-1.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 33 710 173 759
3 | %%Title: lambda-diagram1
4 | %%CreationDate: Wed Mar 8 14:31:53 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 33 710 173 759
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % TEXT
410 | 0 setgray
411 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
412 | gsave
413 | 63 75 moveto (\(multiply-by-seven 3\)) show
414 | grestore
415 |
416 | % POLY/OPEN-SPLINE
417 | gsave
418 | newpath
419 | 80 80 moveto
420 | 96 96 lineto
421 | 224 96 lineto
422 | 240 80 lineto
423 | stroke
424 | grestore
425 |
426 | % POLY/OPEN-SPLINE
427 | gsave
428 | newpath
429 | 264 119 moveto
430 | -22 0 atan dup cos 8 mul 264 exch sub
431 | exch sin 8 mul 97 exch sub lineto
432 | stroke
433 | grestore
434 | gsave
435 | newpath
436 | 264 97 8 3 0 -22 tgifarrowtip
437 | closepath fill
438 | grestore
439 |
440 | % POLY/OPEN-SPLINE
441 | gsave
442 | newpath
443 | 160 103 moveto
444 | 160 119 lineto
445 | stroke
446 | grestore
447 |
448 | % TEXT
449 | 0 setgray
450 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
451 | gsave
452 | 112 139 moveto (function) show
453 | grestore
454 |
455 | % TEXT
456 | 0 setgray
457 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
458 | gsave
459 | 224 139 moveto (argument) show
460 | grestore
461 |
462 | grestore
463 | tgifsavedpage restore
464 | end
465 | %MatchingCreationDate: Wed Mar 8 14:31:53 1995
466 |
--------------------------------------------------------------------------------
/lambda-1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/lambda-1.pdf
--------------------------------------------------------------------------------
/lambda-2.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 33 730 240 777
3 | %%Title: lambda-diagram2
4 | %%CreationDate: Wed Mar 8 14:33:09 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 33 730 240 777
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % TEXT
410 | 0 setgray
411 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
412 | gsave
413 | 63 43 moveto (\(\(lambda \(number\) \(* 7 number\)\) 3\)) show
414 | grestore
415 |
416 | % POLY/OPEN-SPLINE
417 | gsave
418 | newpath
419 | 80 48 moveto
420 | 96 64 lineto
421 | 336 64 lineto
422 | 353 49 lineto
423 | stroke
424 | grestore
425 |
426 | % POLY/OPEN-SPLINE
427 | gsave
428 | newpath
429 | 395 85 moveto
430 | -21 0 atan dup cos 8 mul 395 exch sub
431 | exch sin 8 mul 64 exch sub lineto
432 | stroke
433 | grestore
434 | gsave
435 | newpath
436 | 395 64 8 3 0 -21 tgifarrowtip
437 | closepath fill
438 | grestore
439 |
440 | % POLY/OPEN-SPLINE
441 | gsave
442 | newpath
443 | 208 69 moveto
444 | 208 85 lineto
445 | stroke
446 | grestore
447 |
448 | % TEXT
449 | 0 setgray
450 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
451 | gsave
452 | 112 102 moveto (anonymous function) show
453 | grestore
454 |
455 | % TEXT
456 | 0 setgray
457 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
458 | gsave
459 | 344 102 moveto (argument) show
460 | grestore
461 |
462 | grestore
463 | tgifsavedpage restore
464 | end
465 | %MatchingCreationDate: Wed Mar 8 14:33:09 1995
466 |
--------------------------------------------------------------------------------
/lambda-2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/lambda-2.pdf
--------------------------------------------------------------------------------
/lambda-3.eps:
--------------------------------------------------------------------------------
1 | %!PS-Adobe-3.0 EPSF-3.0
2 | %%BoundingBox: 33 728 211 777
3 | %%Title: lambda-diagram3
4 | %%CreationDate: Wed Mar 8 14:33:49 1995
5 | %%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 |
7 | % Copyright (C) 1995, 1997, 2001-2013 Free Software Foundation, Inc.
8 | %
9 | % This file is part of GNU Emacs.
10 | %
11 | % GNU Emacs is free software: you can redistribute it and/or modify
12 | % it under the terms of the GNU General Public License as published by
13 | % the Free Software Foundation, either version 3 of the License, or
14 | % (at your option) any later version.
15 | %
16 | % GNU Emacs is distributed in the hope that it will be useful,
17 | % but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | % GNU General Public License for more details.
20 | %
21 | % You should have received a copy of the GNU General Public License
22 | % along with GNU Emacs. If not, see .
23 |
24 | /tgifdict 132 dict def
25 | tgifdict begin
26 |
27 | %
28 | % Using a zero value radius for an ellipse or an arc would result
29 | % in a non-invertible CTM matrix which causes problem when this
30 | % when this PostScript is wrapped inside other routines, such as
31 | % the multi.ps package from
32 | % ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
33 | % error by uncommenting the sole line of the procedure below:
34 | %
35 | /tgif_min_radius
36 | {
37 | % dup 0.01 lt { pop 0.01 } if
38 | } bind def
39 |
40 | /tgifellipsedict 6 dict def
41 | tgifellipsedict /mtrx matrix put
42 |
43 | /tgifellipse
44 | { tgifellipsedict begin
45 | /yrad exch def
46 | /xrad exch def
47 | /y exch def
48 | /x exch def
49 | /savematrix mtrx currentmatrix def
50 | x y translate
51 | xrad yrad scale
52 | 0 0 1 0 360 arc
53 | savematrix setmatrix
54 | end
55 | } def
56 |
57 | /tgifarrowtipdict 8 dict def
58 | tgifarrowtipdict /mtrx matrix put
59 |
60 | /tgifarrowtip
61 | { tgifarrowtipdict begin
62 | /dy exch def
63 | /dx exch def
64 | /h exch def
65 | /w exch def
66 | /y exch def
67 | /x exch def
68 | /savematrix mtrx currentmatrix def
69 | x y translate
70 | dy dx atan rotate
71 | 0 0 moveto
72 | w neg h lineto
73 | w neg h neg lineto
74 | savematrix setmatrix
75 | end
76 | } def
77 |
78 | /tgifarcdict 8 dict def
79 | tgifarcdict /mtrx matrix put
80 |
81 | /tgifarcn
82 | { tgifarcdict begin
83 | /endangle exch def
84 | /startangle exch def
85 | /yrad exch def
86 | /xrad exch def
87 | /y exch def
88 | /x exch def
89 | /savematrix mtrx currentmatrix def
90 | x y translate
91 | xrad yrad scale
92 | 0 0 1 startangle endangle arc
93 | savematrix setmatrix
94 | end
95 | } def
96 |
97 | /tgifarc
98 | { tgifarcdict begin
99 | /endangle exch def
100 | /startangle exch def
101 | /yrad exch def
102 | /xrad exch def
103 | /y exch def
104 | /x exch def
105 | /savematrix mtrx currentmatrix def
106 | x y translate
107 | xrad yrad scale
108 | 0 0 1 startangle endangle arcn
109 | savematrix setmatrix
110 | end
111 | } def
112 |
113 | /tgifsetuserscreendict 22 dict def
114 | tgifsetuserscreendict begin
115 | /tempctm matrix def
116 | /temprot matrix def
117 | /tempscale matrix def
118 |
119 | /concatprocs
120 | { /proc2 exch cvlit def
121 | /proc1 exch cvlit def
122 | /newproc proc1 length proc2 length add array def
123 | newproc 0 proc1 putinterval
124 | newproc proc1 length proc2 putinterval
125 | newproc cvx
126 | } def
127 | /resmatrix matrix def
128 | /findresolution
129 | { 72 0 resmatrix defaultmatrix dtransform
130 | /yres exch def /xres exch def
131 | xres dup mul yres dup mul add sqrt
132 | } def
133 | end
134 |
135 | /tgifsetuserscreen
136 | { tgifsetuserscreendict begin
137 | /spotfunction exch def
138 | /screenangle exch def
139 | /cellsize exch def
140 |
141 | /m tempctm currentmatrix def
142 | /rm screenangle temprot rotate def
143 | /sm cellsize dup tempscale scale def
144 |
145 | sm rm m m concatmatrix m concatmatrix pop
146 |
147 | 1 0 m dtransform /y1 exch def /x1 exch def
148 |
149 | /veclength x1 dup mul y1 dup mul add sqrt def
150 | /frequency findresolution veclength div def
151 |
152 | /newscreenangle y1 x1 atan def
153 |
154 | m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
155 |
156 | {{neg} /spotfunction load concatprocs
157 | /spotfunction exch def
158 | } if
159 |
160 | frequency newscreenangle /spotfunction load setscreen
161 | end
162 | } def
163 |
164 | /tgifsetpatterndict 18 dict def
165 | tgifsetpatterndict begin
166 | /bitison
167 | { /ybit exch def /xbit exch def
168 | /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
169 |
170 | /mask 1 7 xbit 8 mod sub bitshift def
171 | bytevalue mask and 0 ne
172 | } def
173 | end
174 |
175 | /tgifbitpatternspotfunction
176 | { tgifsetpatterndict begin
177 | /y exch def /x exch def
178 |
179 | /xindex x 1 add 2 div bpside mul cvi def
180 | /yindex y 1 add 2 div bpside mul cvi def
181 |
182 | xindex yindex bitison
183 | { /onbits onbits 1 add def 1 }
184 | { /offbits offbits 1 add def 0 }
185 | ifelse
186 | end
187 | } def
188 |
189 | /tgifsetpattern
190 | { tgifsetpatterndict begin
191 | /cellsz exch def
192 | /angle exch def
193 | /bwidth exch def
194 | /bpside exch def
195 | /bstring exch def
196 |
197 | /onbits 0 def /offbits 0 def
198 | cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
199 | {} settransfer
200 | offbits offbits onbits add div setgray
201 | end
202 | } def
203 |
204 | /tgifxpmdict 4 dict def
205 | /tgifbwpicstr 1 string def
206 | /tgifcolorpicstr 3 string def
207 |
208 | /tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
209 |
210 | /tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
211 |
212 | /tgifbwspot
213 | { tgifxpmdict begin
214 | /index exch def
215 | tgifbwpicstr 0
216 | pixels index 3 mul 3 getinterval aload pop
217 | 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
218 | cvi put
219 | tgifbwpicstr
220 | end
221 | } def
222 |
223 | /tgifcolorspot
224 | { tgifxpmdict begin
225 | /index exch def
226 | pixels index 3 mul 3 getinterval aload pop
227 | 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
228 | 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
229 | 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
230 | tgifcolorpicstr
231 | end
232 | } def
233 |
234 | /tgifnewcolorspot
235 | { tgifxpmdict begin
236 | /index exch def
237 | pixels index 3 mul 3 getinterval aload pop setrgbcolor
238 | end
239 | } def
240 |
241 | /tgifcolordict 4 dict def
242 |
243 | /colorimage where
244 | { pop }
245 | { /colorimage
246 | { tgifcolordict begin
247 | pop pop pop pop pop
248 | /ih exch def
249 | /iw exch def
250 | /x 0 def
251 | /y 0 def
252 | 1 1 ih
253 | { pop 1 1 iw
254 | { pop currentfile
255 | tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
256 | x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
257 | closepath fill
258 | /x x 1 add def
259 | } for
260 | /y y 1 add def
261 | /x 0 def
262 | } for
263 | end
264 | } def
265 | } ifelse
266 |
267 | /tgifpatdict 10 dict def
268 |
269 | /tgifpatbyte
270 | { currentdict /retstr get exch
271 | pat i cellsz mod get put
272 | } def
273 |
274 | /tgifpatproc
275 | { 0 1 widthlim {tgifpatbyte} for retstr
276 | /i i 1 add def
277 | } def
278 |
279 | /tgifpatfill
280 | { tgifpatdict begin
281 | /h exch def
282 | /w exch def
283 | /lty exch def
284 | /ltx exch def
285 | /cellsz exch def
286 | /pat exch def
287 |
288 | /widthlim w cellsz div cvi 1 sub def
289 | /retstr widthlim 1 add string def
290 | /i 0 def
291 |
292 | ltx lty translate
293 | w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
294 | ltx neg lty neg translate
295 | end
296 | } def
297 |
298 | /pat1 def
299 | /pat2 <0000000000000000> def
300 | /pat3 <8000000008000000> def
301 | /pat4 <8800000022000000> def
302 | /pat5 <8800220088002200> def
303 | /pat6 <8822882288228822> def
304 | /pat7 def
305 | /pat8 <77dd77dd77dd77dd> def
306 | /pat9 <77ffddff77ffddff> def
307 | /pat10 <77ffffff77ffffff> def
308 | /pat11 <7fffffff7fffffff> def
309 | /pat12 <8040200002040800> def
310 | /pat13 <40a00000040a0000> def
311 | /pat14 def
312 | /pat15 def
313 | /pat16 def
314 | /pat17 <038448300c020101> def
315 | /pat18 <081c22c180010204> def
316 | /pat19 <8080413e080814e3> def
317 | /pat20 <8040201008040201> def
318 | /pat21 <8844221188442211> def
319 | /pat22 <77bbddee77bbddee> def
320 | /pat23 def
321 | /pat24 <7fbfdfeff7fbfdfe> def
322 | /pat25 <3e1f8fc7e3f1f87c> def
323 | /pat26 <0102040810204080> def
324 | /pat27 <1122448811224488> def
325 | /pat28 def
326 | /pat29 <83070e1c3870e0c1> def
327 | /pat30 def
328 | /pat31 <7cf8f1e3c78f1f3e> def
329 |
330 | /tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
331 |
332 | /tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
333 |
334 | /tgifreencsmalldict 12 dict def
335 | /tgifReEncodeSmall
336 | { tgifreencsmalldict begin
337 | /newcodesandnames exch def
338 | /newfontname exch def
339 | /basefontname exch def
340 |
341 | /basefontdict basefontname findfont def
342 | /newfont basefontdict maxlength dict def
343 |
344 | basefontdict
345 | { exch dup /FID ne
346 | { dup /Encoding eq
347 | { exch dup length array copy newfont 3 1 roll put }
348 | { exch newfont 3 1 roll put }
349 | ifelse
350 | }
351 | { pop pop }
352 | ifelse
353 | }
354 | forall
355 |
356 | newfont /FontName newfontname put
357 | newcodesandnames aload pop
358 |
359 | newcodesandnames length 2 idiv
360 | { newfont /Encoding get 3 1 roll put}
361 | repeat
362 |
363 | newfontname newfont definefont pop
364 | end
365 | } def
366 |
367 | /tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
368 |
369 | /tgifboxdict 6 dict def
370 | /tgifboxstroke
371 | { tgifboxdict begin
372 | /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
373 | 1.415 setmiterlimit
374 | w 1 eq { w setlinewidth } if
375 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
376 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
377 | pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
378 | pat pat1 ne pat pat2 ne and { grestore } if
379 | w 1 eq { 1 setlinewidth } if
380 | 1 setmiterlimit
381 | end
382 | } def
383 | /tgifboxfill
384 | { tgifboxdict begin
385 | /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
386 | pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
387 | newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
388 | pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
389 | pat pat1 ne pat pat2 ne and { grestore } if
390 | end
391 | } def
392 |
393 | end
394 |
395 | %%PageBoundingBox: 33 728 211 777
396 | tgifdict begin
397 | /tgifsavedpage save def
398 |
399 | 1 setmiterlimit
400 | 1 setlinewidth
401 |
402 | 0 setgray
403 |
404 | 72 0 mul 72 11.00 mul translate
405 | 72 128 div 100 mul 100 div dup neg scale
406 |
407 | gsave
408 |
409 | % TEXT
410 | 0 setgray
411 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
412 | gsave
413 | 63 43 moveto (\(\(lambda \(arg\) \(/ arg 50\)\) 100\)) show
414 | grestore
415 |
416 | % POLY/OPEN-SPLINE
417 | gsave
418 | newpath
419 | 80 48 moveto
420 | 96 64 lineto
421 | 284 64 lineto
422 | 299 48 lineto
423 | stroke
424 | grestore
425 |
426 | % POLY/OPEN-SPLINE
427 | gsave
428 | newpath
429 | 354 86 moveto
430 | -25 0 atan dup cos 8 mul 354 exch sub
431 | exch sin 8 mul 61 exch sub lineto
432 | stroke
433 | grestore
434 | gsave
435 | newpath
436 | 354 61 8 3 0 -25 tgifarrowtip
437 | closepath fill
438 | grestore
439 |
440 | % POLY/OPEN-SPLINE
441 | gsave
442 | newpath
443 | 199 70 moveto
444 | 199 86 lineto
445 | stroke
446 | grestore
447 |
448 | % TEXT
449 | 0 setgray
450 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
451 | gsave
452 | 101 106 moveto (anonymous function) show
453 | grestore
454 |
455 | % TEXT
456 | 0 setgray
457 | /Courier findfont [17 0 0 -17 0 0] makefont setfont
458 | gsave
459 | 293 106 moveto (argument) show
460 | grestore
461 |
462 | grestore
463 | tgifsavedpage restore
464 | end
465 | %MatchingCreationDate: Wed Mar 8 14:33:49 1995
466 |
--------------------------------------------------------------------------------
/lambda-3.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emacs-jp/elisp-intro-ja/f135f863551ffd1fbea1a79a1c74fe394b9e8212/lambda-3.pdf
--------------------------------------------------------------------------------