From 468dad2c5af1dfdb34753335c101308e7934fe5b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 8 Mar 2026 14:51:13 +0200 Subject: [PATCH] Use images in Emacs Lisp Intro manual (bug#80519) * doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed) (Symbols as Chest, kill-ring-yank-pointer, lambda): Use @image and remove ASCII-art diagrams, which are now on separate *.txt files. (header): Remove print-postscript-figures and its commentary. * doc/lispintro/Makefile.in (auxfiles): New file list. (${buildinfodir}/%.txt, ${buildinfodir}/%.png): New targets. (${buildinfodir}/eintr.info): Depend on ${auxfiles}. (infoclean): Remove ${auxfiles}. * doc/lispintro/cons-1.png: * doc/lispintro/cons-1.txt: * doc/lispintro/cons-2.png: * doc/lispintro/cons-2.txt: * doc/lispintro/cons-2a.png: * doc/lispintro/cons-2a.txt: * doc/lispintro/cons-3.png: * doc/lispintro/cons-3.txt: * doc/lispintro/cons-4.png: * doc/lispintro/cons-4.txt: * doc/lispintro/cons-5.png: * doc/lispintro/cons-5.txt: * doc/lispintro/drawers.png: * doc/lispintro/drawers.txt: * doc/lispintro/lambda-1.png: * doc/lispintro/lambda-1.txt: * doc/lispintro/lambda-2.png: * doc/lispintro/lambda-2.txt: * doc/lispintro/lambda-3.png: * doc/lispintro/lambda-3.txt: New files, from Matto Fransen . --- doc/lispintro/Makefile.in | 31 ++++- doc/lispintro/cons-1.png | Bin 0 -> 3264 bytes doc/lispintro/cons-1.txt | 5 + doc/lispintro/cons-2.png | Bin 0 -> 4038 bytes doc/lispintro/cons-2.txt | 7 ++ doc/lispintro/cons-2a.png | Bin 0 -> 5017 bytes doc/lispintro/cons-2a.txt | 7 ++ doc/lispintro/cons-3.png | Bin 0 -> 4699 bytes doc/lispintro/cons-3.txt | 8 ++ doc/lispintro/cons-4.png | Bin 0 -> 5575 bytes doc/lispintro/cons-4.txt | 8 ++ doc/lispintro/cons-5.png | Bin 0 -> 6064 bytes doc/lispintro/cons-5.txt | 12 ++ doc/lispintro/drawers.png | Bin 0 -> 15219 bytes doc/lispintro/drawers.txt | 22 ++++ doc/lispintro/emacs-lisp-intro.texi | 189 ---------------------------- doc/lispintro/lambda-1.png | Bin 0 -> 3168 bytes doc/lispintro/lambda-1.txt | 4 + doc/lispintro/lambda-2.png | Bin 0 -> 3743 bytes doc/lispintro/lambda-2.txt | 4 + doc/lispintro/lambda-3.png | Bin 0 -> 3584 bytes doc/lispintro/lambda-3.txt | 4 + 22 files changed, 111 insertions(+), 190 deletions(-) create mode 100644 doc/lispintro/cons-1.png create mode 100644 doc/lispintro/cons-1.txt create mode 100644 doc/lispintro/cons-2.png create mode 100644 doc/lispintro/cons-2.txt create mode 100644 doc/lispintro/cons-2a.png create mode 100644 doc/lispintro/cons-2a.txt create mode 100644 doc/lispintro/cons-3.png create mode 100644 doc/lispintro/cons-3.txt create mode 100644 doc/lispintro/cons-4.png create mode 100644 doc/lispintro/cons-4.txt create mode 100644 doc/lispintro/cons-5.png create mode 100644 doc/lispintro/cons-5.txt create mode 100644 doc/lispintro/drawers.png create mode 100644 doc/lispintro/drawers.txt create mode 100644 doc/lispintro/lambda-1.png create mode 100644 doc/lispintro/lambda-1.txt create mode 100644 doc/lispintro/lambda-2.png create mode 100644 doc/lispintro/lambda-2.txt create mode 100644 doc/lispintro/lambda-3.png create mode 100644 doc/lispintro/lambda-3.txt diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in index 411a6f1a473..f941d8166db 100644 --- a/doc/lispintro/Makefile.in +++ b/doc/lispintro/Makefile.in @@ -84,9 +84,37 @@ ps: $(PS_TARGETS) ${buildinfodir}: ${MKDIR_P} $@ +auxfiles = \ + ${buildinfodir}/cons-1.png \ + ${buildinfodir}/cons-1.txt \ + ${buildinfodir}/cons-2.png \ + ${buildinfodir}/cons-2.txt \ + ${buildinfodir}/cons-2a.png \ + ${buildinfodir}/cons-2a.txt \ + ${buildinfodir}/cons-3.png \ + ${buildinfodir}/cons-3.txt \ + ${buildinfodir}/cons-4.png \ + ${buildinfodir}/cons-4.txt \ + ${buildinfodir}/cons-5.png \ + ${buildinfodir}/cons-5.txt \ + ${buildinfodir}/drawers.png \ + ${buildinfodir}/drawers.txt \ + ${buildinfodir}/lambda-1.png \ + ${buildinfodir}/lambda-1.txt \ + ${buildinfodir}/lambda-2.png \ + ${buildinfodir}/lambda-2.txt \ + ${buildinfodir}/lambda-3.png \ + ${buildinfodir}/lambda-3.txt + +${buildinfodir}/%.txt: ${srcdir}/%.txt | ${buildinfodir} + cp $< $@ + +${buildinfodir}/%.png: ${srcdir}/%.png | ${buildinfodir} + cp $< $@ + # The file name eintr must fit within 5 characters, to allow for # -NN extensions to fit into DOS 8+3 limits without clashing. -${buildinfodir}/eintr.info: ${srcs} | ${buildinfodir} +${buildinfodir}/eintr.info: ${srcs} ${auxfiles} | ${buildinfodir} $(AM_V_GEN)$(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ $< emacs-lisp-intro.dvi: ${srcs} @@ -117,6 +145,7 @@ infoclean: rm -f \ $(buildinfodir)/eintr.info \ $(buildinfodir)/eintr.info-[1-9] + rm -f $(auxfiles) bootstrap-clean maintainer-clean: distclean infoclean rm -f TAGS diff --git a/doc/lispintro/cons-1.png b/doc/lispintro/cons-1.png new file mode 100644 index 0000000000000000000000000000000000000000..34fc524120baa6ca1e5dbe00c8c3395da99754b2 GIT binary patch literal 3264 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 literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-1.txt b/doc/lispintro/cons-1.txt new file mode 100644 index 00000000000..78f684d94bc --- /dev/null +++ b/doc/lispintro/cons-1.txt @@ -0,0 +1,5 @@ + ___ ___ ___ ___ ___ ___ + |___|___|--> |___|___|--> |___|___|--> nil + | | | + | | | + --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-2.png b/doc/lispintro/cons-2.png new file mode 100644 index 0000000000000000000000000000000000000000..61364db3faf978deef47c22e31118be56d1a8d55 GIT binary patch literal 4038 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 K>#P-WvH$>gDZWVn literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-2.txt b/doc/lispintro/cons-2.txt new file mode 100644 index 00000000000..5146cc9e3a3 --- /dev/null +++ b/doc/lispintro/cons-2.txt @@ -0,0 +1,7 @@ + bouquet + | + | ___ ___ ___ ___ ___ ___ + --> |___|___|--> |___|___|--> |___|___|--> nil + | | | + | | | + --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-2a.png b/doc/lispintro/cons-2a.png new file mode 100644 index 0000000000000000000000000000000000000000..741430349ff2bd76dc8bb18515501d2c1d4f2377 GIT binary patch literal 5017 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 Ln#=VSIfVcK6s| rose | o------->| violet | o------->| butter- | nil | + | | | | | | | cup | | + -------------- --------------- ---------------- diff --git a/doc/lispintro/cons-3.png b/doc/lispintro/cons-3.png new file mode 100644 index 0000000000000000000000000000000000000000..655d01d2800ccd756a51f03cb80cccd3b94f58bc GIT binary patch literal 4699 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 | | | --> | | | | | | + |___|___|----> |___|___|--> |___|___|--> nil + | | | + | | | + --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-4.png b/doc/lispintro/cons-4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e86d245ba42b64d79c651247b27a6aa7ec7a8bf GIT binary patch literal 5575 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 i7~TfHaOMSvN4di%H2Sz#US | | | | | | --> | | | | | | + |___|___|----> |___|___|----> |___|___|---->|___|___|--> nil + | | | | + | | | | + --> lily --> rose --> violet --> buttercup diff --git a/doc/lispintro/cons-5.png b/doc/lispintro/cons-5.png new file mode 100644 index 0000000000000000000000000000000000000000..cc63f1248d93ec137cd48c69cab451f3b17aaf69 GIT binary patch literal 6064 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 literal 0 HcmV?d00001 diff --git a/doc/lispintro/cons-5.txt b/doc/lispintro/cons-5.txt new file mode 100644 index 00000000000..62216753195 --- /dev/null +++ b/doc/lispintro/cons-5.txt @@ -0,0 +1,12 @@ + kill-ring kill-ring-yank-pointer + | | + | ___ ___ | ___ ___ ___ ___ + ---> | | | --> | | | | | | + |___|___|----> |___|___|--> |___|___|--> nil + | | | + | | | + | | --> "yet more text" + | | + | --> "a different piece of text" + | + --> "some text" diff --git a/doc/lispintro/drawers.png b/doc/lispintro/drawers.png new file mode 100644 index 0000000000000000000000000000000000000000..fcfdbaad561c0f5397feb3c19f1aed932d34d4de GIT binary patch literal 15219 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 literal 0 HcmV?d00001 diff --git a/doc/lispintro/drawers.txt b/doc/lispintro/drawers.txt new file mode 100644 index 00000000000..9c2c7a40e49 --- /dev/null +++ b/doc/lispintro/drawers.txt @@ -0,0 +1,22 @@ + Chest of Drawers Contents of Drawers + + __ o0O0o __ + / \ + --------------------- + | directions to | [map to] + | symbol name | bouquet + | | + +---------------------+ + | directions to | + | symbol definition | [none] + | | + +---------------------+ + | directions to | [map to] + | variable value | (rose violet buttercup) + | | + +---------------------+ + | directions to | + | property list | [not described here] + | | + +---------------------+ + |/ \| diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index 50e253ece4b..fc5a7d972b6 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi @@ -41,16 +41,6 @@ @clear largebook @end ifset -@c ================ Included Figures ================ - -@c If you clear this, the figures will be printed as ASCII diagrams -@c rather than PostScript/PDF. -@c (This is not relevant to Info, since Info only handles ASCII.) -@iftex -@set print-postscript-figures -@end iftex -@c clear print-postscript-figures - @comment %**end of header @c per rms and peterb, use 10pt fonts for the main text, mostly to @@ -9567,25 +9557,10 @@ which holds the address for the atom @samp{buttercup}. @need 1200 This sounds more complicated than it is and is easier seen in a diagram: - -@c clear print-postscript-figures @c !!! cons-cell-diagram #1 -@ifset print-postscript-figures @sp 1 @center @image{cons-1} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group - ___ ___ ___ ___ ___ ___ - |___|___|--> |___|___|--> |___|___|--> nil - | | | - | | | - --> rose --> violet --> buttercup -@end group -@end smallexample -@end ifclear @noindent In the diagram, each box represents a word of computer memory that @@ -9610,26 +9585,10 @@ evaluation of the expression @need 1250 @noindent creates a situation like this: - @c cons-cell-diagram #2 -@ifset print-postscript-figures @sp 1 @center @image{cons-2} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -bouquet - | - | ___ ___ ___ ___ ___ ___ - --> |___|___|--> |___|___|--> |___|___|--> nil - | | | - | | | - --> rose --> violet --> buttercup -@end group -@end smallexample -@end ifclear @noindent In this example, the symbol @code{bouquet} holds the address of the first @@ -9638,26 +9597,10 @@ pair of boxes. @need 1200 This same list can be illustrated in a different sort of box notation like this: - @c cons-cell-diagram #2a -@ifset print-postscript-figures @sp 1 @center @image{cons-2a} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -bouquet - | - | -------------- --------------- ---------------- - | | car | cdr | | car | cdr | | car | cdr | - -->| rose | o------->| violet | o------->| butter- | nil | - | | | | | | | cup | | - -------------- --------------- ---------------- -@end group -@end smallexample -@end ifclear (Symbols consist of more than pairs of addresses, but the structure of a symbol is made up of addresses. Indeed, the symbol @code{bouquet} @@ -9681,29 +9624,10 @@ evaluation of the following expression @need 800 @noindent produces this: - @c cons-cell-diagram #3 -@ifset print-postscript-figures @sp 1 @center @image{cons-3} @sp 1 -@end ifset -@ifclear print-postscript-figures -@sp 1 -@smallexample -@group -bouquet flowers - | | - | ___ ___ | ___ ___ ___ ___ - --> | | | --> | | | | | | - |___|___|----> |___|___|--> |___|___|--> nil - | | | - | | | - --> rose --> violet --> buttercup -@end group -@end smallexample -@sp 1 -@end ifclear @noindent The value of @code{flowers} is @code{(violet buttercup)}, which is @@ -9731,29 +9655,11 @@ the expression @need 1500 @noindent produces: - @c cons-cell-diagram #4 -@ifset print-postscript-figures @sp 1 @center @image{cons-4} @sp 1 @end ifset -@ifclear print-postscript-figures -@sp 1 -@smallexample -@group -bouquet flowers - | | - | ___ ___ ___ ___ | ___ ___ ___ ___ - --> | | | | | | --> | | | | | | - |___|___|----> |___|___|----> |___|___|---->|___|___|--> nil - | | | | - | | | | - --> lily --> rose --> violet --> buttercup -@end group -@end smallexample -@sp 1 -@end ifclear @need 1200 @noindent @@ -9810,43 +9716,10 @@ Reference Manual}.) @need 1500 Here is a fanciful representation: - @c chest-of-drawers diagram -@ifset print-postscript-figures @sp 1 @center @image{drawers} @sp 1 -@end ifset -@ifclear print-postscript-figures -@sp 1 -@smallexample -@group - Chest of Drawers Contents of Drawers - - __ o0O0o __ - / \ - --------------------- - | directions to | [map to] - | symbol name | bouquet - | | - +---------------------+ - | directions to | - | symbol definition | [none] - | | - +---------------------+ - | directions to | [map to] - | variable value | (rose violet buttercup) - | | - +---------------------+ - | directions to | - | property list | [not described here] - | | - +---------------------+ - |/ \| -@end group -@end smallexample -@sp 1 -@end ifclear @node List Exercise @section Exercise @@ -9959,32 +9832,10 @@ by both the @code{kill-ring} and the @code{kill-ring-yank-pointer}. The words ``a different piece of text'' and ``yet more text'' are not duplicated. Instead, the two Lisp variables point to the same pieces of text. Here is a diagram: - @c cons-cell-diagram #5 -@ifset print-postscript-figures @sp 1 @center @image{cons-5} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -kill-ring kill-ring-yank-pointer - | | - | ___ ___ | ___ ___ ___ ___ - ---> | | | --> | | | | | | - |___|___|----> |___|___|--> |___|___|--> nil - | | | - | | | - | | --> "yet more text" - | | - | --> "a different piece of text" - | - --> "some text" -@end group -@end smallexample -@sp 1 -@end ifclear Both the variable @code{kill-ring} and the variable @code{kill-ring-yank-pointer} are pointers. But the kill ring itself is @@ -20706,24 +20557,10 @@ equivalent of @code{multiply-by-seven} is: @need 1250 @noindent If we want to multiply 3 by 7, we can write: - -@c clear print-postscript-figures @c lambda example diagram #1 -@ifset print-postscript-figures @sp 1 @center @image{lambda-1} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -(multiply-by-seven 3) - \_______________/ ^ - | | - function argument -@end group -@end smallexample -@end ifclear @noindent This expression returns 21. @@ -20731,44 +20568,18 @@ This expression returns 21. @need 1250 @noindent Similarly, we can write: - @c lambda example diagram #2 -@ifset print-postscript-figures @sp 1 @center @image{lambda-2} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -((lambda (number) (* 7 number)) 3) - \____________________________/ ^ - | | - anonymous function argument -@end group -@end smallexample -@end ifclear @need 1250 @noindent If we want to divide 100 by 50, we can write: - @c lambda example diagram #3 -@ifset print-postscript-figures @sp 1 @center @image{lambda-3} @sp 1 -@end ifset -@ifclear print-postscript-figures -@smallexample -@group -((lambda (arg) (/ arg 50)) 100) - \______________________/ \_/ - | | - anonymous function argument -@end group -@end smallexample -@end ifclear @noindent This expression returns 2. The 100 is passed to the function, which diff --git a/doc/lispintro/lambda-1.png b/doc/lispintro/lambda-1.png new file mode 100644 index 0000000000000000000000000000000000000000..97d34b86330738a412b0834ff68ba93cadebcb7e GIT binary patch literal 3168 zcmeAS@N?(olHy`uVBq!ia0y~yV0gvAz!1#A#K6EHXUwyNfq{XsILO_J@#aaLdIkmt z&H|6fVg?4G5)fv*mnL7qz`&qT;u=vBoS#-wo>-L1;2z+k;GU6RTvD7|lvz-sU}&Ic zV5VoVInd`Y0|Qr-r;B4q#hkZu-xjX65pMfv?a%n4gyAK_oyG$8W3mm_0(y>96ucTP zGfqiZ$~=WnLH5Ppjl#Wb$7ek7FZ%XtBBy+m?rGhPlX5p+in8X|Xb zvP`L^R~`h+T4ug7sjByL$D$SQfA3nCpOm}PC2&jJ`q|4)ex6et7dqAQ%6Hr6e-h{Q zeBC$av-Gwl20XIIe_p#KQhD}AMe34cl|T0V-%$5-s^Rz3-~Za2ZxvX^d~Q>ZK+)>s zcU_M?i4L85cf%u#cfaj;oHd`OZB}fVlIqE!+2y1;H8oPAt#Y1q-{jPpQ!eH7EtukU zIm9bd?s$v9?x5iHk1Z<;C&Pg6~RFjY7+l%6Gs2 z?QD85@BQ!BU!yoKeyS&TRgc{6(_w_~O^Qnr-_Yb0}`PHs#XW zvfHJy&*v1c+q&-ctRSxRZMoU`w*tIg@7nhLN~tW1x*r5RG1EB3!zf75tH3D@nn(}J>Yo7k~9eozkHY^fc; z&khBn_gSpPP}aMMtf6qYc11rnP1a8SHC49M*0(9pO{;UlJwS5+z&% zMO=ftHvcz_)GsJ|rpR+Rn)k;0;|qEOL3|georO}nve^TM#-eYPWX6HXI z%Um)=t(t9Lt-x*L@~+&z`n+=c+NUz z-t;}1cj|FS=+sonE72mX&+ok3uE#WYslX%mrCo~*Em|BngnKX&EGL^*| zQY@QSX<5g#Ot9$dUZiolX#ahGeGC4K34sutMY|8ovr!JZX>n(+j4Es|DI?$Lv_YO_AM>)Q|B5+*gcK* z^-p}__57wx|AC$#F_8sbH!oLCEjIQmPg?43&v#W)r((UepRcnL6`->&a!A z9Ez9IIVVhK+NYm(-ba7p&riLJH2NMNoMO6(BO#AF@BZf6oqgJq`F}h*_)=VS!t~S+ zx$UmS%?qWqDjff)y?r(NMEK$+@k9ET*X^5HW2*Jz>Cf6*SIwuacVpdeus>+`uWg^M zu6Qv0$@Z-9`!V~ZME@lHNqYOL8l)+{?f%->TJ@hNP_<{ASmBS~d-fX_s{EKgjzLEUWE4Ob)-`>_AGwTT3^yO~Pn7LUF-Cy3Y zSKmnf{&#yjJDc;>*P488{8lo~ob~MS`uqFS|EBRhtrlA<@~dmmZrrPH)V^v}PnqoTpMU=B*|Fh`t;0{H zVvoxrb`}LP>|z1cr*=hv%6^Q>0KdSGR?n1!3GcggB&O(ZN(k6@qRH{65;xmZG=XRD zUjL5k4?4AG(bk(e^ZtpwyqXny{p;ns4s))*ubmo{IcweZ*Jsl<$F2XpZ+~{F|Ie-F zMu&dLR(`z~&LP;AD094jW!|Zv;va^;l_mEpum3%l{YCk~>IgeC9_I+oNUxcxGjFzB zopUBl=J>w%>#t`ky4?RBD8hTqKg_G}+|;1j`|XK8zI|gmtLz)RfqA*06Pxz&BZWM7 z>*qaxX5!$b*)kzW$f-wt*_9pk-xbb(-nH)cKJ}J2->Y~3bxx2yo;hn-rqnr0#U}+8 z2Sh_dS?k&oD=cI#nY3E;9FaLB)V6R+(dL^1PNz1hwA@(VoH5IdgOS_wZJG7u<$Wyd ze`NM6^H*6Ouz9u1Z<31Vq+RP?@5;M<&CW%$_5bZ{Tg}5XTLzw%w#a5s;AVyl|@(fPkG zmdbAVnV;;TX?yo&rCf%%#_1xJ6W^A-WS2}{rf=}ASz*IjC&$Z@z3k~WVe9ApK6g0o zRl$Zg3#WW4u((mZNoV(_UHj|*^T}n+K6`B5T#1j*n}Mp#LmTgx7D~s;pnXS&qFs z;gR$)CL!fP<-F&WQ-Zu!N^&uHPI6!pXK55TR2qA(^7ghVLDePIn5_IDQlHl+z%=J(-NVXxD<>MV*>V&E~>Een^`IKD+9GCLWe?DVyxUc_tWkQWtf!n)|xL?(GmrOCZZM0bD zi|6vx-}~Ct{snIi5Kudp_MJnef{;< zRQt}Df_L3_n3rD3+8VVsEKx$pDK2t1-?x1y79G3?YwgMZ6n|WMJa@l00|Nttr>mdK zI;Vstx;Jncen1-L1;2z+k;GU6RTvD7|lvz-sU}&Ic zV5VoVInd`Y0|U<@PZ!6KiaBrR+Rj?N<5I)b`+HBOJZqWUc=+T2Yk|5n=3~|j?-{J- z2~vD0#A5$F|#R@u{(7r zaO_&wa{9{Oy8UdsduU(vppognmX(#ND1o0pX)az=vaizaa-y5 z>!q>RKN<8TAG`6Otv4O)g-c4lmkZ97@4oxwsG09#Y1t*2yY9blUm90rBNuzUROWbT z?91CW=Zj;_yOge%_8(84q_XaH)jai<9ka|im`pWK8=e0wbNr*t`%iwQTaWGDG3Dat zJsMq?Oj;)`)@Zuly@ZM=!&fY*O}0%@WcKr&RhOA{@2c*IV-6~~|K0a;NdAw%nx{W~ z`nN3qSm<2yyIJy=x29eFDbf9=%-Sn+wc+FLsU^FZFPvxyIh(R@UG}-k$Z4xwmwIy@ z7BDJ0m-=d{YC^*;lisSc4iBf-e$VQ)eK{#Gv?})cE6cT?uR8b6kdmCuZMg8pwG9)3 zZmG(~h{hVddU?qqa@vBH)r+s$t(cxFZ(^0d>#AMo^(-}ztxqcXE^o0pudWkz$ucsd zcjY^;y)0~{^PU?XYf{*e{o-C%a^y5t!3EbITsGh_^|4*%w!r&X*wXJ})th}5o$%oJ z`QyirkB^UcANu|Kcj|_36*h6Yl|E1Qcr#B+J$R$ygO1Mm&-08~6Zq!Fi>Y3}{APrKp%A`Py~Chbq>dNMn8tXlOfB0{z^{|Ex=g*s^ z^%s`MEn>4@wQ5(ktAVFbrgTI=;{&mljwhMNAAkJ(xpgG1y|EoV5TsBes!Zc%<F^ z><`fNS-mT3Pqx<8NrFt%vLd+oo?7mEe|U<}EzQX$N&kL6pI;@Z$UTSoqV@gnOOq5I zXKh_%pLtd*_qN>TcdOqsH=lm9U!^Sgxo`WemHHuQ@1|oS)t%>L zr=;HOy87LJFH29MB-2aJdC$X_wkCYK`s3RPsoB3%b9UXfG}1p&lz%eoO05L5$p_st z3%^;G*d0?c(zDCmsAcXn(MZKw;j3juhU8%bna8}Tiv6n_*SoL(?5SfEzfqs}U0aI+ zha$`U3>N_xqdT%9u7+uQ1so?VHOwlRpmH+ywH3!F84g98^Rr)_z5CSQj;uxBD25xR5)kVswM?$pQL%0(Xqe5Mldw= zpqy^_ceNU?W%VAC*QF+?Gsx*Fw4_9S>;A!HblIBwh2VsCwzAx|zZ2&dJ8o>=8JFnP z-(aKRIqA*!>hquLj^2E?=JbpoHcX!)S`t0#@{a%GHY(KE$m%9Gk)5gRPTj9|?vk3u z(~X9Q%DKA~%p=x@73YMS=x*Njp}Wj^)v8xN@3Fbg<2k)aY+naM_WWeC+Uv&eQye$d zxGJCcl-N^SQ*-9~RIWQRypD2gKb~E!iDz~yZ&2uWoVDyj;=)AvL$8^4H7}j4!uig# zQ^4s-y0yK%eflSk7ktzFBByBav(eiU@Q=;O@X^p3$%j;VBI-M-j}f=vwyCnQVQIhy7;mJ`oB*gj?Y zxw74{>#yIx%atM+F^#p__WTj?w^KV5PJB9elBr1{{er9lM-kgyMmRHEOm5z)RZskG z-+o)RZ?EC651&3AviyI~OriPU#e>Pgp`ijSv(KjOzME$@+w$A_;Gd=TaX)lk=yoh_ zKHg^d%%bmkWqk16v-+jOn@zrAMAbNOY8gxe&Q zw#1Aqoi3#=rJvp+uC9SwW`&5j${Y_3b-eer>h5zj9$vQBhxDof-kg>Cx@z?*E-B_u z>#k>8$ggT%^uXt^!IihQj;;x&mFFb7b$Zv`)2Q~FmKr(jXkm`TvDdFxhcMNMN`3kH z>z5P@~O958R$d5Jc~rCZizS1!w(b)muLJf~vM#$}lrOLyO0 zx9+t?-(!n?k;>2K1abYJp1M+wX<6o}^Pg6|-O2g<&iC5;-z}fdDb9FxR?1Xr#p_!p zzAMwu{mj}L#GiZnnSExhm&N(wN~hIxn{_v7nCul~;Xf>3nm5X-R{?|)xd`M~7% zHpfyaC2}k+Jom6=w&}KY|Gmo<{MjnkXFjru74P47OpmuEks~%h==esh zsMT{;e~sH#-{UIQy39PtYrWJV6W_|_%vsM$tX5viJhS9w{w2l}`Q#o}$AX`tS`wzQ|Nei!U%#Dg_3gJ|cW3R>R#trS^{Z)L@{jq3-+ukN zwS1*{_La%YG+iFc9&enOa=xeerZ~(^E}$YQQ*KC%hN{J zORHBE`Sdz*oZgh;e`?d2&wFMI?w)DDvv}32kJszF4Sz*)G*>ScaGGj+deg_=jk(p! z-ha`pDpA;P%y>Qhe9!N{aa+RzMKWi7>)(5rVd4J^3;cUu{fgK2;ShGJd|`1;rMq>O zl&K6K`&Pr22`ZkGR08V*V?)pTSzc1|PAJH?k>N9X#Qo9Uv~@%!J)GUxd%xBJz2VshrJWtl-< znoC!S#G2l_!jQ}(#ax*x!DBJkZ_~;NTE&jiVXLR+-u|$ER^bxYeX_p!EgWCKm0hI# zBi1QF0n4na-y2({A0>s~L*ta`5!7M~m_vfgz?$o$)*^7ykYI9{=-nQf`}#SZJu@ohv53=RZ%ov%a9DLE*&Ar|WbS zI6fUk>LY-eXZ|yEHFIsfuD8C4fq{X+)78&qol`;+-8)JQ@1Y%~D~5~*40sM~So6m+ zz29<6d&`08`|rv&%q+HMsA!dC*vPC<#&CqM;Rd6CHA51+!yAT(zPpflcA8yI IIC7{10G=t*xBvhE literal 0 HcmV?d00001 diff --git a/doc/lispintro/lambda-2.txt b/doc/lispintro/lambda-2.txt new file mode 100644 index 00000000000..40d0de448c4 --- /dev/null +++ b/doc/lispintro/lambda-2.txt @@ -0,0 +1,4 @@ + ((lambda (number) (* 7 number)) 3) + \____________________________/ ^ + | | + anonymous function argument diff --git a/doc/lispintro/lambda-3.png b/doc/lispintro/lambda-3.png new file mode 100644 index 0000000000000000000000000000000000000000..43027e11953f9f8b9ac023f541b734b0d40eea7f GIT binary patch literal 3584 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 VQ-&dPCTr(H=EW{13#^gj0RX;