Move here from ../../lispintro/
This commit is contained in:
parent
316194a752
commit
8cda6f8f44
23 changed files with 30818 additions and 0 deletions
279
doc/lispintro/ChangeLog
Normal file
279
doc/lispintro/ChangeLog
Normal file
|
@ -0,0 +1,279 @@
|
|||
2007-09-06 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Move from lispintro/ to doc/lispintro/.
|
||||
* Makefile.in (infodir): Go up one more level.
|
||||
(usermanualdir): Change from ../man to ../emacs.
|
||||
* makefile.w32-in (infodir, ENVADD): Go up one more level.
|
||||
* emacs-lisp-intro.texi (setfilename): Go up one more level.
|
||||
|
||||
2007-07-30 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Fix typo on line 5173, change `thee' to
|
||||
`these'.
|
||||
|
||||
2007-07-25 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Relicense all FSF files to GPLv3 or later.
|
||||
|
||||
2007-06-02 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Version 22.1 released.
|
||||
|
||||
2007-01-30 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi (else): Rephrase message of first
|
||||
if-then-else example so it is right both in itself and in the
|
||||
"true" case of the expression, which asks whether 4 is greater
|
||||
than 5.
|
||||
|
||||
2006-11-27 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* Makefile.in (usermanualdir): Define.
|
||||
(emacs-lisp-intro.dvi): Pass -I options to texi2dvi instead of
|
||||
using TEXINPUTS.
|
||||
|
||||
* emacs-lisp-intro.texi: Input texinfo instead of ../man/texinfo
|
||||
to fix building outside source directory.
|
||||
|
||||
2006-11-09 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Copy descriptions from detailed master
|
||||
menu to menus within body.
|
||||
|
||||
* emacs-lisp-intro.texi (at the beginning): Add `other shell
|
||||
commands' to produce additional output formats; total is now ten.
|
||||
(A Loop with an Incrementing Counter, and others): Ensure Info
|
||||
menus will appear in short windows.
|
||||
(Disentangle beginning-of-buffer): Replace `version 21' with `more
|
||||
recent versions'.
|
||||
(Simple Extension): Show how to handle multiple versions by adding
|
||||
an alternative with a test of `>= 21'
|
||||
|
||||
|
||||
2006-11-06 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Finish minor changes seen from DVI output.
|
||||
Replace 22.1.100 with 22.1.1.
|
||||
(current-kill): Mention functions that directly or indirectly call
|
||||
`kill-new', which sets `kill-ring-yank-pointer'.
|
||||
(Understanding current-kill): Change `lasted' to `last'. Remove
|
||||
extraneous parenthesis. Reword item about returning `car' of list.
|
||||
(yank): Remove mention of `rotate-yank-pointer'.
|
||||
(Y Axis Element): Add comment regarding replacement of blank space.
|
||||
(print-Y-axis Penultimate): Explain that `print-graph' will pass
|
||||
`height-of-top-line' so `print-Y-axis' does not have a bug.
|
||||
|
||||
2006-11-05 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Yet more minor changes:
|
||||
(defcustom): Said that `:options' is usually for a hook. Remove
|
||||
extraneous space in parenthetical remark concerning
|
||||
`text-mode-hook-identify'. At end, mention other defines, too.
|
||||
(Beginning a .emacs File): Reverse words about comments so they
|
||||
parallel numbers of listed semi-colons.
|
||||
(Text and Auto-fill): Remove extraneous blank line in example.
|
||||
(Mail Aliases): Remove extraneous blank line in example.
|
||||
(Keybindings): Reformat as needed with `key' rather than `kbd'.
|
||||
(Keybindings, Miscellaneous, Mode Line): For small book format, start
|
||||
section name on top of new page.
|
||||
(Simple Extension): Replace longer expression with
|
||||
`emacs-major-version'. Remove comment about `number-to-string'
|
||||
function.
|
||||
(Miscellaneous): Add filename option, `-H', to `grep' example
|
||||
(debug, debug-on-entry): Replace `GNU Emacs 22' with `a recent
|
||||
GNU Emacs'.
|
||||
(edebug): More properly state where to place point for 'M-x
|
||||
edebug-defun'.
|
||||
|
||||
* emacs-lisp-intro.texi: More minor changes.
|
||||
Center images for TeX output.
|
||||
(kill-new function): Remove indentation for sentence talking about
|
||||
momentarily skipping code.
|
||||
(cons & search-fwd Review): Document @code{funcall}. Document
|
||||
@code{re-search-forward} with existing @code{search-forward}.
|
||||
Reference chapter on regular expression searches.
|
||||
(Recursion with list): Specify a more recent version as being Emacs.
|
||||
(Recursion with list, Every, recursive-graph-body-print): Change
|
||||
`if ... progn' expression to `when'.
|
||||
(Recursive triangle function): For printing in small book, ensure
|
||||
section name is not last on bottom of preceding page.
|
||||
(Keep): Remove extraneous space in function definition example.
|
||||
(sentence-end): Specify `in English' for glyphs that end a sentence.
|
||||
Note that in GNU Emacs 22, the name refers to both a variable and a
|
||||
function.
|
||||
(fwd-sentence while loops): Write a function as one, not as a form
|
||||
(fwd-para let): Add `which' to sentence with `parstart' and `parsep'.
|
||||
(etags): Move sentences involving `find-tag' and sources. State
|
||||
location of Emacs `src' directory.
|
||||
(Design count-words-region): Better explain two backslashes in a row.
|
||||
(Find a File): Fix grammar; add a `to' and write `to visit'. Change
|
||||
`named' to `selected'.
|
||||
(lengths-list-file): Remove extraneous parenthesis from reference.
|
||||
(lengths-list-many-files): Explain `expand-file-name' better.
|
||||
(Files List): Rephrase sentence regarding Lisp sources directory
|
||||
|
||||
2006-11-04 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Replace 22.0.100 with 22.1.100.
|
||||
(defcustom): Note that the value set by defconst is a variable.
|
||||
(Buffer Size & Locations): Parenthetical remark about evaluation.
|
||||
(Finding More): Change text to include C sources by inference.
|
||||
|
||||
* emacs-lisp-intro.texi: Minor fixes.
|
||||
Replace all tabs with eight spaces each so printed text looks correct.
|
||||
Remove extraneous comma in a printed node name produced by `ref'.
|
||||
(insert-buffer): Add a missing beginning parenthesis.
|
||||
(beginning-of-buffer): Add `beginning of' to note about accessible
|
||||
portion.
|
||||
(narrow Exercise): Write closing parenthesis at end of correct
|
||||
paragraph.
|
||||
(zap-to-char): Remove extraneous `a' from first sentence.
|
||||
(Complete zap-to-char): Remove two extraneous sentences.
|
||||
(zap-to-char body): Move sentences on documentation two nodes earlier.
|
||||
(Lisp macro): Add definition of `unless' macro.
|
||||
(last-command & this-command): Remove comment that `we have not yet
|
||||
seen' the @code{eq} function.
|
||||
(kill-append function): Reformat `kill-append' function definition so
|
||||
it prints well.
|
||||
(kill-new function): Indent the sentence beginning `notice'. Replace
|
||||
`the same as' with `similar to'. Repair typo. Remove obsolete
|
||||
references to `yank' and `yank-pop. End section with a note that `we
|
||||
will digress into C.'
|
||||
|
||||
2006-11-02 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi (kill-ring-yank-pointer): Revert addition
|
||||
of extraneous quotation mark to rotate-yank-pointer.
|
||||
|
||||
2006-11-01 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* emacs-lisp-intro.texi: Fix unbalanced quotes.
|
||||
|
||||
2006-10-31 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Revised text for kill-region,
|
||||
copy-region-as-kill, kill-append, kill-new, forward-sentence,
|
||||
forward-paragraph, find-file, current-kill, yank, and yank-pop.
|
||||
Removed INSTALL MANIFEST from the directory since those files are
|
||||
now irrelevant. Updated Info file in ../info. Changed numbering
|
||||
so is now Revised Third Edition and this instance's edition-number
|
||||
is 3.00. Did not update ISBN number.
|
||||
|
||||
* emacs-lisp-intro.texi: Remove version reference for X colors.
|
||||
Document `='. Remove mention that :eval was new in 21. Updated
|
||||
instance's edition-number to 3.01.
|
||||
|
||||
2006-10-30 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Many changes since it turned out that
|
||||
many `simple' functions were rewritten. Changes to the text
|
||||
regarding zap-to-char, mark-whole-buffer, append-to-buffer,
|
||||
copy-to-buffer, beginning-of-buffer, what-line, and possibly
|
||||
others. (I have not reviewed all yet.) This instance does build
|
||||
for Info and TeX.
|
||||
|
||||
2006-10-29 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* Makefile.in: Use relative paths to avoid advertising filesystem
|
||||
contents during compilation.
|
||||
|
||||
2006-08-21 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: deleted in directory copy of texinfo.tex
|
||||
and pointed towards ../man/texinfo.tex so only one file
|
||||
needs updating. Added comment of what to do when building on own.
|
||||
|
||||
* texinfo.tex: changed to version 2006-02-13.16
|
||||
to enable a DVI build using the more recent versions of TeX.
|
||||
|
||||
2006-05-25 David Kastrup <dak@gnu.org>
|
||||
|
||||
* emacs-lisp-intro.texi (setcar): replace an antelope rather than
|
||||
a giraffe with a hippopotamus.
|
||||
|
||||
2006-05-19 Thien-Thi Nguyen <ttn@gnu.org>
|
||||
|
||||
* emacs-lisp-intro.texi (Digression concerning error): Fix typo.
|
||||
|
||||
2005-09-16 Romain Francoise <romain@orebokech.com>
|
||||
|
||||
* emacs-lisp-intro.texi (GNU Free Documentation License):
|
||||
Specify GFDL version 1.2.
|
||||
|
||||
2005-07-30 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* makefile.w32-in (info): Don't run install-info.
|
||||
($(infodir)/dir): New target, produced by running install-info.
|
||||
|
||||
2005-07-04 Lute Kamstra <lute@gnu.org>
|
||||
|
||||
Update FSF's address in GPL notices.
|
||||
|
||||
* emacs-lisp-intro.texi: Update FSF's address.
|
||||
|
||||
2004-04-23 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* makefile.w32-in: Add "-*- makefile -*-" mode tag.
|
||||
|
||||
2004-02-29 Juanma Barranquero <lektu@terra.es>
|
||||
|
||||
* makefile.w32-in (mostlyclean, clean, maintainer-clean): Use
|
||||
$(DEL) instead of rm, and ignore exit code.
|
||||
|
||||
2003-11-16 Kevin Ryde <user42@zip.com.au>
|
||||
|
||||
* emacs-lisp-intro.texi: [CVS commitment by <bob@rattlesnake.com>]
|
||||
Corrections to cross references,
|
||||
(Interactive Options): elisp "interactive" -> "Using Interactive".
|
||||
(defvar and asterisk): Remove emacs "Edit Options" reference,
|
||||
edit-options is no longer described in the emacs manual.
|
||||
(Lists diagrammed): elisp "List Type" -> "Cons Cell Type".
|
||||
|
||||
2003-09-03 Peter Runestig <peter@runestig.com>
|
||||
|
||||
* makefile.w32-in: New file.
|
||||
|
||||
2001-11-29 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
* emacs-lisp-intro.texi (Index): @ignore extraneous text.
|
||||
Use @dircategory and @direntry to define the DIR entry.
|
||||
|
||||
2001-11-25 Robert J. Chassell <bob@rattlesnake.com>
|
||||
|
||||
* emacs-lisp-intro.texi: Move @contents to the beginning of the
|
||||
file. Set the size to @smallbook.
|
||||
|
||||
2001-11-24 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
* Makefile.in: New file.
|
||||
|
||||
* README: Update.
|
||||
|
||||
* *.eps: Rename to avoid clashes in DOS 8+3 namespace.
|
||||
|
||||
;; Local Variables:
|
||||
;; coding: iso-2022-7bit
|
||||
;; add-log-time-zone-rule: t
|
||||
;; End:
|
||||
|
||||
Copyright (C) 2001, 2002, 2003, 2004, 2005,
|
||||
2006, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
||||
|
||||
;;; arch-tag: ee4f8e1f-e14c-4d2e-86de-4dd697e6f1c3
|
7
doc/lispintro/Makefile.am
Normal file
7
doc/lispintro/Makefile.am
Normal file
|
@ -0,0 +1,7 @@
|
|||
AUTOMAKE_OPTIONS = foreign 1.2
|
||||
info_TEXINFOS = emacs-lisp-intro.texi
|
||||
EXTRA_DIST = INSTALL MANIFEST README drawers.eps \
|
||||
cons-1.eps cons-2.eps cons-2a.eps cons-3.eps \
|
||||
cons-4.eps cons-5.eps lambda-1.eps lambda-2.eps lambda-3.eps
|
||||
|
||||
# arch-tag: 6a3e6d99-7aa2-479f-939c-5531165c5747
|
72
doc/lispintro/Makefile.in
Normal file
72
doc/lispintro/Makefile.in
Normal file
|
@ -0,0 +1,72 @@
|
|||
#### Makefile for the Emacs Lisp Introduction manual
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
infodir = ../info
|
||||
usermanualdir = $(srcdir)/../man
|
||||
|
||||
INFO_SOURCES = ${srcdir}/emacs-lisp-intro.texi
|
||||
# The file name eintr must fit within 5 characters, to allow for
|
||||
# -NN extensions to fit into DOS 8+3 limits without clashing
|
||||
INFO_TARGETS = ${infodir}/eintr
|
||||
DVI_TARGETS = emacs-lisp-intro.dvi
|
||||
|
||||
MAKEINFO = makeinfo
|
||||
TEXI2DVI = texi2dvi
|
||||
DVIPS = dvips
|
||||
|
||||
.SUFFIXES: .dvi .ps .texi
|
||||
|
||||
info: $(INFO_TARGETS)
|
||||
|
||||
dvi: $(DVI_TARGETS)
|
||||
|
||||
${infodir}/eintr: ${INFO_SOURCES}
|
||||
cd $(srcdir); $(MAKEINFO) emacs-lisp-intro.texi -o $(infodir)/eintr
|
||||
|
||||
emacs-lisp-intro.dvi: ${INFO_SOURCES}
|
||||
$(TEXI2DVI) -I $(srcdir) -I $(usermanualdir) $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
emacs-lisp-intro.html: $(INFO_SOURCES)
|
||||
$(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
.dvi.ps:
|
||||
$(DVIPS) $< -o $@
|
||||
|
||||
mostlyclean:
|
||||
rm -f *.log *.cp *.fn *.ky *.pg *.vr *.tp
|
||||
|
||||
clean: mostlyclean
|
||||
rm -f *.dvi
|
||||
|
||||
distclean: clean
|
||||
|
||||
maintainer-clean: distclean
|
||||
rm -f *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
344
doc/lispintro/Makefile.old
Normal file
344
doc/lispintro/Makefile.old
Normal file
|
@ -0,0 +1,344 @@
|
|||
# Makefile.in generated automatically by automake 1.4-p4 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
|
||||
# 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
bindir = @bindir@
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
localstatedir = @localstatedir@
|
||||
libdir = @libdir@
|
||||
infodir = @infodir@
|
||||
mandir = @mandir@
|
||||
includedir = @includedir@
|
||||
oldincludedir = /usr/include
|
||||
|
||||
DESTDIR =
|
||||
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
|
||||
top_builddir = .
|
||||
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
transform = @program_transform_name@
|
||||
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
MAKEINFO = @MAKEINFO@
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.2
|
||||
info_TEXINFOS = emacs-lisp-intro.texi
|
||||
EXTRA_DIST = INSTALL MANIFEST README chest-of-drawers-diagram.eps cons-cell-diagram1.eps cons-cell-diagram2.eps cons-cell-diagram2a.eps cons-cell-diagram3.eps cons-cell-diagram4.eps cons-cell-diagram5.eps lambda-diagram1.eps lambda-diagram2.eps lambda-diagram3.eps
|
||||
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_CLEAN_FILES =
|
||||
TEXI2DVI = texi2dvi
|
||||
INFO_DEPS = emacs-lisp-intro.info
|
||||
DVIS = emacs-lisp-intro.dvi
|
||||
TEXINFOS = emacs-lisp-intro.texi
|
||||
DIST_COMMON = README INSTALL Makefile.am Makefile.in aclocal.m4 \
|
||||
configure configure.in install-sh missing mkinstalldirs texinfo.tex
|
||||
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
GZIP_ENV = --best
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
$(ACLOCAL_M4): configure.in
|
||||
cd $(srcdir) && $(ACLOCAL)
|
||||
|
||||
config.status: $(srcdir)/configure.in $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
|
||||
emacs-lisp-intro.info: emacs-lisp-intro.texi
|
||||
emacs-lisp-intro.dvi: emacs-lisp-intro.texi
|
||||
|
||||
|
||||
DVIPS = dvips
|
||||
|
||||
.texi.info:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
|
||||
|
||||
.texi.dvi:
|
||||
TEXINPUTS=.:$$TEXINPUTS \
|
||||
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
|
||||
|
||||
.texi:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
|
||||
|
||||
.texinfo.info:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
|
||||
|
||||
.texinfo:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
|
||||
|
||||
.texinfo.dvi:
|
||||
TEXINPUTS=.:$$TEXINPUTS \
|
||||
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
|
||||
|
||||
.txi.info:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
|
||||
|
||||
.txi.dvi:
|
||||
TEXINPUTS=.:$$TEXINPUTS \
|
||||
MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
|
||||
|
||||
.txi:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) `echo $< | sed 's,.*/,,'`
|
||||
.dvi.ps:
|
||||
$(DVIPS) $< -o $@
|
||||
|
||||
install-info-am: $(INFO_DEPS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(infodir)
|
||||
@list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
d=$(srcdir); \
|
||||
for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
|
||||
if test -f $$d/$$ifile; then \
|
||||
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
|
||||
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
|
||||
else : ; fi; \
|
||||
done; \
|
||||
done
|
||||
@$(POST_INSTALL)
|
||||
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
|
||||
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
|
||||
done; \
|
||||
else : ; fi
|
||||
|
||||
uninstall-info:
|
||||
$(PRE_UNINSTALL)
|
||||
@if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
|
||||
ii=yes; \
|
||||
else ii=; fi; \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
test -z "$$ii" \
|
||||
|| install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
|
||||
done
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
(cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
|
||||
done
|
||||
|
||||
dist-info: $(INFO_DEPS)
|
||||
list='$(INFO_DEPS)'; \
|
||||
for base in $$list; do \
|
||||
d=$(srcdir); \
|
||||
for file in `cd $$d && eval echo $$base*`; do \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file; \
|
||||
done; \
|
||||
done
|
||||
|
||||
mostlyclean-aminfo:
|
||||
-rm -f emacs-lisp-intro.aux emacs-lisp-intro.cp emacs-lisp-intro.cps \
|
||||
emacs-lisp-intro.dvi emacs-lisp-intro.fn emacs-lisp-intro.fns \
|
||||
emacs-lisp-intro.ky emacs-lisp-intro.kys emacs-lisp-intro.ps \
|
||||
emacs-lisp-intro.log emacs-lisp-intro.pg emacs-lisp-intro.toc \
|
||||
emacs-lisp-intro.tp emacs-lisp-intro.tps emacs-lisp-intro.vr \
|
||||
emacs-lisp-intro.vrs emacs-lisp-intro.op emacs-lisp-intro.tr \
|
||||
emacs-lisp-intro.cv emacs-lisp-intro.cn
|
||||
|
||||
clean-aminfo:
|
||||
|
||||
distclean-aminfo:
|
||||
|
||||
maintainer-clean-aminfo:
|
||||
cd $(srcdir) && for i in $(INFO_DEPS); do \
|
||||
rm -f $$i; \
|
||||
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
|
||||
rm -f $$i-[0-9]*; \
|
||||
fi; \
|
||||
done
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
-rm -rf $(distdir)
|
||||
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
|
||||
mkdir $(distdir)/=build
|
||||
mkdir $(distdir)/=inst
|
||||
dc_install_base=`cd $(distdir)/=inst && pwd`; \
|
||||
cd $(distdir)/=build \
|
||||
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist
|
||||
-rm -rf $(distdir)
|
||||
@banner="$(distdir).tar.gz is ready for distribution"; \
|
||||
dashes=`echo "$$banner" | sed s/./=/g`; \
|
||||
echo "$$dashes"; \
|
||||
echo "$$banner"; \
|
||||
echo "$$dashes"
|
||||
dist: distdir
|
||||
-chmod -R a+r $(distdir)
|
||||
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
|
||||
-rm -rf $(distdir)
|
||||
dist-all: distdir
|
||||
-chmod -R a+r $(distdir)
|
||||
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
|
||||
-rm -rf $(distdir)
|
||||
distdir: $(DISTFILES)
|
||||
-rm -rf $(distdir)
|
||||
mkdir $(distdir)
|
||||
-chmod 777 $(distdir)
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
|
||||
info-am: $(INFO_DEPS)
|
||||
info: info-am
|
||||
dvi-am: $(DVIS)
|
||||
dvi: dvi-am
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
installcheck-am:
|
||||
installcheck: installcheck-am
|
||||
install-exec-am:
|
||||
install-exec: install-exec-am
|
||||
|
||||
install-data-am: install-info-am
|
||||
install-data: install-data-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-am
|
||||
uninstall-am: uninstall-info
|
||||
uninstall: uninstall-am
|
||||
all-am: Makefile $(INFO_DEPS)
|
||||
all-redirect: all-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(infodir)
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
|
||||
maintainer-clean-generic:
|
||||
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
clean-am: clean-aminfo clean-generic mostlyclean-am
|
||||
|
||||
clean: clean-am
|
||||
|
||||
distclean-am: distclean-aminfo distclean-generic clean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f config.status
|
||||
|
||||
maintainer-clean-am: maintainer-clean-aminfo maintainer-clean-generic \
|
||||
distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f config.status
|
||||
|
||||
.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
|
||||
distclean-aminfo clean-aminfo maintainer-clean-aminfo tags distdir \
|
||||
info-am info dvi-am dvi check check-am installcheck-am installcheck \
|
||||
install-exec-am install-exec install-data-am install-data install-am \
|
||||
install uninstall-am uninstall all-redirect all-am all installdirs \
|
||||
mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
# arch-tag: f1a44ea0-b792-4ac7-be28-9626b972c216
|
84
doc/lispintro/README
Normal file
84
doc/lispintro/README
Normal file
|
@ -0,0 +1,84 @@
|
|||
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
This directory contains the source of the "Introduction to Programming
|
||||
in Emacs Lisp" written by Robert J. Chassell, bob@gnu.org. This
|
||||
manual is an elementary introduction to programming in Emacs Lisp for
|
||||
people who are not programmers, and who are not necessarily interested
|
||||
in programming, but who do want to customize or extend their computing
|
||||
environment.
|
||||
|
||||
This third edition of 2006 Oct 31 updates the previous editions to GNU
|
||||
Emacs 22.
|
||||
|
||||
The Texinfo source file `emacs-lisp-intro.texi', formats without
|
||||
reported error using `pdfeTeXk', Version 3.141592-1.21a-2.2 (Web2C
|
||||
7.5.4) and texinfo.tex version 2006-08-26.17 started by `texi2dvi'
|
||||
version 4.8, and with `makeinfo' version 4.8.
|
||||
|
||||
Also, this tar file contains the following optional Encapsulated Post
|
||||
Script figures.
|
||||
|
||||
drawers.eps 7129 bytes
|
||||
cons-1.eps 12136
|
||||
cons-2.eps 12523
|
||||
cons-2a.eps 12420
|
||||
cons-3.eps 12984
|
||||
cons-4.eps 13866
|
||||
cons-5.eps 12986
|
||||
lambda-1.eps 10252
|
||||
lambda-2.eps 10278
|
||||
lambda-3.eps 10275
|
||||
|
||||
See the beginning of the `emacs-lisp-intro.texi' file for appropriate
|
||||
settings. These figures are not necessary; they are merely nice to
|
||||
look at --- without them you get the same figures printed with ASCII
|
||||
characters.
|
||||
|
||||
Whether and how you print PostScript depends on your site. You not
|
||||
only need to set 'print-postscript-figures' before creating the .dvi
|
||||
file, but then must convert the .dvi file to .ps with a 'dvips' or
|
||||
equivalent command.
|
||||
|
||||
On some systems you will see an error message when `psfig.tex' is
|
||||
loaded for the last two .eps files:
|
||||
|
||||
! No room for a new \write .
|
||||
|
||||
If this happens, try `epsf.tex' instead of `psfig.tex', or try typing
|
||||
RET at the error; the formatting may continue successfully.
|
||||
|
||||
Or else find the section that says:
|
||||
|
||||
@c !!! Clear print-postscript-figures if the computer formatting this
|
||||
@c document is too small and cannot handle all the diagrams and figures.
|
||||
@c clear print-postscript-figures
|
||||
|
||||
and change the file so it reads: @clear print-postscript-figures
|
||||
This will prevent TeX from attempting to load the last few .eps files.
|
||||
|
||||
You will find additional instructions on formatting in the beginning
|
||||
of the Texinfo file 'emacs-lisp-intro.texi'. Best Wishes!
|
||||
|
||||
2006 Oct 31
|
||||
Robert J. Chassell, bob@gnu.org
|
||||
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA.
|
105
doc/lispintro/aclocal.m4
vendored
Normal file
105
doc/lispintro/aclocal.m4
vendored
Normal file
|
@ -0,0 +1,105 @@
|
|||
dnl aclocal.m4 generated automatically by aclocal 1.4-p4
|
||||
|
||||
dnl Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
|
||||
dnl 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
# Do all the work for Automake. This macro actually does too much --
|
||||
# some checks are only needed if your package does certain things.
|
||||
# But this isn't really a big deal.
|
||||
|
||||
# serial 1
|
||||
|
||||
dnl Usage:
|
||||
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
|
||||
|
||||
AC_DEFUN(AM_INIT_AUTOMAKE,
|
||||
[AC_REQUIRE([AC_PROG_INSTALL])
|
||||
PACKAGE=[$1]
|
||||
AC_SUBST(PACKAGE)
|
||||
VERSION=[$2]
|
||||
AC_SUBST(VERSION)
|
||||
dnl test to see if srcdir already configured
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
ifelse([$3],,
|
||||
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
|
||||
AC_REQUIRE([AM_SANITY_CHECK])
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])
|
||||
dnl FIXME This is truly gross.
|
||||
missing_dir=`cd $ac_aux_dir && pwd`
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])])
|
||||
|
||||
#
|
||||
# Check to make sure that the build environment is sane.
|
||||
#
|
||||
|
||||
AC_DEFUN(AM_SANITY_CHECK,
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftestfile
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
|
||||
if test "[$]*" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t $srcdir/configure conftestfile`
|
||||
fi
|
||||
if test "[$]*" != "X $srcdir/configure conftestfile" \
|
||||
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "[$]2" = conftestfile
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
rm -f conftest*
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
|
||||
dnl The program must properly implement --version.
|
||||
AC_DEFUN(AM_MISSING_PROG,
|
||||
[AC_MSG_CHECKING(for working $2)
|
||||
# Run test in a subshell; some versions of sh will print an error if
|
||||
# an executable is not found, even if stderr is redirected.
|
||||
# Redirect stdin to placate older versions of autoconf. Sigh.
|
||||
if ($2 --version) < /dev/null > /dev/null 2>&1; then
|
||||
$1=$2
|
||||
AC_MSG_RESULT(found)
|
||||
else
|
||||
$1="$3/missing $2"
|
||||
AC_MSG_RESULT(missing)
|
||||
fi
|
||||
AC_SUBST($1)])
|
||||
|
1044
doc/lispintro/configure
vendored
Executable file
1044
doc/lispintro/configure
vendored
Executable file
File diff suppressed because it is too large
Load diff
9
doc/lispintro/configure.in
Normal file
9
doc/lispintro/configure.in
Normal file
|
@ -0,0 +1,9 @@
|
|||
dnl autoconf input file for the emacs lisp intro
|
||||
|
||||
AC_INIT(emacs-lisp-intro.texi)
|
||||
AM_INIT_AUTOMAKE(emacs-lisp-intro, 2.00)
|
||||
AC_OUTPUT(Makefile)
|
||||
|
||||
m4_if(dnl Do not change this comment
|
||||
arch-tag: 8d676bd8-8677-4ae0-8aa0-99bfd595b373
|
||||
)dnl
|
584
doc/lispintro/cons-1.eps
Normal file
584
doc/lispintro/cons-1.eps
Normal file
|
@ -0,0 +1,584 @@
|
|||
%!
|
||||
%%BoundingBox: 35 711 289 757
|
||||
%%Title: cons-cell-diagram1
|
||||
%%CreationDate: Wed Mar 8 14:26:58 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 35 711 289 757
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
66 66 moveto 130 66 lineto 130 98 lineto 66 98 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
98 66 moveto
|
||||
98 98 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
114 82 moveto
|
||||
0 80 atan dup cos 8 mul 194 exch sub
|
||||
exch sin 8 mul 82 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
194 82 8 3 80 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
146 136 moveto (rose) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
82 82 moveto
|
||||
82 131 lineto
|
||||
0 48 atan dup cos 8 mul 130 exch sub
|
||||
exch sin 8 mul 131 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
130 131 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
199 66 moveto 263 66 lineto 263 98 lineto 199 98 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
231 66 moveto
|
||||
231 98 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
247 82 moveto
|
||||
0 93 atan dup cos 8 mul 340 exch sub
|
||||
exch sin 8 mul 82 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
340 82 8 3 93 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
279 136 moveto (violet) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
215 82 moveto
|
||||
215 131 lineto
|
||||
0 48 atan dup cos 8 mul 263 exch sub
|
||||
exch sin 8 mul 131 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
263 131 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
342 64 moveto 406 64 lineto 406 96 lineto 342 96 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
373 64 moveto
|
||||
373 96 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
389 81 moveto
|
||||
0 48 atan dup cos 8 mul 437 exch sub
|
||||
exch sin 8 mul 81 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
437 81 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
421 135 moveto (buttercup) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
357 81 moveto
|
||||
357 130 lineto
|
||||
0 48 atan dup cos 8 mul 405 exch sub
|
||||
exch sin 8 mul 130 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
405 130 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
449 87 moveto (nil) show
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:26:58 1995
|
606
doc/lispintro/cons-2.eps
Normal file
606
doc/lispintro/cons-2.eps
Normal file
|
@ -0,0 +1,606 @@
|
|||
%!
|
||||
%%BoundingBox: 15 712 321 775
|
||||
%%Title: cons-cell-diagram2
|
||||
%%CreationDate: Wed Mar 8 14:26:39 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 15 712 321 775
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
32 47 moveto (bouquet) show
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
122 65 moveto 186 65 lineto 186 97 lineto 122 97 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
154 65 moveto
|
||||
154 97 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
170 81 moveto
|
||||
0 80 atan dup cos 8 mul 250 exch sub
|
||||
exch sin 8 mul 81 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
250 81 8 3 80 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
202 135 moveto (rose) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
138 81 moveto
|
||||
138 130 lineto
|
||||
0 48 atan dup cos 8 mul 186 exch sub
|
||||
exch sin 8 mul 130 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
186 130 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
255 65 moveto 319 65 lineto 319 97 lineto 255 97 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
287 65 moveto
|
||||
287 97 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
303 81 moveto
|
||||
0 93 atan dup cos 8 mul 396 exch sub
|
||||
exch sin 8 mul 81 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
396 81 8 3 93 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
335 135 moveto (violet) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
271 81 moveto
|
||||
271 130 lineto
|
||||
0 48 atan dup cos 8 mul 319 exch sub
|
||||
exch sin 8 mul 130 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
319 130 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
398 63 moveto 462 63 lineto 462 95 lineto 398 95 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
429 63 moveto
|
||||
429 95 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
445 80 moveto
|
||||
0 48 atan dup cos 8 mul 493 exch sub
|
||||
exch sin 8 mul 80 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
493 80 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
477 134 moveto (buttercup) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
413 80 moveto
|
||||
413 129 lineto
|
||||
0 48 atan dup cos 8 mul 461 exch sub
|
||||
exch sin 8 mul 129 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
461 129 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
505 86 moveto (nil) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
66 53 moveto
|
||||
66 81 lineto
|
||||
0 46 atan dup cos 8 mul 112 exch sub
|
||||
exch sin 8 mul 81 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
112 81 8 3 46 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:26:39 1995
|
600
doc/lispintro/cons-2a.eps
Normal file
600
doc/lispintro/cons-2a.eps
Normal file
|
@ -0,0 +1,600 @@
|
|||
%!
|
||||
%%BoundingBox: 15 702 300 767
|
||||
%%Title: cons-cell-diagram2a
|
||||
%%CreationDate: Tue Mar 14 15:09:30 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 15 702 300 767
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
32 62 moveto (bouquet) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
64 80 moveto
|
||||
64 120 lineto
|
||||
0 49 atan dup cos 8 mul 113 exch sub
|
||||
exch sin 8 mul 120 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
113 120 8 3 49 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
128 110 moveto (car) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
128 142 moveto (rose) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
192 110 moveto (cdr) show
|
||||
grestore
|
||||
|
||||
% OVAL
|
||||
gsave
|
||||
newpath 207 124 4 4 tgifellipse stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
217 123 moveto
|
||||
0 38 atan dup cos 8 mul 255 exch sub
|
||||
exch sin 8 mul 123 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
255 123 8 3 38 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
268 111 moveto (car) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
264 143 moveto (violet) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
332 111 moveto (cdr) show
|
||||
grestore
|
||||
|
||||
% OVAL
|
||||
gsave
|
||||
newpath 347 125 4 4 tgifellipse stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
357 124 moveto
|
||||
0 38 atan dup cos 8 mul 395 exch sub
|
||||
exch sin 8 mul 124 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
395 124 8 3 38 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
408 112 moveto (car) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
408 136 moveto (butter-) show
|
||||
408 153 moveto (cup) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
496 113 moveto (cdr) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
495 137 moveto (nil) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
178 86 moveto
|
||||
178 157 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
485 84 moveto
|
||||
485 157 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
327 85 moveto
|
||||
327 157 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
120 86 moveto 234 86 lineto 234 157 lineto 120 157 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
257 85 moveto 371 85 lineto 371 157 lineto 257 157 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
397 84 moveto 531 84 lineto 531 157 lineto 397 157 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Tue Mar 14 15:09:30 1995
|
630
doc/lispintro/cons-3.eps
Normal file
630
doc/lispintro/cons-3.eps
Normal file
|
@ -0,0 +1,630 @@
|
|||
%!
|
||||
%%BoundingBox: -1 691 324 757
|
||||
%%Title: cons-cell-diagram3
|
||||
%%CreationDate: Wed Mar 8 14:25:41 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: -1 691 324 757
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
128 102 moveto 192 102 lineto 192 134 lineto 128 134 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
160 102 moveto
|
||||
160 134 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
176 124 moveto
|
||||
0 80 atan dup cos 8 mul 256 exch sub
|
||||
exch sin 8 mul 124 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
256 124 8 3 80 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
208 172 moveto (rose) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
144 118 moveto
|
||||
144 167 lineto
|
||||
0 48 atan dup cos 8 mul 192 exch sub
|
||||
exch sin 8 mul 167 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
192 167 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
261 102 moveto 325 102 lineto 325 134 lineto 261 134 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
293 102 moveto
|
||||
293 134 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
309 118 moveto
|
||||
0 93 atan dup cos 8 mul 402 exch sub
|
||||
exch sin 8 mul 118 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
402 118 8 3 93 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
341 172 moveto (violet) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
277 118 moveto
|
||||
277 167 lineto
|
||||
0 48 atan dup cos 8 mul 325 exch sub
|
||||
exch sin 8 mul 167 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
325 167 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
404 100 moveto 468 100 lineto 468 132 lineto 404 132 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
435 100 moveto
|
||||
435 132 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
451 117 moveto
|
||||
0 48 atan dup cos 8 mul 499 exch sub
|
||||
exch sin 8 mul 117 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
499 117 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
483 171 moveto (buttercup) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
419 117 moveto
|
||||
419 166 lineto
|
||||
0 48 atan dup cos 8 mul 467 exch sub
|
||||
exch sin 8 mul 166 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
467 166 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
511 123 moveto (nil) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
131 80 moveto (flowers) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
210 75 moveto
|
||||
237 75 lineto
|
||||
237 113 lineto
|
||||
0 18 atan dup cos 8 mul 255 exch sub
|
||||
exch sin 8 mul 113 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
255 113 8 3 18 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
2 80 moveto (bouquet) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
81 77 moveto
|
||||
108 77 lineto
|
||||
108 115 lineto
|
||||
0 18 atan dup cos 8 mul 126 exch sub
|
||||
exch sin 8 mul 115 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
126 115 8 3 18 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:25:41 1995
|
683
doc/lispintro/cons-4.eps
Normal file
683
doc/lispintro/cons-4.eps
Normal file
|
@ -0,0 +1,683 @@
|
|||
%!
|
||||
%%BoundingBox: 6 681 355 758
|
||||
%%Title: cons-cell-diagram4
|
||||
%%CreationDate: Wed Mar 8 14:25:06 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 6 681 355 758
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
274 102 moveto
|
||||
274 134 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
289 122 moveto
|
||||
0 56 atan dup cos 8 mul 345 exch sub
|
||||
exch sin 8 mul 122 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
345 122 8 3 56 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
350 100 moveto 414 100 lineto 414 132 lineto 350 132 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
382 100 moveto
|
||||
382 132 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
397 114 moveto
|
||||
0 59 atan dup cos 8 mul 456 exch sub
|
||||
exch sin 8 mul 114 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
456 114 8 3 59 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
430 170 moveto (violet) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
366 116 moveto
|
||||
366 165 lineto
|
||||
0 48 atan dup cos 8 mul 414 exch sub
|
||||
exch sin 8 mul 165 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
414 165 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
219 78 moveto (flowers) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
298 73 moveto
|
||||
325 73 lineto
|
||||
325 111 lineto
|
||||
0 18 atan dup cos 8 mul 343 exch sub
|
||||
exch sin 8 mul 111 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
343 111 8 3 18 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
459 95 moveto 523 95 lineto 523 127 lineto 459 127 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
490 95 moveto
|
||||
490 127 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
506 112 moveto
|
||||
0 48 atan dup cos 8 mul 554 exch sub
|
||||
exch sin 8 mul 112 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
554 112 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
566 118 moveto (nil) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
538 151 moveto (buttercup) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
474 109 moveto
|
||||
474 146 lineto
|
||||
0 48 atan dup cos 8 mul 522 exch sub
|
||||
exch sin 8 mul 146 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
522 146 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
244 102 moveto 308 102 lineto 308 134 lineto 244 134 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
324 189 moveto (rose) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
260 117 moveto
|
||||
260 184 lineto
|
||||
0 48 atan dup cos 8 mul 308 exch sub
|
||||
exch sin 8 mul 184 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
308 184 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
146 101 moveto 210 101 lineto 210 133 lineto 146 133 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
177 101 moveto
|
||||
177 133 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
193 118 moveto
|
||||
0 48 atan dup cos 8 mul 241 exch sub
|
||||
exch sin 8 mul 118 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
241 118 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
187 178 moveto (lily) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
163 118 moveto
|
||||
163 171 lineto
|
||||
0 18 atan dup cos 8 mul 181 exch sub
|
||||
exch sin 8 mul 171 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
181 171 8 3 18 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
16 78 moveto (bouquet) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
95 73 moveto
|
||||
122 73 lineto
|
||||
122 111 lineto
|
||||
0 18 atan dup cos 8 mul 140 exch sub
|
||||
exch sin 8 mul 111 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
140 111 8 3 18 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:25:06 1995
|
628
doc/lispintro/cons-5.eps
Normal file
628
doc/lispintro/cons-5.eps
Normal file
|
@ -0,0 +1,628 @@
|
|||
%!
|
||||
%%BoundingBox: 15 680 305 764
|
||||
%%Title: cons-cell-diagram5
|
||||
%%CreationDate: Wed Mar 8 14:27:28 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 15 680 305 764
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
156 105 moveto
|
||||
156 137 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
171 125 moveto
|
||||
0 56 atan dup cos 8 mul 227 exch sub
|
||||
exch sin 8 mul 125 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
227 125 8 3 56 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
232 103 moveto 296 103 lineto 296 135 lineto 232 135 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
264 103 moveto
|
||||
264 135 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
279 117 moveto
|
||||
0 59 atan dup cos 8 mul 338 exch sub
|
||||
exch sin 8 mul 117 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
338 117 8 3 59 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
289 172 moveto (a different piece of text) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
248 119 moveto
|
||||
248 168 lineto
|
||||
0 29 atan dup cos 8 mul 277 exch sub
|
||||
exch sin 8 mul 168 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
277 168 8 3 29 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
147 66 moveto (kill-ring-yank-pointer) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
207 76 moveto
|
||||
207 114 lineto
|
||||
0 18 atan dup cos 8 mul 225 exch sub
|
||||
exch sin 8 mul 114 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
225 114 8 3 18 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
341 98 moveto 405 98 lineto 405 130 lineto 341 130 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
372 98 moveto
|
||||
372 130 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
388 115 moveto
|
||||
0 48 atan dup cos 8 mul 436 exch sub
|
||||
exch sin 8 mul 115 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
436 115 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
448 121 moveto (nil) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
397 154 moveto (yet more text) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
356 112 moveto
|
||||
356 149 lineto
|
||||
0 35 atan dup cos 8 mul 391 exch sub
|
||||
exch sin 8 mul 149 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
391 149 8 3 35 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% BOX
|
||||
gsave
|
||||
1.415 setmiterlimit
|
||||
newpath
|
||||
126 105 moveto 190 105 lineto 190 137 lineto 126 137 lineto
|
||||
closepath stroke
|
||||
1 setmiterlimit
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
206 192 moveto (some text) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
142 120 moveto
|
||||
142 187 lineto
|
||||
0 48 atan dup cos 8 mul 190 exch sub
|
||||
exch sin 8 mul 187 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
190 187 8 3 48 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
32 66 moveto (kill-ring) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
65 81 moveto
|
||||
65 121 lineto
|
||||
0 51 atan dup cos 8 mul 116 exch sub
|
||||
exch sin 8 mul 121 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
116 121 8 3 51 0 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:27:28 1995
|
513
doc/lispintro/drawers.eps
Normal file
513
doc/lispintro/drawers.eps
Normal file
|
@ -0,0 +1,513 @@
|
|||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%BoundingBox: 34 577 324 778
|
||||
%%Title: chest-of-drawers-diagram-new
|
||||
%%CreationDate: Fri Sep 14 17:40:57 2001
|
||||
%%Creator: Tgif-4.1.35 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%%ProducedBy: (unknown)
|
||||
%%Pages: 1
|
||||
%%DocumentFonts: (atend)
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
|
||||
% Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 53 dict def
|
||||
tgifdict begin
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/TGEL % tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/TGMAX
|
||||
{ exch dup 3 1 roll exch dup 3 1 roll gt { pop } { exch pop } ifelse
|
||||
} def
|
||||
/TGMIN
|
||||
{ exch dup 3 1 roll exch dup 3 1 roll lt { pop } { exch pop } ifelse
|
||||
} def
|
||||
/TGSW { stringwidth pop } def
|
||||
|
||||
/bd { bind def } bind def
|
||||
|
||||
/GS { gsave } bd
|
||||
/GR { grestore } bd
|
||||
/NP { newpath } bd
|
||||
/CP { closepath } bd
|
||||
/CHP { charpath } bd
|
||||
/CT { curveto } bd
|
||||
/L { lineto } bd
|
||||
/RL { rlineto } bd
|
||||
/M { moveto } bd
|
||||
/RM { rmoveto } bd
|
||||
/S { stroke } bd
|
||||
/F { fill } bd
|
||||
/TR { translate } bd
|
||||
/RO { rotate } bd
|
||||
/SC { scale } bd
|
||||
/MU { mul } bd
|
||||
/DI { div } bd
|
||||
/DU { dup } bd
|
||||
/NE { neg } bd
|
||||
/AD { add } bd
|
||||
/SU { sub } bd
|
||||
/PO { pop } bd
|
||||
/EX { exch } bd
|
||||
/CO { concat } bd
|
||||
/CL { clip } bd
|
||||
/EC { eoclip } bd
|
||||
/EF { eofill } bd
|
||||
/IM { image } bd
|
||||
/IMM { imagemask } bd
|
||||
/ARY { array } bd
|
||||
/SG { setgray } bd
|
||||
/RG { setrgbcolor } bd
|
||||
/SD { setdash } bd
|
||||
/W { setlinewidth } bd
|
||||
/SM { setmiterlimit } bd
|
||||
/SLC { setlinecap } bd
|
||||
/SLJ { setlinejoin } bd
|
||||
/SH { show } bd
|
||||
/FF { findfont } bd
|
||||
/MS { makefont setfont } bd
|
||||
/AR { arcto 4 {pop} repeat } bd
|
||||
/CURP { currentpoint } bd
|
||||
/FLAT { flattenpath strokepath clip newpath } bd
|
||||
/TGSM { tgiforigctm setmatrix } def
|
||||
/TGRM { savematrix setmatrix } def
|
||||
|
||||
end
|
||||
|
||||
%%EndProlog
|
||||
%%Page: 1 1
|
||||
|
||||
%%PageBoundingBox: 34 577 324 778
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 SM
|
||||
1 W
|
||||
|
||||
0 SG
|
||||
|
||||
72 0 MU 72 11 MU TR
|
||||
72 128 DI 100.000 MU 100 DI DU NE SC
|
||||
|
||||
GS
|
||||
|
||||
/tgiforigctm matrix currentmatrix def
|
||||
|
||||
% BOX
|
||||
0 SG
|
||||
GS
|
||||
10 SM
|
||||
GS
|
||||
NP 64 104 M 255 104 L 255 360 L 64 360 L CP
|
||||
S
|
||||
GR
|
||||
GR
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
0 SG
|
||||
GS
|
||||
NP
|
||||
65 296 M
|
||||
254 296 L
|
||||
TGSM
|
||||
1 W
|
||||
S
|
||||
GR
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
0 SG
|
||||
GS
|
||||
NP
|
||||
63 233 M
|
||||
255 233 L
|
||||
TGSM
|
||||
1 W
|
||||
S
|
||||
GR
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
0 SG
|
||||
GS
|
||||
NP
|
||||
63 169 M
|
||||
255 169 L
|
||||
TGSM
|
||||
1 W
|
||||
S
|
||||
GR
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
0 SG
|
||||
GS
|
||||
NP
|
||||
251 362 M
|
||||
251 361 L
|
||||
251 379 L
|
||||
244 379 L
|
||||
229 361 L
|
||||
TGSM
|
||||
1 W
|
||||
S
|
||||
GR
|
||||
|
||||
% OVAL
|
||||
0 SG
|
||||
GS
|
||||
GS
|
||||
NP 160 72 10 6 TGEL
|
||||
S
|
||||
GR
|
||||
GR
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
0 SG
|
||||
GS
|
||||
NP
|
||||
63 104 M
|
||||
128 64 L
|
||||
138 69 L
|
||||
TGSM
|
||||
1 W
|
||||
S
|
||||
GR
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
0 SG
|
||||
GS
|
||||
NP
|
||||
255 103 M
|
||||
190 63 L
|
||||
180 68 L
|
||||
TGSM
|
||||
1 W
|
||||
S
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
160 152 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(symbol name) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(symbol name) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
160 41 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(Chest of Drawers) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(Chest of Drawers) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
344 41 M
|
||||
GS
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(Contents of Drawers) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
344 160 M
|
||||
GS
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(bouquet) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
344 220 M
|
||||
GS
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
([none]) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
344 279 M
|
||||
GS
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(\(rose violet buttercup\)) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
344 337 M
|
||||
GS
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
([not described here]) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
0 SG
|
||||
GS
|
||||
NP
|
||||
68 362 M
|
||||
68 361 L
|
||||
68 379 L
|
||||
75 379 L
|
||||
90 361 L
|
||||
TGSM
|
||||
1 W
|
||||
S
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
158 132 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
345 139 M
|
||||
GS
|
||||
0 SG
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(map to) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
350 259 M
|
||||
GS
|
||||
0 SG
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(map to) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
159 213 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(symbol definition) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(symbol definition) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
159 195 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
160 276 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(variable name) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(variable name) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
158 260 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
160 339 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(property list) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/Courier FF [17 0 0 -17 0 0] MS
|
||||
(property list) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
% TEXT
|
||||
NP
|
||||
0 SG
|
||||
GS
|
||||
1 W
|
||||
158 323 M
|
||||
GS
|
||||
GS
|
||||
0
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) TGSW
|
||||
AD
|
||||
GR
|
||||
2 DI NE 0 RM
|
||||
0 SG
|
||||
/NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
|
||||
(directions to) SH
|
||||
GR
|
||||
GR
|
||||
|
||||
GR
|
||||
tgifsavedpage restore
|
||||
end
|
||||
showpage
|
||||
|
||||
%%Trailer
|
||||
%MatchingCreationDate: Fri Sep 14 17:40:57 2001
|
||||
%%DocumentFonts: NewCenturySchlbk-Roman
|
||||
%%+ Courier
|
||||
%%EOF
|
22721
doc/lispintro/emacs-lisp-intro.texi
Normal file
22721
doc/lispintro/emacs-lisp-intro.texi
Normal file
File diff suppressed because it is too large
Load diff
250
doc/lispintro/install-sh
Executable file
250
doc/lispintro/install-sh
Executable file
|
@ -0,0 +1,250 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||
#
|
||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||
# documentation for any purpose is hereby granted without fee, provided that
|
||||
# the above copyright notice appear in all copies and that both that
|
||||
# copyright notice and this permission notice appear in supporting
|
||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||
# publicity pertaining to distribution of the software without specific,
|
||||
# written prior permission. M.I.T. makes no representations about the
|
||||
# suitability of this software for any purpose. It is provided "as is"
|
||||
# without express or implied warranty.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=""
|
||||
transform_arg=""
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
dir_arg=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
-c) instcmd="$cpprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd="$stripprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]; then
|
||||
dst=$src
|
||||
src=""
|
||||
|
||||
if [ -d $dst ]; then
|
||||
instcmd=:
|
||||
else
|
||||
instcmd=mkdir
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
|
||||
if [ -f $src -o -d $src ]
|
||||
then
|
||||
true
|
||||
else
|
||||
echo "install: $src does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
else
|
||||
true
|
||||
fi
|
||||
fi
|
||||
|
||||
## this sed command emulates the dirname command
|
||||
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-${defaultIFS}}"
|
||||
|
||||
oIFS="${IFS}"
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS="${oIFS}"
|
||||
|
||||
pathcomp=''
|
||||
|
||||
while [ $# -ne 0 ] ; do
|
||||
pathcomp="${pathcomp}${1}"
|
||||
shift
|
||||
|
||||
if [ ! -d "${pathcomp}" ] ;
|
||||
then
|
||||
$mkdirprog "${pathcomp}"
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
pathcomp="${pathcomp}/"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]
|
||||
then
|
||||
$doit $instcmd $dst &&
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
||||
else
|
||||
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
|
||||
if [ x"$transformarg" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
dstfile=`basename $dst $transformbasename |
|
||||
sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename
|
||||
|
||||
if [ x"$dstfile" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# Make a temp file name in the proper directory.
|
||||
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src $dsttmp &&
|
||||
|
||||
trap "rm -f ${dsttmp}" 0 &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $rmcmd -f $dstdir/$dstfile &&
|
||||
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
||||
|
||||
fi &&
|
||||
|
||||
|
||||
exit 0
|
471
doc/lispintro/lambda-1.eps
Normal file
471
doc/lispintro/lambda-1.eps
Normal file
|
@ -0,0 +1,471 @@
|
|||
%!
|
||||
%%BoundingBox: 33 710 173 759
|
||||
%%Title: lambda-diagram1
|
||||
%%CreationDate: Wed Mar 8 14:31:53 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 33 710 173 759
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
63 75 moveto (\(multiply-by-seven 3\)) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
80 80 moveto
|
||||
96 96 lineto
|
||||
224 96 lineto
|
||||
240 80 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
264 119 moveto
|
||||
-22 0 atan dup cos 8 mul 264 exch sub
|
||||
exch sin 8 mul 97 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
264 97 8 3 0 -22 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
160 103 moveto
|
||||
160 119 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
112 139 moveto (function) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
224 139 moveto (argument) show
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:31:53 1995
|
471
doc/lispintro/lambda-2.eps
Normal file
471
doc/lispintro/lambda-2.eps
Normal file
|
@ -0,0 +1,471 @@
|
|||
%!
|
||||
%%BoundingBox: 33 730 240 777
|
||||
%%Title: lambda-diagram2
|
||||
%%CreationDate: Wed Mar 8 14:33:09 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 33 730 240 777
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
63 43 moveto (\(\(lambda \(number\) \(* 7 number\)\) 3\)) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
80 48 moveto
|
||||
96 64 lineto
|
||||
336 64 lineto
|
||||
353 49 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
395 85 moveto
|
||||
-21 0 atan dup cos 8 mul 395 exch sub
|
||||
exch sin 8 mul 64 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
395 64 8 3 0 -21 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
208 69 moveto
|
||||
208 85 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
112 102 moveto (anonymous function) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
344 102 moveto (argument) show
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:33:09 1995
|
471
doc/lispintro/lambda-3.eps
Normal file
471
doc/lispintro/lambda-3.eps
Normal file
|
@ -0,0 +1,471 @@
|
|||
%!
|
||||
%%BoundingBox: 33 728 211 777
|
||||
%%Title: lambda-diagram3
|
||||
%%CreationDate: Wed Mar 8 14:33:49 1995
|
||||
%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
|
||||
%
|
||||
% Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
|
||||
%
|
||||
|
||||
% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
% Free Software Foundation, Inc.
|
||||
%
|
||||
% This file is part of GNU Emacs.
|
||||
%
|
||||
% GNU Emacs is free software; you can redistribute it and/or modify
|
||||
% it under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3, or (at your option)
|
||||
% any later version.
|
||||
%
|
||||
% GNU Emacs is distributed in the hope that it will be useful,
|
||||
% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Emacs; see the file COPYING. If not, write to
|
||||
% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
% Boston, MA 02110-1301, USA.
|
||||
|
||||
/tgifdict 132 dict def
|
||||
tgifdict begin
|
||||
|
||||
%
|
||||
% Using a zero value radius for an ellipse or an arc would result
|
||||
% in a non-invertible CTM matrix which causes problem when this
|
||||
% when this PostScript is wrapped inside other routines, such as
|
||||
% the multi.ps package from
|
||||
% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
|
||||
% error by uncommenting the sole line of the procedure below:
|
||||
%
|
||||
/tgif_min_radius
|
||||
{
|
||||
% dup 0.01 lt { pop 0.01 } if
|
||||
} bind def
|
||||
|
||||
/tgifellipsedict 6 dict def
|
||||
tgifellipsedict /mtrx matrix put
|
||||
|
||||
/tgifellipse
|
||||
{ tgifellipsedict begin
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 0 360 arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarrowtipdict 8 dict def
|
||||
tgifarrowtipdict /mtrx matrix put
|
||||
|
||||
/tgifarrowtip
|
||||
{ tgifarrowtipdict begin
|
||||
/dy exch def
|
||||
/dx exch def
|
||||
/h exch def
|
||||
/w exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
dy dx atan rotate
|
||||
0 0 moveto
|
||||
w neg h lineto
|
||||
w neg h neg lineto
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarcdict 8 dict def
|
||||
tgifarcdict /mtrx matrix put
|
||||
|
||||
/tgifarcn
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arc
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifarc
|
||||
{ tgifarcdict begin
|
||||
/endangle exch def
|
||||
/startangle exch def
|
||||
/yrad exch def
|
||||
/xrad exch def
|
||||
/y exch def
|
||||
/x exch def
|
||||
/savematrix mtrx currentmatrix def
|
||||
x y translate
|
||||
xrad yrad scale
|
||||
0 0 1 startangle endangle arcn
|
||||
savematrix setmatrix
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetuserscreendict 22 dict def
|
||||
tgifsetuserscreendict begin
|
||||
/tempctm matrix def
|
||||
/temprot matrix def
|
||||
/tempscale matrix def
|
||||
|
||||
/concatprocs
|
||||
{ /proc2 exch cvlit def
|
||||
/proc1 exch cvlit def
|
||||
/newproc proc1 length proc2 length add array def
|
||||
newproc 0 proc1 putinterval
|
||||
newproc proc1 length proc2 putinterval
|
||||
newproc cvx
|
||||
} def
|
||||
/resmatrix matrix def
|
||||
/findresolution
|
||||
{ 72 0 resmatrix defaultmatrix dtransform
|
||||
/yres exch def /xres exch def
|
||||
xres dup mul yres dup mul add sqrt
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifsetuserscreen
|
||||
{ tgifsetuserscreendict begin
|
||||
/spotfunction exch def
|
||||
/screenangle exch def
|
||||
/cellsize exch def
|
||||
|
||||
/m tempctm currentmatrix def
|
||||
/rm screenangle temprot rotate def
|
||||
/sm cellsize dup tempscale scale def
|
||||
|
||||
sm rm m m concatmatrix m concatmatrix pop
|
||||
|
||||
1 0 m dtransform /y1 exch def /x1 exch def
|
||||
|
||||
/veclength x1 dup mul y1 dup mul add sqrt def
|
||||
/frequency findresolution veclength div def
|
||||
|
||||
/newscreenangle y1 x1 atan def
|
||||
|
||||
m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
|
||||
|
||||
{{neg} /spotfunction load concatprocs
|
||||
/spotfunction exch def
|
||||
} if
|
||||
|
||||
frequency newscreenangle /spotfunction load setscreen
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpatterndict 18 dict def
|
||||
tgifsetpatterndict begin
|
||||
/bitison
|
||||
{ /ybit exch def /xbit exch def
|
||||
/bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
|
||||
|
||||
/mask 1 7 xbit 8 mod sub bitshift def
|
||||
bytevalue mask and 0 ne
|
||||
} def
|
||||
end
|
||||
|
||||
/tgifbitpatternspotfunction
|
||||
{ tgifsetpatterndict begin
|
||||
/y exch def /x exch def
|
||||
|
||||
/xindex x 1 add 2 div bpside mul cvi def
|
||||
/yindex y 1 add 2 div bpside mul cvi def
|
||||
|
||||
xindex yindex bitison
|
||||
{ /onbits onbits 1 add def 1 }
|
||||
{ /offbits offbits 1 add def 0 }
|
||||
ifelse
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifsetpattern
|
||||
{ tgifsetpatterndict begin
|
||||
/cellsz exch def
|
||||
/angle exch def
|
||||
/bwidth exch def
|
||||
/bpside exch def
|
||||
/bstring exch def
|
||||
|
||||
/onbits 0 def /offbits 0 def
|
||||
cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
|
||||
{} settransfer
|
||||
offbits offbits onbits add div setgray
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifxpmdict 4 dict def
|
||||
/tgifbwpicstr 1 string def
|
||||
/tgifcolorpicstr 3 string def
|
||||
|
||||
/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
|
||||
|
||||
/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
|
||||
|
||||
/tgifbwspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
tgifbwpicstr 0
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
|
||||
cvi put
|
||||
tgifbwpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop
|
||||
255 mul cvi tgifcolorpicstr 2 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 1 3 -1 roll put
|
||||
255 mul cvi tgifcolorpicstr 0 3 -1 roll put
|
||||
tgifcolorpicstr
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifnewcolorspot
|
||||
{ tgifxpmdict begin
|
||||
/index exch def
|
||||
pixels index 3 mul 3 getinterval aload pop setrgbcolor
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifcolordict 4 dict def
|
||||
|
||||
/colorimage where
|
||||
{ pop }
|
||||
{ /colorimage
|
||||
{ tgifcolordict begin
|
||||
pop pop pop pop pop
|
||||
/ih exch def
|
||||
/iw exch def
|
||||
/x 0 def
|
||||
/y 0 def
|
||||
1 1 ih
|
||||
{ pop 1 1 iw
|
||||
{ pop currentfile
|
||||
tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
|
||||
x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
|
||||
closepath fill
|
||||
/x x 1 add def
|
||||
} for
|
||||
/y y 1 add def
|
||||
/x 0 def
|
||||
} for
|
||||
end
|
||||
} def
|
||||
} ifelse
|
||||
|
||||
/tgifpatdict 10 dict def
|
||||
|
||||
/tgifpatbyte
|
||||
{ currentdict /retstr get exch
|
||||
pat i cellsz mod get put
|
||||
} def
|
||||
|
||||
/tgifpatproc
|
||||
{ 0 1 widthlim {tgifpatbyte} for retstr
|
||||
/i i 1 add def
|
||||
} def
|
||||
|
||||
/tgifpatfill
|
||||
{ tgifpatdict begin
|
||||
/h exch def
|
||||
/w exch def
|
||||
/lty exch def
|
||||
/ltx exch def
|
||||
/cellsz exch def
|
||||
/pat exch def
|
||||
|
||||
/widthlim w cellsz div cvi 1 sub def
|
||||
/retstr widthlim 1 add string def
|
||||
/i 0 def
|
||||
|
||||
ltx lty translate
|
||||
w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
|
||||
ltx neg lty neg translate
|
||||
end
|
||||
} def
|
||||
|
||||
/pat1 <ffffffffffffffff> def
|
||||
/pat2 <0000000000000000> def
|
||||
/pat3 <8000000008000000> def
|
||||
/pat4 <8800000022000000> def
|
||||
/pat5 <8800220088002200> def
|
||||
/pat6 <8822882288228822> def
|
||||
/pat7 <aa55aa55aa55aa55> def
|
||||
/pat8 <77dd77dd77dd77dd> def
|
||||
/pat9 <77ffddff77ffddff> def
|
||||
/pat10 <77ffffff77ffffff> def
|
||||
/pat11 <7fffffff7fffffff> def
|
||||
/pat12 <8040200002040800> def
|
||||
/pat13 <40a00000040a0000> def
|
||||
/pat14 <ff888888ff888888> def
|
||||
/pat15 <ff808080ff080808> def
|
||||
/pat16 <f87422478f172271> def
|
||||
/pat17 <038448300c020101> def
|
||||
/pat18 <081c22c180010204> def
|
||||
/pat19 <8080413e080814e3> def
|
||||
/pat20 <8040201008040201> def
|
||||
/pat21 <8844221188442211> def
|
||||
/pat22 <77bbddee77bbddee> def
|
||||
/pat23 <c1e070381c0e0783> def
|
||||
/pat24 <7fbfdfeff7fbfdfe> def
|
||||
/pat25 <3e1f8fc7e3f1f87c> def
|
||||
/pat26 <0102040810204080> def
|
||||
/pat27 <1122448811224488> def
|
||||
/pat28 <eeddbb77eeddbb77> def
|
||||
/pat29 <83070e1c3870e0c1> def
|
||||
/pat30 <fefdfbf7efdfbf7f> def
|
||||
/pat31 <7cf8f1e3c78f1f3e> def
|
||||
|
||||
/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
|
||||
|
||||
/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
|
||||
|
||||
/tgifreencsmalldict 12 dict def
|
||||
/tgifReEncodeSmall
|
||||
{ tgifreencsmalldict begin
|
||||
/newcodesandnames exch def
|
||||
/newfontname exch def
|
||||
/basefontname exch def
|
||||
|
||||
/basefontdict basefontname findfont def
|
||||
/newfont basefontdict maxlength dict def
|
||||
|
||||
basefontdict
|
||||
{ exch dup /FID ne
|
||||
{ dup /Encoding eq
|
||||
{ exch dup length array copy newfont 3 1 roll put }
|
||||
{ exch newfont 3 1 roll put }
|
||||
ifelse
|
||||
}
|
||||
{ pop pop }
|
||||
ifelse
|
||||
}
|
||||
forall
|
||||
|
||||
newfont /FontName newfontname put
|
||||
newcodesandnames aload pop
|
||||
|
||||
newcodesandnames length 2 idiv
|
||||
{ newfont /Encoding get 3 1 roll put}
|
||||
repeat
|
||||
|
||||
newfontname newfont definefont pop
|
||||
end
|
||||
} def
|
||||
|
||||
/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
|
||||
|
||||
/tgifboxdict 6 dict def
|
||||
/tgifboxstroke
|
||||
{ tgifboxdict begin
|
||||
/pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
1.415 setmiterlimit
|
||||
w 1 eq { w setlinewidth } if
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
w 1 eq { 1 setlinewidth } if
|
||||
1 setmiterlimit
|
||||
end
|
||||
} def
|
||||
/tgifboxfill
|
||||
{ tgifboxdict begin
|
||||
/pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
|
||||
pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
|
||||
newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
|
||||
pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
|
||||
pat pat1 ne pat pat2 ne and { grestore } if
|
||||
end
|
||||
} def
|
||||
|
||||
end
|
||||
|
||||
%%PageBoundingBox: 33 728 211 777
|
||||
tgifdict begin
|
||||
/tgifsavedpage save def
|
||||
|
||||
1 setmiterlimit
|
||||
1 setlinewidth
|
||||
|
||||
0 setgray
|
||||
|
||||
72 0 mul 72 11.00 mul translate
|
||||
72 128 div 100 mul 100 div dup neg scale
|
||||
|
||||
gsave
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
63 43 moveto (\(\(lambda \(arg\) \(/ arg 50\)\) 100\)) show
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
80 48 moveto
|
||||
96 64 lineto
|
||||
284 64 lineto
|
||||
299 48 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
354 86 moveto
|
||||
-25 0 atan dup cos 8 mul 354 exch sub
|
||||
exch sin 8 mul 61 exch sub lineto
|
||||
stroke
|
||||
grestore
|
||||
gsave
|
||||
newpath
|
||||
354 61 8 3 0 -25 tgifarrowtip
|
||||
closepath fill
|
||||
grestore
|
||||
|
||||
% POLY/OPEN-SPLINE
|
||||
gsave
|
||||
newpath
|
||||
199 70 moveto
|
||||
199 86 lineto
|
||||
stroke
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
101 106 moveto (anonymous function) show
|
||||
grestore
|
||||
|
||||
% TEXT
|
||||
0 setgray
|
||||
/Courier findfont [17 0 0 -17 0 0] makefont setfont
|
||||
gsave
|
||||
293 106 moveto (argument) show
|
||||
grestore
|
||||
|
||||
grestore
|
||||
tgifsavedpage restore
|
||||
end
|
||||
%MatchingCreationDate: Wed Mar 8 14:33:49 1995
|
73
doc/lispintro/makefile.w32-in
Normal file
73
doc/lispintro/makefile.w32-in
Normal file
|
@ -0,0 +1,73 @@
|
|||
#### -*- Makefile -*- for the Emacs Lisp Introduction manual.
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
|
||||
srcdir = .
|
||||
|
||||
infodir = $(srcdir)/../info
|
||||
|
||||
INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi
|
||||
# The file name eintr must fit within 5 characters, to allow for
|
||||
# -NN extensions to fit into DOS 8+3 limits without clashing
|
||||
INFO_TARGETS = $(infodir)/eintr
|
||||
DVI_TARGETS = emacs-lisp-intro.dvi
|
||||
|
||||
MAKEINFO = makeinfo
|
||||
INSTALL_INFO = install-info
|
||||
TEXI2DVI = texi2dvi
|
||||
DVIPS = dvips
|
||||
ENVADD = $(srcdir)\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
|
||||
"MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C
|
||||
|
||||
.SUFFIXES: .dvi .ps .texi
|
||||
|
||||
info: $(INFO_TARGETS)
|
||||
|
||||
$(infodir)/dir:
|
||||
$(INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
|
||||
|
||||
dvi: $(DVI_TARGETS)
|
||||
|
||||
$(infodir)/eintr: $(INFO_SOURCES)
|
||||
$(MAKEINFO) -o $@ $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
emacs-lisp-intro.dvi: $(INFO_SOURCES)
|
||||
$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
emacs-lisp-intro.html: $(INFO_SOURCES)
|
||||
$(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi
|
||||
|
||||
.dvi.ps:
|
||||
$(DVIPS) $< -o $@
|
||||
|
||||
mostlyclean:
|
||||
- $(DEL) *.log *.cp *.fn *.ky *.pg *.vr *.tp
|
||||
|
||||
clean: mostlyclean
|
||||
- $(DEL) *.dvi $(infodir)/eintr*
|
||||
|
||||
distclean: clean
|
||||
|
||||
maintainer-clean: distclean
|
||||
- $(DEL) *.aux *.cps *.fns *.kys *.pgs *.vrs *.toc
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
135
doc/lispintro/missing
Executable file
135
doc/lispintro/missing
Executable file
|
@ -0,0 +1,135 @@
|
|||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
# Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
# Free Software Foundation, Inc.
|
||||
# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
automake touch all \`Makefile.in' files
|
||||
bison touch file \`y.tab.c'
|
||||
makeinfo touch the output file
|
||||
yacc touch file \`y.tab.c'"
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing - GNU libit 0.0"
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
aclocal)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`acinclude.m4' or \`configure.in'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`configure.in'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`acconfig.h' or \`configure.in'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
touch config.h.in
|
||||
;;
|
||||
|
||||
automake)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print \
|
||||
| sed 's/^\(.*\).am$/touch \1.in/' \
|
||||
| sh
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
touch y.tab.c
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||
fi
|
||||
touch $file
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||
system. You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequirements for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
38
doc/lispintro/mkinstalldirs
Executable file
38
doc/lispintro/mkinstalldirs
Executable file
|
@ -0,0 +1,38 @@
|
|||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
# Public domain
|
||||
|
||||
errstatus=0
|
||||
|
||||
for file
|
||||
do
|
||||
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||
shift
|
||||
|
||||
pathcomp=
|
||||
for d
|
||||
do
|
||||
pathcomp="$pathcomp$d"
|
||||
case "$pathcomp" in
|
||||
-* ) pathcomp=./$pathcomp ;;
|
||||
esac
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
echo "mkdir $pathcomp" 1>&2
|
||||
|
||||
mkdir "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
errstatus=$lasterr
|
||||
fi
|
||||
fi
|
||||
|
||||
pathcomp="$pathcomp/"
|
||||
done
|
||||
done
|
||||
|
||||
exit $errstatus
|
||||
|
||||
# mkinstalldirs ends here
|
Loading…
Add table
Reference in a new issue