summaryrefslogtreecommitdiff
path: root/localrepo/dash-20240405.946.tar
blob: d176257e6eb51fdf96f1c2a9d02892d89c87c043 (plain)
ofshex dumpascii
0000 64 61 73 68 2d 32 30 32 34 30 34 30 35 2e 39 34 36 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 dash-20240405.946/..............
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 36 35 33 00 20 35 00 00 00 0000000.00000000000.011653..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 64 61 73 68 2d 32 30 32 34 30 34 30 35 2e 39 34 36 2f 64 61 73 68 2d 70 6b 67 2e 65 6c 00 00 00 dash-20240405.946/dash-pkg.el...
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 30 30 36 37 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 30 31 00 20 30 00 00 00 0000673.00000000000.013701..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 64 61 73 68 22 20 22 32 30 32 34 30 34 30 35 (define-package."dash"."20240405
0420 2e 39 34 36 22 20 22 41 20 6d 6f 64 65 72 6e 20 6c 69 73 74 20 6c 69 62 72 61 72 79 20 66 6f 72 .946"."A.modern.list.library.for
0440 20 45 6d 61 63 73 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 34 22 29 29 0a 20 20 3a 63 6f 6d .Emacs"...'((emacs."24"))...:com
0460 6d 69 74 20 22 38 38 35 33 33 32 62 62 63 34 35 38 32 62 30 38 64 34 66 32 34 35 32 36 32 35 30 mit."885332bbc4582b08d4f24526250
0480 38 37 36 66 33 61 37 35 36 39 30 36 37 22 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 22 4d 61 876f3a7569067".:authors...'(("Ma
04a0 67 6e 61 72 20 53 76 65 65 6e 22 20 2e 20 22 6d 61 67 6e 61 72 73 40 67 6d 61 69 6c 2e 63 6f 6d gnar.Sveen"..."magnars@gmail.com
04c0 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 28 22 4d 61 67 6e 61 72 20 "))...:maintainers...'(("Magnar.
04e0 53 76 65 65 6e 22 20 2e 20 22 6d 61 67 6e 61 72 73 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 0a 20 Sveen"..."magnars@gmail.com"))..
0500 20 3a 6d 61 69 6e 74 61 69 6e 65 72 0a 20 20 27 28 22 4d 61 67 6e 61 72 20 53 76 65 65 6e 22 20 .:maintainer...'("Magnar.Sveen".
0520 2e 20 22 6d 61 67 6e 61 72 73 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 0a 20 20 3a 6b 65 79 77 6f 72 .."magnars@gmail.com")...:keywor
0540 64 73 0a 20 20 27 28 22 65 78 74 65 6e 73 69 6f 6e 73 22 20 22 6c 69 73 70 22 29 0a 20 20 3a 75 ds...'("extensions"."lisp")...:u
0560 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 6e 61 72 73 2f 64 rl."https://github.com/magnars/d
0580 61 73 68 2e 65 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 ash.el").;;.Local.Variables:.;;.
05a0 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 no-byte-compile:.t.;;.End:......
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 64 61 73 68 2d 32 30 32 34 30 34 30 35 2e 39 34 36 2f 64 61 73 68 2e 65 6c 00 00 00 00 00 00 00 dash-20240405.946/dash.el.......
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0680 30 34 34 31 35 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 32 33 00 20 30 00 00 00 0441530.00000000000.013123..0...
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 3b 3b 3b 20 64 61 73 68 2e 65 6c 20 2d 2d 2d 20 41 20 6d 6f 64 65 72 6e 20 6c 69 73 74 20 6c 69 ;;;.dash.el.---.A.modern.list.li
0820 62 72 61 72 79 20 66 6f 72 20 45 6d 61 63 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e brary.for.Emacs..-*-.lexical-bin
0840 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ding:.t.-*-..;;.Copyright.(C).20
0860 31 32 2d 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 12-2024.Free.Software.Foundation
0880 2c 20 49 6e 63 2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4d 61 67 6e 61 72 20 53 76 65 65 6e 20 ,.Inc...;;.Author:.Magnar.Sveen.
08a0 3c 6d 61 67 6e 61 72 73 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 <magnars@gmail.com>.;;.Version:.
08c0 32 2e 31 39 2e 31 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 2.19.1.;;.Package-Requires:.((em
08e0 61 63 73 20 22 32 34 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 65 78 74 65 6e 73 69 6f acs."24")).;;.Keywords:.extensio
0900 6e 73 2c 20 6c 69 73 70 0a 3b 3b 20 48 6f 6d 65 70 61 67 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 ns,.lisp.;;.Homepage:.https://gi
0920 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 6e 61 72 73 2f 64 61 73 68 2e 65 6c 0a 0a 3b 3b 20 54 68 69 thub.com/magnars/dash.el..;;.Thi
0940 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 s.program.is.free.software:.you.
0960 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 can.redistribute.it.and/or.modif
0980 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 y.;;.it.under.the.terms.of.the.G
09a0 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 NU.General.Public.License.as.pub
09c0 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 lished.by.;;.the.Free.Software.F
09e0 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 oundation,.either.version.3.of.t
0a00 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f he.License,.or.;;.(at.your.optio
0a20 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 n).any.later.version...;;.This.p
0a40 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 rogram.is.distributed.in.the.hop
0a60 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 e.that.it.will.be.useful,.;;.but
0a80 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 .WITHOUT.ANY.WARRANTY;.without.e
0aa0 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d ven.the.implied.warranty.of.;;.M
0ac0 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 ERCHANTABILITY.or.FITNESS.FOR.A.
0ae0 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 PARTICULAR.PURPOSE...See.the.;;.
0b00 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d GNU.General.Public.License.for.m
0b20 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 ore.details...;;.You.should.have
0b40 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
0b60 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
0b80 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 .this.program...If.not,.see.<htt
0ba0 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b ps://www.gnu.org/licenses/>...;;
0bc0 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 41 20 6d 6f 64 65 72 6e 20 6c 69 73 74 20 ;.Commentary:..;;.A.modern.list.
0be0 41 50 49 20 66 6f 72 20 45 6d 61 63 73 2e 0a 3b 3b 0a 3b 3b 20 53 65 65 20 69 74 73 20 6f 76 65 API.for.Emacs..;;.;;.See.its.ove
0c00 72 76 69 65 77 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 6e rview.at.https://github.com/magn
0c20 61 72 73 2f 64 61 73 68 2e 65 6c 23 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 ars/dash.el#functions...;;;.Code
0c40 3a 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 3b 3b 20 54 4f 44 4f 3a :..(eval-when-compile...;;.TODO:
0c60 20 45 6d 61 63 73 20 32 34 2e 33 20 66 69 72 73 74 20 69 6e 74 72 6f 64 75 63 65 64 20 60 67 76 .Emacs.24.3.first.introduced.`gv
0c80 27 2c 20 73 6f 20 72 65 6d 6f 76 65 20 74 68 69 73 20 61 6e 64 20 61 6c 6c 0a 20 20 3b 3b 20 63 ',.so.remove.this.and.all...;;.c
0ca0 61 6c 6c 73 20 74 6f 20 60 64 65 66 73 65 74 66 27 20 77 68 65 6e 20 73 75 70 70 6f 72 74 20 66 alls.to.`defsetf'.when.support.f
0cc0 6f 72 20 65 61 72 6c 69 65 72 20 76 65 72 73 69 6f 6e 73 20 69 73 20 64 72 6f 70 70 65 64 2e 0a or.earlier.versions.is.dropped..
0ce0 20 20 28 75 6e 6c 65 73 73 20 28 66 62 6f 75 6e 64 70 20 27 67 76 2d 64 65 66 69 6e 65 2d 73 65 ..(unless.(fboundp.'gv-define-se
0d00 74 74 65 72 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 29 29 0a 0a 20 20 3b 3b 20 2d tter).....(require.'cl))....;;.-
0d20 20 32 34 2e 33 20 73 74 61 72 74 65 64 20 63 6f 6d 70 6c 61 69 6e 69 6e 67 20 61 62 6f 75 74 20 .24.3.started.complaining.about.
0d40 75 6e 6b 6e 6f 77 6e 20 60 64 65 63 6c 61 72 65 27 20 70 72 6f 70 73 2e 0a 20 20 3b 3b 20 2d 20 unknown.`declare'.props....;;.-.
0d60 32 35 20 69 6e 74 72 6f 64 75 63 65 64 20 60 70 75 72 65 27 20 61 6e 64 20 60 73 69 64 65 2d 65 25.introduced.`pure'.and.`side-e
0d80 66 66 65 63 74 2d 66 72 65 65 27 2e 0a 20 20 3b 3b 20 2d 20 33 30 20 69 6e 74 72 6f 64 75 63 65 ffect-free'....;;.-.30.introduce
0da0 64 20 60 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 27 2e 0a 20 20 28 77 d.`important-return-value'....(w
0dc0 68 65 6e 20 28 62 6f 75 6e 64 70 20 27 64 65 66 75 6e 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 2d hen.(boundp.'defun-declarations-
0de0 61 6c 69 73 74 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 70 72 6f 70 20 27 28 69 6d 70 6f 72 alist).....(dolist.(prop.'(impor
0e00 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 70 75 72 65 20 73 69 64 65 2d 65 66 66 65 tant-return-value.pure.side-effe
0e20 63 74 2d 66 72 65 65 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 73 73 71 20 70 72 ct-free)).......(unless.(assq.pr
0e40 6f 70 20 64 65 66 75 6e 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 2d 61 6c 69 73 74 29 0a 20 20 20 op.defun-declarations-alist)....
0e60 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 70 72 6f 70 20 23 27 69 67 6e 6f 72 65 29 20 .....(push.(list.prop.#'ignore).
0e80 64 65 66 75 6e 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 2d 61 6c 69 73 74 29 29 29 29 29 0a 0a 28 defun-declarations-alist)))))..(
0ea0 64 65 66 67 72 6f 75 70 20 64 61 73 68 20 28 29 0a 20 20 22 43 75 73 74 6f 6d 69 7a 65 20 67 72 defgroup.dash.()..."Customize.gr
0ec0 6f 75 70 20 66 6f 72 20 44 61 73 68 2c 20 61 20 6d 6f 64 65 72 6e 20 6c 69 73 74 20 6c 69 62 72 oup.for.Dash,.a.modern.list.libr
0ee0 61 72 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 65 78 74 65 6e 73 69 6f 6e 73 0a 20 20 3a 67 72 ary."...:group.'extensions...:gr
0f00 6f 75 70 20 27 6c 69 73 70 0a 20 20 3a 70 72 65 66 69 78 20 22 64 61 73 68 2d 22 29 0a 0a 28 64 oup.'lisp...:prefix."dash-")..(d
0f20 65 66 6d 61 63 72 6f 20 21 63 6f 6e 73 20 28 63 61 72 20 63 64 72 29 0a 20 20 22 44 65 73 74 72 efmacro.!cons.(car.cdr)..."Destr
0f40 75 63 74 69 76 65 3a 20 53 65 74 20 43 44 52 20 74 6f 20 74 68 65 20 63 6f 6e 73 20 6f 66 20 43 uctive:.Set.CDR.to.the.cons.of.C
0f60 41 52 20 61 6e 64 20 43 44 52 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 AR.and.CDR."...(declare.(debug.(
0f80 66 6f 72 6d 20 73 79 6d 62 6f 6c 70 29 29 29 0a 20 20 60 28 73 65 74 71 20 2c 63 64 72 20 28 63 form.symbolp)))...`(setq.,cdr.(c
0fa0 6f 6e 73 20 2c 63 61 72 20 2c 63 64 72 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 21 63 64 72 ons.,car.,cdr)))..(defmacro.!cdr
0fc0 20 28 6c 69 73 74 29 0a 20 20 22 44 65 73 74 72 75 63 74 69 76 65 3a 20 53 65 74 20 4c 49 53 54 .(list)..."Destructive:.Set.LIST
0fe0 20 74 6f 20 74 68 65 20 63 64 72 20 6f 66 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 .to.the.cdr.of.LIST."...(declare
1000 20 28 64 65 62 75 67 20 28 73 79 6d 62 6f 6c 70 29 29 29 0a 20 20 60 28 73 65 74 71 20 2c 6c 69 .(debug.(symbolp)))...`(setq.,li
1020 73 74 20 28 63 64 72 20 2c 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 65 61 st.(cdr.,list)))..(defmacro.--ea
1040 63 68 20 28 6c 69 73 74 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 61 6c 75 61 74 65 ch.(list.&rest.body)..."Evaluate
1060 20 42 4f 44 59 20 66 6f 72 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 61 .BODY.for.each.element.of.LIST.a
1080 6e 64 20 72 65 74 75 72 6e 20 6e 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c nd.return.nil..Each.element.of.L
10a0 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 IST.in.turn.is.bound.to.`it'.and
10c0 20 69 74 73 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e .its.index.within.LIST.to.`it-in
10e0 64 65 78 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 42 4f 44 59 2e 0a 54 68 69 dex'.before.evaluating.BODY..Thi
1100 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 s.is.the.anaphoric.counterpart.t
1120 6f 20 60 2d 65 61 63 68 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 o.`-each'."...(declare.(debug.(f
1140 6f 72 6d 20 62 6f 64 79 29 29 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 orm.body)).(indent.1))...(let.((
1160 6c 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 73 74 22 29 29 0a 20 20 20 20 20 20 20 20 l.(make-symbol."list")).........
1180 28 69 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 69 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 (i.(make-symbol."i"))).....`(let
11a0 20 28 28 2c 6c 20 2c 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 2c 69 20 30 29 29 0a .((,l.,list)............(,i.0)).
11c0 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 2c 6c 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 .......(while.,l..........(let.(
11e0 28 69 74 20 28 70 6f 70 20 2c 6c 29 29 20 28 69 74 2d 69 6e 64 65 78 20 2c 69 29 29 0a 20 20 20 (it.(pop.,l)).(it-index.,i))....
1200 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 69 74 20 69 74 2d 69 6e 64 65 78 29 0a 20 20 20 ........(ignore.it.it-index)....
1220 20 20 20 20 20 20 20 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c ........,@body)..........(setq.,
1240 69 20 28 31 2b 20 2c 69 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 65 61 63 68 20 28 6c 69 i.(1+.,i))))))..(defun.-each.(li
1260 73 74 20 66 6e 29 0a 20 20 22 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 63 68 20 65 6c 65 6d 65 6e st.fn)..."Call.FN.on.each.elemen
1280 74 20 6f 66 20 4c 49 53 54 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 3b 20 74 68 69 73 20 66 75 6e 63 t.of.LIST..Return.nil;.this.func
12a0 74 69 6f 6e 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 73 69 64 65 20 65 66 66 65 63 74 tion.is.intended.for.side.effect
12c0 73 2e 0a 0a 49 74 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 s...Its.anaphoric.counterpart.is
12e0 20 60 2d 2d 65 61 63 68 27 2e 0a 0a 46 6f 72 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 20 63 75 .`--each'...For.access.to.the.cu
1300 72 72 65 6e 74 20 65 6c 65 6d 65 6e 74 27 73 20 69 6e 64 65 78 20 69 6e 20 4c 49 53 54 2c 20 73 rrent.element's.index.in.LIST,.s
1320 65 65 0a 60 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 ee.`-each-indexed'."...(declare.
1340 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 69 67 6e 6f 72 65 20 28 6d 61 70 63 20 66 6e 20 6c (indent.1))...(ignore.(mapc.fn.l
1360 69 73 74 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 65 61 63 68 2d 69 6e 64 65 78 65 ist)))..(defalias.'--each-indexe
1380 64 20 27 2d 2d 65 61 63 68 29 0a 0a 28 64 65 66 75 6e 20 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 d.'--each)..(defun.-each-indexed
13a0 20 28 6c 69 73 74 20 66 6e 29 0a 20 20 22 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 63 68 20 69 6e .(list.fn)..."Call.FN.on.each.in
13c0 64 65 78 20 61 6e 64 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2e 0a 46 6f 72 20 65 61 63 dex.and.element.of.LIST..For.eac
13e0 68 20 49 54 45 4d 20 61 74 20 49 4e 44 45 58 20 69 6e 20 4c 49 53 54 2c 20 63 61 6c 6c 20 28 66 h.ITEM.at.INDEX.in.LIST,.call.(f
1400 75 6e 63 61 6c 6c 20 46 4e 20 49 4e 44 45 58 20 49 54 45 4d 29 2e 0a 52 65 74 75 72 6e 20 6e 69 uncall.FN.INDEX.ITEM)..Return.ni
1420 6c 3b 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 l;.this.function.is.intended.for
1440 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 6d 61 70 2d .side.effects...See.also:.`-map-
1460 69 6e 64 65 78 65 64 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 indexed'."...(declare.(indent.1)
1480 29 0a 20 20 28 2d 2d 65 61 63 68 20 6c 69 73 74 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 2d )...(--each.list.(funcall.fn.it-
14a0 69 6e 64 65 78 20 69 74 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 65 61 63 68 2d 77 68 index.it)))..(defmacro.--each-wh
14c0 69 6c 65 20 28 6c 69 73 74 20 70 72 65 64 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 ile.(list.pred.&rest.body)..."Ev
14e0 61 6c 75 61 74 65 20 42 4f 44 59 20 66 6f 72 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 aluate.BODY.for.each.item.in.LIS
1500 54 2c 20 77 68 69 6c 65 20 50 52 45 44 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 6f 6e 2d 6e T,.while.PRED.evaluates.to.non-n
1520 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e il..Each.element.of.LIST.in.turn
1540 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a .is.bound.to.`it'.and.its.index.
1560 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 within.LIST.to.`it-index'.before
1580 20 65 76 61 6c 75 61 74 69 6e 67 20 50 52 45 44 20 6f 72 20 42 4f 44 59 2e 20 20 4f 6e 63 65 0a .evaluating.PRED.or.BODY...Once.
15a0 61 6e 20 65 6c 65 6d 65 6e 74 20 69 73 20 72 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 an.element.is.reached.for.which.
15c0 50 52 45 44 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 69 6c 2c 20 6e 6f 20 66 75 72 74 68 65 PRED.evaluates.to.nil,.no.furthe
15e0 72 0a 42 4f 44 59 20 69 73 20 65 76 61 6c 75 61 74 65 64 2e 20 20 54 68 65 20 72 65 74 75 72 6e r.BODY.is.evaluated...The.return
1600 20 76 61 6c 75 65 20 69 73 20 61 6c 77 61 79 73 20 6e 69 6c 2e 0a 54 68 69 73 20 69 73 20 74 68 .value.is.always.nil..This.is.th
1620 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 65 61 63 e.anaphoric.counterpart.to.`-eac
1640 68 2d 77 68 69 6c 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f h-while'."...(declare.(debug.(fo
1660 72 6d 20 66 6f 72 6d 20 62 6f 64 79 29 29 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20 20 28 6c 65 rm.form.body)).(indent.2))...(le
1680 74 20 28 28 6c 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 73 74 22 29 29 0a 20 20 20 20 t.((l.(make-symbol."list")).....
16a0 20 20 20 20 28 69 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 69 22 29 29 0a 20 20 20 20 20 20 ....(i.(make-symbol."i")).......
16c0 20 20 28 65 6c 74 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 65 6c 74 22 29 29 29 0a 20 20 20 ..(elt.(make-symbol."elt")))....
16e0 20 60 28 6c 65 74 20 28 28 2c 6c 20 2c 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 2c .`(let.((,l.,list)............(,
1700 69 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 2c 65 6c 74 29 0a 20 20 20 20 20 20 20 28 77 68 i.0)............,elt)........(wh
1720 69 6c 65 20 28 77 68 65 6e 20 2c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 ile.(when.,l.................(se
1740 74 71 20 2c 65 6c 74 20 28 63 61 72 2d 73 61 66 65 20 2c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 tq.,elt.(car-safe.,l))..........
1760 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 2c 65 6c 74 29 20 28 69 74 2d 69 6e 64 65 78 .......(let.((it.,elt).(it-index
1780 20 2c 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 .,i))...................(ignore.
17a0 69 74 20 69 74 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c it.it-index)...................,
17c0 70 72 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 2c 65 6c 74 29 20 pred))..........(let.((it.,elt).
17e0 28 69 74 2d 69 6e 64 65 78 20 2c 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 (it-index.,i))............(ignor
1800 65 20 69 74 20 69 74 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 2c 40 62 6f 64 79 e.it.it-index)............,@body
1820 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 69 20 28 31 2b 20 2c 69 29 20 2c 6c 20 28 )..........(setq.,i.(1+.,i).,l.(
1840 63 64 72 20 2c 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 65 61 63 68 2d 77 68 69 6c 65 cdr.,l))))))..(defun.-each-while
1860 20 28 6c 69 73 74 20 70 72 65 64 20 66 6e 29 0a 20 20 22 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 .(list.pred.fn)..."Call.FN.on.ea
1880 63 68 20 49 54 45 4d 20 69 6e 20 4c 49 53 54 2c 20 77 68 69 6c 65 20 28 50 52 45 44 20 49 54 45 ch.ITEM.in.LIST,.while.(PRED.ITE
18a0 4d 29 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 4f 6e 63 65 20 61 6e 20 49 54 45 4d 20 69 73 20 72 M).is.non-nil..Once.an.ITEM.is.r
18c0 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 69 eached.for.which.PRED.returns.ni
18e0 6c 2c 20 46 4e 20 69 73 20 6e 6f 0a 6c 6f 6e 67 65 72 20 63 61 6c 6c 65 64 2e 20 20 52 65 74 75 l,.FN.is.no.longer.called...Retu
1900 72 6e 20 6e 69 6c 3b 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 65 6e 64 65 rn.nil;.this.function.is.intende
1920 64 20 66 6f 72 20 73 69 64 65 0a 65 66 66 65 63 74 73 2e 0a 0a 49 74 73 20 61 6e 61 70 68 6f 72 d.for.side.effects...Its.anaphor
1940 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 65 61 63 68 2d 77 68 69 6c 65 27 ic.counterpart.is.`--each-while'
1960 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20 20 28 2d 2d 65 ."...(declare.(indent.2))...(--e
1980 61 63 68 2d 77 68 69 6c 65 20 6c 69 73 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 ach-while.list.(funcall.pred.it)
19a0 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d .(funcall.fn.it)))..(defmacro.--
19c0 65 61 63 68 2d 72 20 28 6c 69 73 74 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 61 6c each-r.(list.&rest.body)..."Eval
19e0 75 61 74 65 20 42 4f 44 59 20 66 6f 72 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 uate.BODY.for.each.element.of.LI
1a00 53 54 20 69 6e 20 72 65 76 65 72 73 65 64 20 6f 72 64 65 72 2e 0a 45 61 63 68 20 65 6c 65 6d 65 ST.in.reversed.order..Each.eleme
1a20 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 2c 20 73 74 61 72 74 69 6e 67 20 61 74 20 nt.of.LIST.in.turn,.starting.at.
1a40 69 74 73 20 65 6e 64 2c 20 69 73 20 62 6f 75 6e 64 20 74 6f 0a 60 69 74 27 20 61 6e 64 20 69 74 its.end,.is.bound.to.`it'.and.it
1a60 73 20 69 6e 64 65 78 20 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 s.index.within.LIST.to.`it-index
1a80 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 0a 42 4f 44 59 2e 20 20 54 68 65 20 72 '.before.evaluating.BODY...The.r
1aa0 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 61 6c 77 61 79 73 20 6e 69 6c 2e 0a 54 68 69 73 20 eturn.value.is.always.nil..This.
1ac0 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 is.the.anaphoric.counterpart.to.
1ae0 60 2d 65 61 63 68 2d 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 `-each-r'."...(declare.(debug.(f
1b00 6f 72 6d 20 62 6f 64 79 29 29 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 orm.body)).(indent.1))...(let.((
1b20 76 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 76 65 63 74 6f 72 22 29 29 0a 20 20 20 20 20 20 v.(make-symbol."vector")).......
1b40 20 20 28 69 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 69 22 29 29 29 0a 20 20 20 20 3b 3b 20 ..(i.(make-symbol."i"))).....;;.
1b60 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6e 6f 74 65 3a 20 62 75 69 6c 64 69 6e 67 20 61 20 Implementation.note:.building.a.
1b80 76 65 63 74 6f 72 20 69 73 20 63 6f 6e 73 69 64 65 72 61 62 6c 79 20 66 61 73 74 65 72 0a 20 20 vector.is.considerably.faster...
1ba0 20 20 3b 3b 20 74 68 61 6e 20 62 75 69 6c 64 69 6e 67 20 61 20 72 65 76 65 72 73 65 64 20 6c 69 ..;;.than.building.a.reversed.li
1bc0 73 74 20 28 76 65 63 74 6f 72 20 74 61 6b 65 73 20 6c 65 73 73 20 6d 65 6d 6f 72 79 2c 20 73 6f st.(vector.takes.less.memory,.so
1be0 0a 20 20 20 20 3b 3b 20 74 68 65 72 65 20 69 73 20 6c 65 73 73 20 47 43 29 2c 20 70 6c 75 73 20 .....;;.there.is.less.GC),.plus.
1c00 60 6c 65 6e 67 74 68 27 20 63 6f 6d 65 73 20 6e 61 74 75 72 61 6c 6c 79 2e 20 20 49 6e 2d 70 6c `length'.comes.naturally...In-pl
1c20 61 63 65 0a 20 20 20 20 3b 3b 20 60 6e 72 65 76 65 72 73 65 27 20 77 6f 75 6c 64 20 62 65 20 66 ace.....;;.`nreverse'.would.be.f
1c40 61 73 74 65 72 20 73 74 69 6c 6c 2c 20 62 75 74 20 42 4f 44 59 20 77 6f 75 6c 64 20 62 65 20 61 aster.still,.but.BODY.would.be.a
1c60 62 6c 65 20 74 6f 20 73 65 65 0a 20 20 20 20 3b 3b 20 74 68 61 74 2c 20 65 76 65 6e 20 69 66 20 ble.to.see.....;;.that,.even.if.
1c80 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 77 61 73 20 75 6e 64 6f 6e 65 20 62 65 66 6f the.modification.was.undone.befo
1ca0 72 65 20 77 65 20 72 65 74 75 72 6e 2e 0a 20 20 20 20 60 28 6c 65 74 2a 20 28 28 2c 76 20 28 76 re.we.return......`(let*.((,v.(v
1cc0 63 6f 6e 63 61 74 20 2c 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 69 20 28 concat.,list)).............(,i.(
1ce0 6c 65 6e 67 74 68 20 2c 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 74 20 69 74 2d 69 6e length.,v)).............it.it-in
1d00 64 65 78 29 0a 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 69 74 20 69 74 2d 69 6e 64 65 78 29 dex)........(ignore.it.it-index)
1d20 0a 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 2c 69 20 30 29 0a 20 20 20 20 20 20 20 20 ........(while.(>.,i.0).........
1d40 20 28 73 65 74 71 20 2c 69 20 28 31 2d 20 2c 69 29 20 69 74 2d 69 6e 64 65 78 20 2c 69 20 69 74 .(setq.,i.(1-.,i).it-index.,i.it
1d60 20 28 61 72 65 66 20 2c 76 20 2c 69 29 29 0a 20 20 20 20 20 20 20 20 20 2c 40 62 6f 64 79 29 29 .(aref.,v.,i))..........,@body))
1d80 29 29 0a 0a 28 64 65 66 75 6e 20 2d 65 61 63 68 2d 72 20 28 6c 69 73 74 20 66 6e 29 0a 20 20 22 ))..(defun.-each-r.(list.fn)..."
1da0 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 Call.FN.on.each.element.of.LIST.
1dc0 69 6e 20 72 65 76 65 72 73 65 64 20 6f 72 64 65 72 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 3b 20 74 in.reversed.order..Return.nil;.t
1de0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 73 69 64 his.function.is.intended.for.sid
1e00 65 20 65 66 66 65 63 74 73 2e 0a 0a 49 74 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 e.effects...Its.anaphoric.counte
1e20 72 70 61 72 74 20 69 73 20 60 2d 2d 65 61 63 68 2d 72 27 2e 22 0a 20 20 28 2d 2d 65 61 63 68 2d rpart.is.`--each-r'."...(--each-
1e40 72 20 6c 69 73 74 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 29 29 0a 0a 28 64 65 66 6d 61 r.list.(funcall.fn.it)))..(defma
1e60 63 72 6f 20 2d 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 20 28 6c 69 73 74 20 70 72 65 64 20 26 72 cro.--each-r-while.(list.pred.&r
1e80 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 61 6c 20 42 4f 44 59 20 66 6f 72 20 65 61 63 68 20 est.body)..."Eval.BODY.for.each.
1ea0 69 74 65 6d 20 69 6e 20 72 65 76 65 72 73 65 64 20 4c 49 53 54 2c 20 77 68 69 6c 65 20 50 52 45 item.in.reversed.LIST,.while.PRE
1ec0 44 20 65 76 61 6c 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 D.evals.to.non-nil..Each.element
1ee0 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 2c 20 73 74 61 72 74 69 6e 67 20 61 74 20 69 74 .of.LIST.in.turn,.starting.at.it
1f00 73 20 65 6e 64 2c 20 69 73 20 62 6f 75 6e 64 20 74 6f 0a 60 69 74 27 20 61 6e 64 20 69 74 73 20 s.end,.is.bound.to.`it'.and.its.
1f20 69 6e 64 65 78 20 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 index.within.LIST.to.`it-index'.
1f40 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 0a 50 52 45 44 20 6f 72 20 42 4f 44 59 2e 20 before.evaluating.PRED.or.BODY..
1f60 20 4f 6e 63 65 20 61 6e 20 65 6c 65 6d 65 6e 74 20 69 73 20 72 65 61 63 68 65 64 20 66 6f 72 20 .Once.an.element.is.reached.for.
1f80 77 68 69 63 68 20 50 52 45 44 0a 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 69 6c 2c 20 6e 6f 20 which.PRED.evaluates.to.nil,.no.
1fa0 66 75 72 74 68 65 72 20 42 4f 44 59 20 69 73 20 65 76 61 6c 75 61 74 65 64 2e 20 20 54 68 65 20 further.BODY.is.evaluated...The.
1fc0 72 65 74 75 72 6e 20 76 61 6c 75 65 0a 69 73 20 61 6c 77 61 79 73 20 6e 69 6c 2e 0a 54 68 69 73 return.value.is.always.nil..This
1fe0 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f .is.the.anaphoric.counterpart.to
2000 20 60 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 .`-each-r-while'."...(declare.(d
2020 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 62 6f 64 79 29 29 20 28 69 6e 64 65 6e 74 20 32 ebug.(form.form.body)).(indent.2
2040 29 29 0a 20 20 28 6c 65 74 20 28 28 76 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 76 65 63 74 ))...(let.((v.(make-symbol."vect
2060 6f 72 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 69 or")).........(i.(make-symbol."i
2080 22 29 29 0a 20 20 20 20 20 20 20 20 28 65 6c 74 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 65 ")).........(elt.(make-symbol."e
20a0 6c 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 2a 20 28 28 2c 76 20 28 76 63 6f 6e 63 61 74 20 lt"))).....`(let*.((,v.(vconcat.
20c0 2c 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 69 20 28 6c 65 6e 67 74 68 20 ,list)).............(,i.(length.
20e0 2c 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 2c 65 6c 74 20 69 74 20 69 74 2d 69 6e 64 65 ,v)).............,elt.it.it-inde
2100 78 29 0a 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 69 74 20 69 74 2d 69 6e 64 65 78 29 0a 20 x)........(ignore.it.it-index)..
2120 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 77 68 65 6e 20 28 3e 20 2c 69 20 30 29 0a 20 20 20 20 ......(while.(when.(>.,i.0).....
2140 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 69 20 28 31 2d 20 2c 69 29 20 69 74 2d ............(setq.,i.(1-.,i).it-
2160 69 6e 64 65 78 20 2c 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 index.,i).................(setq.
2180 2c 65 6c 74 20 28 61 72 65 66 20 2c 76 20 2c 69 29 20 69 74 20 2c 65 6c 74 29 0a 20 20 20 20 20 ,elt.(aref.,v.,i).it.,elt)......
21a0 20 20 20 20 20 20 20 20 20 20 20 2c 70 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 ...........,pred)..........(setq
21c0 20 69 74 2d 69 6e 64 65 78 20 2c 69 20 69 74 20 2c 65 6c 74 29 0a 20 20 20 20 20 20 20 20 20 2c .it-index.,i.it.,elt)..........,
21e0 40 62 6f 64 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 20 @body))))..(defun.-each-r-while.
2200 28 6c 69 73 74 20 70 72 65 64 20 66 6e 29 0a 20 20 22 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 63 (list.pred.fn)..."Call.FN.on.eac
2220 68 20 49 54 45 4d 20 69 6e 20 72 65 76 65 72 73 65 64 20 4c 49 53 54 2c 20 77 68 69 6c 65 20 28 h.ITEM.in.reversed.LIST,.while.(
2240 50 52 45 44 20 49 54 45 4d 29 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 4f 6e 63 65 20 61 6e 20 49 PRED.ITEM).is.non-nil..Once.an.I
2260 54 45 4d 20 69 73 20 72 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 TEM.is.reached.for.which.PRED.re
2280 74 75 72 6e 73 20 6e 69 6c 2c 20 46 4e 20 69 73 20 6e 6f 0a 6c 6f 6e 67 65 72 20 63 61 6c 6c 65 turns.nil,.FN.is.no.longer.calle
22a0 64 2e 20 20 52 65 74 75 72 6e 20 6e 69 6c 3b 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 d...Return.nil;.this.function.is
22c0 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 73 69 64 65 0a 65 66 66 65 63 74 73 2e 0a 0a 49 74 73 .intended.for.side.effects...Its
22e0 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 65 61 63 .anaphoric.counterpart.is.`--eac
2300 68 2d 72 2d 77 68 69 6c 65 27 2e 22 0a 20 20 28 2d 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 20 6c h-r-while'."...(--each-r-while.l
2320 69 73 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 28 66 75 6e 63 61 6c 6c 20 66 ist.(funcall.pred.it).(funcall.f
2340 6e 20 69 74 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 64 6f 74 69 6d 65 73 20 28 6e 75 n.it)))..(defmacro.--dotimes.(nu
2360 6d 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 76 61 6c 75 61 74 65 20 42 4f 44 59 20 4e m.&rest.body)..."Evaluate.BODY.N
2380 55 4d 20 74 69 6d 65 73 2c 20 70 72 65 73 75 6d 61 62 6c 79 20 66 6f 72 20 73 69 64 65 20 65 66 UM.times,.presumably.for.side.ef
23a0 66 65 63 74 73 2e 0a 42 4f 44 59 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 77 69 74 68 20 74 68 fects..BODY.is.evaluated.with.th
23c0 65 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 60 69 74 27 20 74 65 6d 70 6f 72 61 72 69 6c e.local.variable.`it'.temporaril
23e0 79 20 62 6f 75 6e 64 0a 74 6f 20 73 75 63 63 65 73 73 69 76 65 20 69 6e 74 65 67 65 72 73 20 72 y.bound.to.successive.integers.r
2400 75 6e 6e 69 6e 67 20 66 72 6f 6d 20 30 2c 20 69 6e 63 6c 75 73 69 76 65 2c 20 74 6f 20 4e 55 4d unning.from.0,.inclusive,.to.NUM
2420 2c 0a 65 78 63 6c 75 73 69 76 65 2e 20 20 42 4f 44 59 20 69 73 20 6e 6f 74 20 65 76 61 6c 75 61 ,.exclusive...BODY.is.not.evalua
2440 74 65 64 20 69 66 20 4e 55 4d 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 31 2e 0a 54 68 69 73 20 ted.if.NUM.is.less.than.1..This.
2460 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 is.the.anaphoric.counterpart.to.
2480 60 2d 64 6f 74 69 6d 65 73 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 `-dotimes'."...(declare.(debug.(
24a0 66 6f 72 6d 20 62 6f 64 79 29 29 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 form.body)).(indent.1))...(let.(
24c0 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 75 6d 22 29 29 0a 20 20 20 20 20 20 20 20 (n.(make-symbol."num")).........
24e0 28 69 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 69 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 (i.(make-symbol."i"))).....`(let
2500 20 28 28 2c 6e 20 2c 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 2c 69 20 30 29 0a 20 20 .((,n.,num)............(,i.0)...
2520 20 20 20 20 20 20 20 20 20 69 74 29 0a 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 69 74 29 0a .........it)........(ignore.it).
2540 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 2c 69 20 2c 6e 29 0a 20 20 20 20 20 20 20 20 .......(while.(<.,i.,n).........
2560 20 28 73 65 74 71 20 69 74 20 2c 69 20 2c 69 20 28 31 2b 20 2c 69 29 29 0a 20 20 20 20 20 20 20 .(setq.it.,i.,i.(1+.,i))........
2580 20 20 2c 40 62 6f 64 79 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 64 6f 74 69 6d 65 73 20 28 6e ..,@body))))..(defun.-dotimes.(n
25a0 75 6d 20 66 6e 29 0a 20 20 22 43 61 6c 6c 20 46 4e 20 4e 55 4d 20 74 69 6d 65 73 2c 20 70 72 65 um.fn)..."Call.FN.NUM.times,.pre
25c0 73 75 6d 61 62 6c 79 20 66 6f 72 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 46 4e 20 69 73 20 sumably.for.side.effects..FN.is.
25e0 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d 65 6e 74 20 6f 6e called.with.a.single.argument.on
2600 20 73 75 63 63 65 73 73 69 76 65 20 69 6e 74 65 67 65 72 73 0a 72 75 6e 6e 69 6e 67 20 66 72 6f .successive.integers.running.fro
2620 6d 20 30 2c 20 69 6e 63 6c 75 73 69 76 65 2c 20 74 6f 20 4e 55 4d 2c 20 65 78 63 6c 75 73 69 76 m.0,.inclusive,.to.NUM,.exclusiv
2640 65 2e 20 20 46 4e 20 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 0a 69 66 20 4e 55 4d 20 69 73 20 6c e...FN.is.not.called.if.NUM.is.l
2660 65 73 73 20 74 68 61 6e 20 31 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 ess.than.1...This.function's.ana
2680 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 64 6f 74 69 6d 65 73 phoric.counterpart.is.`--dotimes
26a0 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 2d 2d '."...(declare.(indent.1))...(--
26c0 64 6f 74 69 6d 65 73 20 6e 75 6d 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 29 29 0a 0a 28 dotimes.num.(funcall.fn.it)))..(
26e0 64 65 66 75 6e 20 2d 6d 61 70 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 41 70 70 6c 79 20 46 4e defun.-map.(fn.list)..."Apply.FN
2700 20 74 6f 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 61 6e 64 20 72 65 74 75 72 6e .to.each.item.in.LIST.and.return
2720 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 .the.list.of.results...This.func
2740 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 tion's.anaphoric.counterpart.is.
2760 60 2d 2d 6d 61 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d `--map'."...(declare.(important-
2780 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6d 61 70 63 61 72 20 66 6e 20 6c 69 return-value.t))...(mapcar.fn.li
27a0 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 6d 61 70 20 28 66 6f 72 6d 20 6c 69 73 74 st))..(defmacro.--map.(form.list
27c0 29 0a 20 20 22 45 76 61 6c 20 46 4f 52 4d 20 66 6f 72 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 )..."Eval.FORM.for.each.item.in.
27e0 4c 49 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 65 73 75 LIST.and.return.the.list.of.resu
2800 6c 74 73 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 lts..Each.element.of.LIST.in.tur
2820 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 n.is.bound.to.`it'.before.evalua
2840 74 69 6e 67 0a 46 4f 52 4d 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 ting.FORM..This.is.the.anaphoric
2860 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 6d 61 70 27 2e 22 0a 20 20 28 64 65 63 6c .counterpart.to.`-map'."...(decl
2880 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 are.(debug.(def-form.form)))...`
28a0 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 (mapcar.(lambda.(it).(ignore.it)
28c0 20 2c 66 6f 72 6d 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 64 .,form).,list))..(defmacro.--red
28e0 75 63 65 2d 66 72 6f 6d 20 28 66 6f 72 6d 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 41 63 63 uce-from.(form.init.list)..."Acc
2900 75 6d 75 6c 61 74 65 20 61 20 76 61 6c 75 65 20 62 79 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f umulate.a.value.by.evaluating.FO
2920 52 4d 20 61 63 72 6f 73 73 20 4c 49 53 54 2e 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 6c 69 RM.across.LIST..This.macro.is.li
2940 6b 65 20 60 2d 2d 65 61 63 68 27 20 28 77 68 69 63 68 20 73 65 65 29 2c 20 62 75 74 20 69 74 20 ke.`--each'.(which.see),.but.it.
2960 61 64 64 69 74 69 6f 6e 61 6c 6c 79 0a 70 72 6f 76 69 64 65 73 20 61 6e 20 61 63 63 75 6d 75 6c additionally.provides.an.accumul
2980 61 74 6f 72 20 76 61 72 69 61 62 6c 65 20 60 61 63 63 27 20 77 68 69 63 68 20 69 74 20 73 75 63 ator.variable.`acc'.which.it.suc
29a0 63 65 73 73 69 76 65 6c 79 0a 62 69 6e 64 73 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 cessively.binds.to.the.result.of
29c0 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 .evaluating.FORM.for.the.current
29e0 20 4c 49 53 54 0a 65 6c 65 6d 65 6e 74 20 62 65 66 6f 72 65 20 70 72 6f 63 65 73 73 69 6e 67 20 .LIST.element.before.processing.
2a00 74 68 65 20 6e 65 78 74 20 65 6c 65 6d 65 6e 74 2e 20 20 46 6f 72 20 74 68 65 20 66 69 72 73 74 the.next.element...For.the.first
2a20 0a 65 6c 65 6d 65 6e 74 2c 20 60 61 63 63 27 20 69 73 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 77 .element,.`acc'.is.initialized.w
2a40 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 65 76 61 6c 75 61 74 69 6e 67 20 49 4e 49 ith.the.result.of.evaluating.INI
2a60 54 2e 0a 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 72 65 73 75 6c T..The.return.value.is.the.resul
2a80 74 69 6e 67 20 76 61 6c 75 65 20 6f 66 20 60 61 63 63 27 2e 20 20 49 66 20 4c 49 53 54 20 69 73 ting.value.of.`acc'...If.LIST.is
2aa0 0a 65 6d 70 74 79 2c 20 46 4f 52 4d 20 69 73 20 6e 6f 74 20 65 76 61 6c 75 61 74 65 64 2c 20 61 .empty,.FORM.is.not.evaluated,.a
2ac0 6e 64 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 72 65 73 75 6c nd.the.return.value.is.the.resul
2ae0 74 0a 6f 66 20 49 4e 49 54 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 t.of.INIT..This.is.the.anaphoric
2b00 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 72 65 64 75 63 65 2d 66 72 6f 6d 27 2e 22 .counterpart.to.`-reduce-from'."
2b20 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 66 6f ...(declare.(debug.(form.form.fo
2b40 72 6d 29 29 29 0a 20 20 60 28 6c 65 74 20 28 28 61 63 63 20 2c 69 6e 69 74 29 29 0a 20 20 20 20 rm)))...`(let.((acc.,init)).....
2b60 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 20 28 73 65 74 71 20 61 63 63 20 2c 66 6f 72 6d 29 29 .(--each.,list.(setq.acc.,form))
2b80 0a 20 20 20 20 20 61 63 63 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 65 2d 66 72 6f 6d ......acc))..(defun.-reduce-from
2ba0 20 28 66 6e 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 52 65 64 75 63 65 20 74 68 65 20 66 75 .(fn.init.list)..."Reduce.the.fu
2bc0 6e 63 74 69 6f 6e 20 46 4e 20 61 63 72 6f 73 73 20 4c 49 53 54 2c 20 73 74 61 72 74 69 6e 67 20 nction.FN.across.LIST,.starting.
2be0 77 69 74 68 20 49 4e 49 54 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 with.INIT..Return.the.result.of.
2c00 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 49 4e 49 54 20 61 6e 64 20 74 68 65 20 66 69 72 73 applying.FN.to.INIT.and.the.firs
2c20 74 20 65 6c 65 6d 65 6e 74 20 6f 66 0a 4c 49 53 54 2c 20 74 68 65 6e 20 61 70 70 6c 79 69 6e 67 t.element.of.LIST,.then.applying
2c40 20 46 4e 20 74 6f 20 74 68 61 74 20 72 65 73 75 6c 74 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e .FN.to.that.result.and.the.secon
2c60 64 20 65 6c 65 6d 65 6e 74 2c 0a 65 74 63 2e 20 20 49 66 20 4c 49 53 54 20 69 73 20 65 6d 70 74 d.element,.etc...If.LIST.is.empt
2c80 79 2c 20 72 65 74 75 72 6e 20 49 4e 49 54 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 20 46 y,.return.INIT.without.calling.F
2ca0 4e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f N...This.function's.anaphoric.co
2cc0 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 72 65 64 75 63 65 2d 66 72 6f 6d 27 2e 0a 0a 46 unterpart.is.`--reduce-from'...F
2ce0 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 75 63 or.other.folds,.see.also.`-reduc
2d00 65 27 20 61 6e 64 20 60 2d 72 65 64 75 63 65 2d 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 e'.and.`-reduce-r'."...(declare.
2d20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d (important-return-value.t))...(-
2d40 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 61 63 63 20 69 74 29 -reduce-from.(funcall.fn.acc.it)
2d60 20 69 6e 69 74 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 64 75 63 65 .init.list))..(defmacro.--reduce
2d80 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 63 63 75 6d 75 6c 61 74 65 20 61 20 76 61 6c .(form.list)..."Accumulate.a.val
2da0 75 65 20 62 79 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 20 61 63 72 6f 73 73 20 4c 49 53 ue.by.evaluating.FORM.across.LIS
2dc0 54 2e 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 6c 69 6b 65 20 60 2d 2d 72 65 64 75 63 65 2d T..This.macro.is.like.`--reduce-
2de0 66 72 6f 6d 27 20 28 77 68 69 63 68 20 73 65 65 29 2c 20 65 78 63 65 70 74 20 74 68 65 20 66 69 from'.(which.see),.except.the.fi
2e00 72 73 74 0a 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 73 20 74 61 6b 65 6e 20 61 73 20 rst.element.of.LIST.is.taken.as.
2e20 49 4e 49 54 2e 20 20 54 68 75 73 20 69 66 20 4c 49 53 54 20 63 6f 6e 74 61 69 6e 73 20 61 20 73 INIT...Thus.if.LIST.contains.a.s
2e40 69 6e 67 6c 65 0a 69 74 65 6d 2c 20 69 74 20 69 73 20 72 65 74 75 72 6e 65 64 20 77 69 74 68 6f ingle.item,.it.is.returned.witho
2e60 75 74 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 20 20 49 66 20 4c 49 53 54 20 69 73 20 ut.evaluating.FORM...If.LIST.is.
2e80 65 6d 70 74 79 2c 0a 46 4f 52 4d 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 77 69 74 68 20 60 69 empty,.FORM.is.evaluated.with.`i
2ea0 74 27 20 61 6e 64 20 60 61 63 63 27 20 62 6f 75 6e 64 20 74 6f 20 6e 69 6c 2e 0a 54 68 69 73 20 t'.and.`acc'.bound.to.nil..This.
2ec0 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 is.the.anaphoric.counterpart.to.
2ee0 60 2d 72 65 64 75 63 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 `-reduce'."...(declare.(debug.(f
2f00 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 6c 76 20 28 6d 61 6b 65 2d 73 79 orm.form)))...(let.((lv.(make-sy
2f20 6d 62 6f 6c 20 22 6c 69 73 74 2d 76 61 6c 75 65 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 mbol."list-value"))).....`(let.(
2f40 28 2c 6c 76 20 2c 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 28 69 66 20 2c 6c 76 0a 20 20 20 20 (,lv.,list))........(if.,lv.....
2f60 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 2c 66 6f 72 6d 20 28 63 61 72 .......(--reduce-from.,form.(car
2f80 20 2c 6c 76 29 20 28 63 64 72 20 2c 6c 76 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 70 .,lv).(cdr.,lv))..........;;.Exp
2fa0 6c 69 63 69 74 20 6e 69 6c 20 62 69 6e 64 69 6e 67 20 70 61 63 69 66 69 65 73 20 6c 65 78 69 63 licit.nil.binding.pacifies.lexic
2fc0 61 6c 20 22 76 61 72 69 61 62 6c 65 20 6c 65 66 74 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 22 al."variable.left.uninitialized"
2fe0 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 77 61 72 6e 69 6e 67 2e 20 20 53 65 65 20 69 73 73 75 65 ..........;;.warning...See.issue
3000 20 23 33 37 37 20 61 6e 64 20 75 70 73 74 72 65 61 6d 20 68 74 74 70 73 3a 2f 2f 62 75 67 73 2e .#377.and.upstream.https://bugs.
3020 67 6e 75 2e 6f 72 67 2f 34 37 30 38 30 2e 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 gnu.org/47080...........(let.((a
3040 63 63 20 6e 69 6c 29 20 28 69 74 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 67 cc.nil).(it.nil))............(ig
3060 6e 6f 72 65 20 61 63 63 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 2c 66 6f 72 6d 29 29 29 nore.acc.it)............,form)))
3080 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 65 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 ))..(defun.-reduce.(fn.list)..."
30a0 52 65 64 75 63 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 61 63 72 6f 73 73 20 4c 49 Reduce.the.function.FN.across.LI
30c0 53 54 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 70 70 6c 79 69 6e ST..Return.the.result.of.applyin
30e0 67 20 46 4e 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 74 77 6f 20 65 6c 65 6d 65 6e 74 73 20 6f g.FN.to.the.first.two.elements.o
3100 66 0a 4c 49 53 54 2c 20 74 68 65 6e 20 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 61 74 f.LIST,.then.applying.FN.to.that
3120 20 72 65 73 75 6c 74 20 61 6e 64 20 74 68 65 20 74 68 69 72 64 20 65 6c 65 6d 65 6e 74 2c 20 65 .result.and.the.third.element,.e
3140 74 63 2e 0a 49 66 20 4c 49 53 54 20 63 6f 6e 74 61 69 6e 73 20 61 20 73 69 6e 67 6c 65 20 65 6c tc..If.LIST.contains.a.single.el
3160 65 6d 65 6e 74 2c 20 72 65 74 75 72 6e 20 69 74 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 ement,.return.it.without.calling
3180 20 46 4e 2e 0a 49 66 20 4c 49 53 54 20 69 73 20 65 6d 70 74 79 2c 20 72 65 74 75 72 6e 20 74 68 .FN..If.LIST.is.empty,.return.th
31a0 65 20 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 46 4e 20 77 69 74 68 20 6e 6f 0a 61 e.result.of.calling.FN.with.no.a
31c0 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 rguments...This.function's.anaph
31e0 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 72 65 64 75 63 65 27 2e 0a oric.counterpart.is.`--reduce'..
3200 0a 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 .For.other.folds,.see.also.`-red
3220 75 63 65 2d 66 72 6f 6d 27 20 61 6e 64 20 60 2d 72 65 64 75 63 65 2d 72 27 2e 22 0a 20 20 28 64 uce-from'.and.`-reduce-r'."...(d
3240 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 eclare.(important-return-value.t
3260 29 29 0a 20 20 28 69 66 20 6c 69 73 74 0a 20 20 20 20 20 20 28 2d 72 65 64 75 63 65 2d 66 72 6f ))...(if.list.......(-reduce-fro
3280 6d 20 66 6e 20 28 63 61 72 20 6c 69 73 74 29 20 28 63 64 72 20 6c 69 73 74 29 29 0a 20 20 20 20 m.fn.(car.list).(cdr.list)).....
32a0 28 66 75 6e 63 61 6c 6c 20 66 6e 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 64 75 (funcall.fn)))..(defmacro.--redu
32c0 63 65 2d 72 2d 66 72 6f 6d 20 28 66 6f 72 6d 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 41 63 ce-r-from.(form.init.list)..."Ac
32e0 63 75 6d 75 6c 61 74 65 20 61 20 76 61 6c 75 65 20 62 79 20 65 76 61 6c 75 61 74 69 6e 67 20 46 cumulate.a.value.by.evaluating.F
3300 4f 52 4d 20 61 63 72 6f 73 73 20 4c 49 53 54 20 69 6e 20 72 65 76 65 72 73 65 2e 0a 54 68 69 73 ORM.across.LIST.in.reverse..This
3320 20 6d 61 63 72 6f 20 69 73 20 6c 69 6b 65 20 60 2d 2d 72 65 64 75 63 65 2d 66 72 6f 6d 27 2c 20 .macro.is.like.`--reduce-from',.
3340 65 78 63 65 70 74 20 69 74 20 73 74 61 72 74 73 20 66 72 6f 6d 20 74 68 65 20 65 6e 64 0a 6f 66 except.it.starts.from.the.end.of
3360 20 4c 49 53 54 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 .LIST..This.is.the.anaphoric.cou
3380 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 27 2e 22 0a 20 nterpart.to.`-reduce-r-from'."..
33a0 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 6d .(declare.(debug.(form.form.form
33c0 29 29 29 0a 20 20 60 28 6c 65 74 20 28 28 61 63 63 20 2c 69 6e 69 74 29 29 0a 20 20 20 20 20 28 )))...`(let.((acc.,init))......(
33e0 2d 2d 65 61 63 68 2d 72 20 2c 6c 69 73 74 20 28 73 65 74 71 20 61 63 63 20 2c 66 6f 72 6d 29 29 --each-r.,list.(setq.acc.,form))
3400 0a 20 20 20 20 20 61 63 63 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 65 2d 72 2d 66 72 ......acc))..(defun.-reduce-r-fr
3420 6f 6d 20 28 66 6e 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 52 65 64 75 63 65 20 74 68 65 20 om.(fn.init.list)..."Reduce.the.
3440 66 75 6e 63 74 69 6f 6e 20 46 4e 20 61 63 72 6f 73 73 20 4c 49 53 54 20 69 6e 20 72 65 76 65 72 function.FN.across.LIST.in.rever
3460 73 65 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 49 4e 49 54 2e 0a 52 65 74 75 72 6e 20 74 se,.starting.with.INIT..Return.t
3480 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 65 20 he.result.of.applying.FN.to.the.
34a0 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 61 6e 64 0a 49 4e 49 54 2c 20 74 last.element.of.LIST.and.INIT,.t
34c0 68 65 6e 20 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 2d 74 6f hen.applying.FN.to.the.second-to
34e0 2d 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 61 6e 64 20 74 68 65 0a 70 72 65 76 69 6f 75 73 20 72 -last.element.and.the.previous.r
3500 65 73 75 6c 74 20 6f 66 20 46 4e 2c 20 65 74 63 2e 20 20 54 68 61 74 20 69 73 2c 20 74 68 65 20 esult.of.FN,.etc...That.is,.the.
3520 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 46 4e 20 69 73 0a 74 68 65 20 63 75 72 72 first.argument.of.FN.is.the.curr
3540 65 6e 74 20 65 6c 65 6d 65 6e 74 2c 20 61 6e 64 20 69 74 73 20 73 65 63 6f 6e 64 20 61 72 67 75 ent.element,.and.its.second.argu
3560 6d 65 6e 74 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 0a 76 61 6c 75 65 2e 20 20 49 66 20 ment.the.accumulated.value...If.
3580 4c 49 53 54 20 69 73 20 65 6d 70 74 79 2c 20 72 65 74 75 72 6e 20 49 4e 49 54 20 77 69 74 68 6f LIST.is.empty,.return.INIT.witho
35a0 75 74 20 63 61 6c 6c 69 6e 67 20 46 4e 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 ut.calling.FN...This.function.is
35c0 20 6c 69 6b 65 20 60 2d 72 65 64 75 63 65 2d 66 72 6f 6d 27 20 62 75 74 20 74 68 65 20 6f 70 65 .like.`-reduce-from'.but.the.ope
35e0 72 61 74 69 6f 6e 20 61 73 73 6f 63 69 61 74 65 73 0a 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 ration.associates.from.the.right
3600 20 72 61 74 68 65 72 20 74 68 61 6e 20 6c 65 66 74 2e 20 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 .rather.than.left...In.other.wor
3620 64 73 2c 20 69 74 20 73 74 61 72 74 73 20 66 72 6f 6d 0a 74 68 65 20 65 6e 64 20 6f 66 20 4c 49 ds,.it.starts.from.the.end.of.LI
3640 53 54 20 61 6e 64 20 66 6c 69 70 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 46 4e ST.and.flips.the.arguments.to.FN
3660 2e 20 20 43 6f 6e 63 65 70 74 75 61 6c 6c 79 2c 20 69 74 0a 69 73 20 6c 69 6b 65 20 72 65 70 6c ...Conceptually,.it.is.like.repl
3680 61 63 69 6e 67 20 74 68 65 20 63 6f 6e 73 65 73 20 69 6e 20 4c 49 53 54 20 77 69 74 68 20 61 70 acing.the.conses.in.LIST.with.ap
36a0 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 46 4e 2c 20 61 6e 64 0a 69 74 73 20 6c 61 73 74 20 6c plications.of.FN,.and.its.last.l
36c0 69 6e 6b 20 77 69 74 68 20 49 4e 49 54 2c 20 61 6e 64 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 ink.with.INIT,.and.evaluating.th
36e0 65 20 72 65 73 75 6c 74 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 0a 54 68 69 73 20 66 75 e.resulting.expression...This.fu
3700 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 nction's.anaphoric.counterpart.i
3720 73 20 60 2d 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 27 2e 0a 0a 46 6f 72 20 6f 74 68 65 72 20 s.`--reduce-r-from'...For.other.
3740 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 75 63 65 2d 72 27 20 61 6e 64 20 folds,.see.also.`-reduce-r'.and.
3760 60 2d 72 65 64 75 63 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e `-reduce'."...(declare.(importan
3780 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 72 65 64 75 63 65 2d 72 t-return-value.t))...(--reduce-r
37a0 2d 66 72 6f 6d 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 20 61 63 63 29 20 69 6e 69 74 20 6c -from.(funcall.fn.it.acc).init.l
37c0 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 64 75 63 65 2d 72 20 28 66 6f 72 ist))..(defmacro.--reduce-r.(for
37e0 6d 20 6c 69 73 74 29 0a 20 20 22 41 63 63 75 6d 75 6c 61 74 65 20 61 20 76 61 6c 75 65 20 62 79 m.list)..."Accumulate.a.value.by
3800 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 20 61 63 72 6f 73 73 20 4c 49 53 54 20 69 6e 20 .evaluating.FORM.across.LIST.in.
3820 72 65 76 65 72 73 65 20 6f 72 64 65 72 2e 0a 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 6c 69 6b reverse.order..This.macro.is.lik
3840 65 20 60 2d 2d 72 65 64 75 63 65 27 2c 20 65 78 63 65 70 74 20 69 74 20 73 74 61 72 74 73 20 66 e.`--reduce',.except.it.starts.f
3860 72 6f 6d 20 74 68 65 20 65 6e 64 20 6f 66 0a 4c 49 53 54 2e 0a 54 68 69 73 20 69 73 20 74 68 65 rom.the.end.of.LIST..This.is.the
3880 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 72 65 64 75 .anaphoric.counterpart.to.`-redu
38a0 63 65 2d 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 ce-r'."...(declare.(debug.(form.
38c0 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 2d 72 65 64 75 63 65 20 2c 66 6f 72 6d 20 28 72 65 76 65 form)))...`(--reduce.,form.(reve
38e0 72 73 65 20 2c 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 65 2d 72 20 28 rse.,list)))..(defun.-reduce-r.(
3900 66 6e 20 6c 69 73 74 29 0a 20 20 22 52 65 64 75 63 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 fn.list)..."Reduce.the.function.
3920 46 4e 20 61 63 72 6f 73 73 20 4c 49 53 54 20 69 6e 20 72 65 76 65 72 73 65 2e 0a 52 65 74 75 72 FN.across.LIST.in.reverse..Retur
3940 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 n.the.result.of.applying.FN.to.t
3960 68 65 20 6c 61 73 74 20 74 77 6f 20 65 6c 65 6d 65 6e 74 73 20 6f 66 0a 4c 49 53 54 2c 20 74 68 he.last.two.elements.of.LIST,.th
3980 65 6e 20 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 65 20 74 68 69 72 64 2d 74 6f 2d 6c en.applying.FN.to.the.third-to-l
39a0 61 73 74 20 65 6c 65 6d 65 6e 74 20 61 6e 64 20 74 68 65 0a 70 72 65 76 69 6f 75 73 20 72 65 73 ast.element.and.the.previous.res
39c0 75 6c 74 20 6f 66 20 46 4e 2c 20 65 74 63 2e 20 20 54 68 61 74 20 69 73 2c 20 74 68 65 20 66 69 ult.of.FN,.etc...That.is,.the.fi
39e0 72 73 74 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 46 4e 20 69 73 0a 74 68 65 20 63 75 72 72 65 6e rst.argument.of.FN.is.the.curren
3a00 74 20 65 6c 65 6d 65 6e 74 2c 20 61 6e 64 20 69 74 73 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 t.element,.and.its.second.argume
3a20 6e 74 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 0a 76 61 6c 75 65 2e 20 20 49 66 20 4c 49 nt.the.accumulated.value...If.LI
3a40 53 54 20 63 6f 6e 74 61 69 6e 73 20 61 20 73 69 6e 67 6c 65 20 65 6c 65 6d 65 6e 74 2c 20 72 65 ST.contains.a.single.element,.re
3a60 74 75 72 6e 20 69 74 20 77 69 74 68 6f 75 74 0a 63 61 6c 6c 69 6e 67 20 46 4e 2e 20 20 49 66 20 turn.it.without.calling.FN...If.
3a80 4c 49 53 54 20 69 73 20 65 6d 70 74 79 2c 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 LIST.is.empty,.return.the.result
3aa0 20 6f 66 20 63 61 6c 6c 69 6e 67 20 46 4e 0a 77 69 74 68 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 .of.calling.FN.with.no.arguments
3ac0 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6c 69 6b 65 20 60 2d 72 65 64 75 63 ...This.function.is.like.`-reduc
3ae0 65 27 20 62 75 74 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 61 73 73 6f 63 69 61 74 65 73 20 e'.but.the.operation.associates.
3b00 66 72 6f 6d 0a 74 68 65 20 72 69 67 68 74 20 72 61 74 68 65 72 20 74 68 61 6e 20 6c 65 66 74 2e from.the.right.rather.than.left.
3b20 20 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 69 74 20 73 74 61 72 74 73 20 66 72 6f 6d ..In.other.words,.it.starts.from
3b40 20 74 68 65 0a 65 6e 64 20 6f 66 20 4c 49 53 54 20 61 6e 64 20 66 6c 69 70 73 20 74 68 65 20 61 .the.end.of.LIST.and.flips.the.a
3b60 72 67 75 6d 65 6e 74 73 20 74 6f 20 46 4e 2e 20 20 43 6f 6e 63 65 70 74 75 61 6c 6c 79 2c 20 69 rguments.to.FN...Conceptually,.i
3b80 74 20 69 73 0a 6c 69 6b 65 20 72 65 70 6c 61 63 69 6e 67 20 74 68 65 20 63 6f 6e 73 65 73 20 69 t.is.like.replacing.the.conses.i
3ba0 6e 20 4c 49 53 54 20 77 69 74 68 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 46 4e 2c 0a n.LIST.with.applications.of.FN,.
3bc0 69 67 6e 6f 72 69 6e 67 20 69 74 73 20 6c 61 73 74 20 6c 69 6e 6b 2c 20 61 6e 64 20 65 76 61 6c ignoring.its.last.link,.and.eval
3be0 75 61 74 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e uating.the.resulting.expression.
3c00 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e ..This.function's.anaphoric.coun
3c20 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 72 65 64 75 63 65 2d 72 27 2e 0a 0a 46 6f 72 20 6f 74 terpart.is.`--reduce-r'...For.ot
3c40 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 75 63 65 2d 72 2d 66 her.folds,.see.also.`-reduce-r-f
3c60 72 6f 6d 27 20 61 6e 64 20 60 2d 72 65 64 75 63 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 rom'.and.`-reduce'."...(declare.
3c80 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 69 (important-return-value.t))...(i
3ca0 66 20 6c 69 73 74 0a 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 72 20 28 66 75 6e 63 61 6c f.list.......(--reduce-r.(funcal
3cc0 6c 20 66 6e 20 69 74 20 61 63 63 29 20 6c 69 73 74 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 l.fn.it.acc).list).....(funcall.
3ce0 66 6e 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 66 72 fn)))..(defmacro.--reductions-fr
3d00 6f 6d 20 28 66 6f 72 6d 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 om.(form.init.list)..."Return.a.
3d20 6c 69 73 74 20 6f 66 20 46 4f 52 4d 27 73 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 64 75 list.of.FORM's.intermediate.redu
3d40 63 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 73 2c 20 61 20 6c ctions.across.LIST..That.is,.a.l
3d60 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 20 6f ist.of.the.intermediate.values.o
3d80 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0a 77 68 65 6e 20 60 2d 2d 72 65 64 75 63 65 f.the.accumulator.when.`--reduce
3da0 2d 66 72 6f 6d 27 20 28 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 -from'.(which.see).is.called.wit
3dc0 68 20 74 68 65 20 73 61 6d 65 0a 61 72 67 75 6d 65 6e 74 73 2e 0a 54 68 69 73 20 69 73 20 74 68 h.the.same.arguments..This.is.th
3de0 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 72 65 64 e.anaphoric.counterpart.to.`-red
3e00 75 63 74 69 6f 6e 73 2d 66 72 6f 6d 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 uctions-from'."...(declare.(debu
3e20 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 6e 72 65 76 65 72 73 g.(form.form.form)))...`(nrevers
3e40 65 0a 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 63 6f 6e 73 20 28 6c 65 74 20 e.....(--reduce-from.(cons.(let.
3e60 28 28 61 63 63 20 28 63 61 72 20 61 63 63 29 29 29 20 28 69 67 6e 6f 72 65 20 61 63 63 29 20 2c ((acc.(car.acc))).(ignore.acc).,
3e80 66 6f 72 6d 29 20 61 63 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c form).acc)....................(l
3ea0 69 73 74 20 2c 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 6c ist.,init)....................,l
3ec0 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 66 72 6f 6d 20 ist)))..(defun.-reductions-from.
3ee0 28 66 6e 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 (fn.init.list)..."Return.a.list.
3f00 6f 66 20 46 4e 27 73 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 20 of.FN's.intermediate.reductions.
3f20 61 63 72 6f 73 73 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 73 2c 20 61 20 6c 69 73 74 20 6f 66 20 across.LIST..That.is,.a.list.of.
3f40 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 61 the.intermediate.values.of.the.a
3f60 63 63 75 6d 75 6c 61 74 6f 72 0a 77 68 65 6e 20 60 2d 72 65 64 75 63 65 2d 66 72 6f 6d 27 20 28 ccumulator.when.`-reduce-from'.(
3f80 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 61 which.see).is.called.with.the.sa
3fa0 6d 65 0a 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 me.arguments...This.function's.a
3fc0 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 72 65 64 75 63 naphoric.counterpart.is.`--reduc
3fe0 74 69 6f 6e 73 2d 66 72 6f 6d 27 2e 0a 0a 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 tions-from'...For.other.folds,.s
4000 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 75 63 74 69 6f 6e 73 27 20 61 6e 64 20 60 2d 72 65 64 75 ee.also.`-reductions'.and.`-redu
4020 63 74 69 6f 6e 73 2d 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e ctions-r'."...(declare.(importan
4040 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 72 65 64 75 63 74 69 6f t-return-value.t))...(--reductio
4060 6e 73 2d 66 72 6f 6d 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 61 63 63 20 69 74 29 20 69 6e 69 74 ns-from.(funcall.fn.acc.it).init
4080 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 64 75 63 74 69 6f 6e 73 20 .list))..(defmacro.--reductions.
40a0 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 (form.list)..."Return.a.list.of.
40c0 46 4f 52 4d 27 73 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 20 61 FORM's.intermediate.reductions.a
40e0 63 72 6f 73 73 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 73 2c 20 61 20 6c 69 73 74 20 6f 66 20 74 cross.LIST..That.is,.a.list.of.t
4100 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 61 63 he.intermediate.values.of.the.ac
4120 63 75 6d 75 6c 61 74 6f 72 0a 77 68 65 6e 20 60 2d 2d 72 65 64 75 63 65 27 20 28 77 68 69 63 68 cumulator.when.`--reduce'.(which
4140 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 61 72 .see).is.called.with.the.same.ar
4160 67 75 6d 65 6e 74 73 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 guments..This.is.the.anaphoric.c
4180 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 72 65 64 75 63 74 69 6f 6e 73 27 2e 22 0a 20 20 ounterpart.to.`-reductions'."...
41a0 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 (declare.(debug.(form.form)))...
41c0 28 6c 65 74 20 28 28 6c 76 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 73 74 2d 76 61 6c (let.((lv.(make-symbol."list-val
41e0 75 65 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 6c 76 20 2c 6c 69 73 74 29 29 0a 20 ue"))).....`(let.((,lv.,list))..
4200 20 20 20 20 20 20 28 69 66 20 2c 6c 76 0a 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 ......(if.,lv............(--redu
4220 63 74 69 6f 6e 73 2d 66 72 6f 6d 20 2c 66 6f 72 6d 20 28 63 61 72 20 2c 6c 76 29 20 28 63 64 72 ctions-from.,form.(car.,lv).(cdr
4240 20 2c 6c 76 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 70 6c 69 63 69 74 20 6e 69 6c 20 .,lv))..........;;.Explicit.nil.
4260 62 69 6e 64 69 6e 67 20 70 61 63 69 66 69 65 73 20 6c 65 78 69 63 61 6c 20 22 76 61 72 69 61 62 binding.pacifies.lexical."variab
4280 6c 65 20 6c 65 66 74 20 75 6e 69 6e 69 74 69 61 6c 69 7a 65 64 22 0a 20 20 20 20 20 20 20 20 20 le.left.uninitialized"..........
42a0 3b 3b 20 77 61 72 6e 69 6e 67 2e 20 20 53 65 65 20 69 73 73 75 65 20 23 33 37 37 20 61 6e 64 20 ;;.warning...See.issue.#377.and.
42c0 75 70 73 74 72 65 61 6d 20 68 74 74 70 73 3a 2f 2f 62 75 67 73 2e 67 6e 75 2e 6f 72 67 2f 34 37 upstream.https://bugs.gnu.org/47
42e0 30 38 30 2e 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 20 6e 69 6c 29 20 28 69 080...........(let.((acc.nil).(i
4300 74 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 61 63 63 20 69 t.nil))............(ignore.acc.i
4320 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 2c 66 6f 72 6d 29 29 29 29 29 29 0a t)............(list.,form)))))).
4340 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 74 69 6f 6e 73 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 .(defun.-reductions.(fn.list)...
4360 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 46 4e 27 73 20 69 6e 74 65 72 6d 65 64 69 "Return.a.list.of.FN's.intermedi
4380 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 4c 49 53 54 2e 0a 54 68 61 74 ate.reductions.across.LIST..That
43a0 20 69 73 2c 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 .is,.a.list.of.the.intermediate.
43c0 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0a 77 68 65 6e 20 60 values.of.the.accumulator.when.`
43e0 2d 72 65 64 75 63 65 27 20 28 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 -reduce'.(which.see).is.called.w
4400 69 74 68 20 74 68 65 20 73 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 69 73 20 66 75 ith.the.same.arguments...This.fu
4420 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 nction's.anaphoric.counterpart.i
4440 73 20 60 2d 2d 72 65 64 75 63 74 69 6f 6e 73 27 2e 0a 0a 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c s.`--reductions'...For.other.fol
4460 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 75 63 74 69 6f 6e 73 27 20 61 6e 64 20 60 ds,.see.also.`-reductions'.and.`
4480 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 -reductions-r'."...(declare.(imp
44a0 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 69 66 20 6c 69 ortant-return-value.t))...(if.li
44c0 73 74 0a 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 66 72 6f 6d 20 28 66 75 6e st.......(--reductions-from.(fun
44e0 63 61 6c 6c 20 66 6e 20 61 63 63 20 69 74 29 20 28 63 61 72 20 6c 69 73 74 29 20 28 63 64 72 20 call.fn.acc.it).(car.list).(cdr.
4500 6c 69 73 74 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 66 75 6e 63 61 6c 6c 20 66 6e 29 29 29 29 list)).....(list.(funcall.fn))))
4520 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 20 ..(defmacro.--reductions-r-from.
4540 28 66 6f 72 6d 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 (form.init.list)..."Return.a.lis
4560 74 20 6f 66 20 46 4f 52 4d 27 73 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 64 75 63 74 69 t.of.FORM's.intermediate.reducti
4580 6f 6e 73 20 61 63 72 6f 73 73 20 72 65 76 65 72 73 65 64 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 ons.across.reversed.LIST..That.i
45a0 73 2c 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 s,.a.list.of.the.intermediate.va
45c0 6c 75 65 73 20 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0a 77 68 65 6e 20 60 2d 2d lues.of.the.accumulator.when.`--
45e0 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 27 20 28 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 reduce-r-from'.(which.see).is.ca
4600 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 0a 61 72 67 75 6d 65 6e 74 73 2e 0a 54 68 lled.with.the.same.arguments..Th
4620 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 is.is.the.anaphoric.counterpart.
4640 74 6f 20 60 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 27 2e 22 0a 20 20 28 64 65 63 to.`-reductions-r-from'."...(dec
4660 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 lare.(debug.(form.form.form)))..
4680 20 60 28 2d 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 20 28 63 6f 6e 73 20 28 6c 65 74 20 28 28 .`(--reduce-r-from.(cons.(let.((
46a0 61 63 63 20 28 63 61 72 20 61 63 63 29 29 29 20 28 69 67 6e 6f 72 65 20 61 63 63 29 20 2c 66 6f acc.(car.acc))).(ignore.acc).,fo
46c0 72 6d 29 20 61 63 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 rm).acc).....................(li
46e0 73 74 20 2c 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 6c st.,init).....................,l
4700 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d ist))..(defun.-reductions-r-from
4720 20 28 66 6e 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 .(fn.init.list)..."Return.a.list
4740 20 6f 66 20 46 4e 27 73 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 .of.FN's.intermediate.reductions
4760 20 61 63 72 6f 73 73 20 72 65 76 65 72 73 65 64 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 73 2c 20 .across.reversed.LIST..That.is,.
4780 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 a.list.of.the.intermediate.value
47a0 73 20 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0a 77 68 65 6e 20 60 2d 72 65 64 75 s.of.the.accumulator.when.`-redu
47c0 63 65 2d 72 2d 66 72 6f 6d 27 20 28 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 ce-r-from'.(which.see).is.called
47e0 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 0a 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 69 73 20 .with.the.same.arguments...This.
4800 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 function's.anaphoric.counterpart
4820 20 69 73 20 60 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 27 2e 0a 0a 46 6f 72 20 .is.`--reductions-r-from'...For.
4840 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 75 63 74 69 6f other.folds,.see.also.`-reductio
4860 6e 73 27 20 61 6e 64 20 60 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 27 2e 22 0a 20 20 28 64 65 63 ns'.and.`-reductions-r'."...(dec
4880 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 lare.(important-return-value.t))
48a0 0a 20 20 28 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 20 28 66 75 6e 63 61 6c 6c ...(--reductions-r-from.(funcall
48c0 20 66 6e 20 69 74 20 61 63 63 29 20 69 6e 69 74 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 .fn.it.acc).init.list))..(defmac
48e0 72 6f 20 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 ro.--reductions-r.(form.list)...
4900 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 46 4f 52 4d 27 73 20 69 6e 74 65 72 6d 65 "Return.a.list.of.FORM's.interme
4920 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 72 65 76 65 72 73 65 64 diate.reductions.across.reversed
4940 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 73 2c 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 6e .LIST..That.is,.a.list.of.the.in
4960 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c termediate.values.of.the.accumul
4980 61 74 6f 72 0a 77 68 65 6e 20 60 2d 2d 72 65 64 75 63 65 2d 72 65 27 20 28 77 68 69 63 68 20 73 ator.when.`--reduce-re'.(which.s
49a0 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 61 72 67 75 ee).is.called.with.the.same.argu
49c0 6d 65 6e 74 73 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 ments..This.is.the.anaphoric.cou
49e0 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 27 2e 22 0a 20 20 nterpart.to.`-reductions-r'."...
4a00 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 6c 69 73 74 29 29 29 0a 20 20 (declare.(debug.(form.list)))...
4a20 28 6c 65 74 20 28 28 6c 76 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 73 74 2d 76 61 6c (let.((lv.(make-symbol."list-val
4a40 75 65 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 6c 76 20 28 72 65 76 65 72 73 65 20 ue"))).....`(let.((,lv.(reverse.
4a60 2c 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 28 69 66 20 2c 6c 76 0a 20 20 20 20 20 20 20 20 ,list)))........(if.,lv.........
4a80 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 63 6f 6e 73 20 28 6c 65 74 20 28 28 61 ...(--reduce-from.(cons.(let.((a
4aa0 63 63 20 28 63 61 72 20 61 63 63 29 29 29 20 28 69 67 6e 6f 72 65 20 61 63 63 29 20 2c 66 6f 72 cc.(car.acc))).(ignore.acc).,for
4ac0 6d 29 20 61 63 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m).acc).........................
4ae0 20 20 28 6c 69 73 74 20 28 63 61 72 20 2c 6c 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(list.(car.,lv))..............
4b00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 2c 6c 76 29 29 0a 20 20 20 20 20 20 20 20 .............(cdr.,lv)).........
4b20 20 3b 3b 20 45 78 70 6c 69 63 69 74 20 6e 69 6c 20 62 69 6e 64 69 6e 67 20 70 61 63 69 66 69 65 .;;.Explicit.nil.binding.pacifie
4b40 73 20 6c 65 78 69 63 61 6c 20 22 76 61 72 69 61 62 6c 65 20 6c 65 66 74 20 75 6e 69 6e 69 74 69 s.lexical."variable.left.uniniti
4b60 61 6c 69 7a 65 64 22 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 77 61 72 6e 69 6e 67 2e 20 20 53 65 alized"..........;;.warning...Se
4b80 65 20 69 73 73 75 65 20 23 33 37 37 20 61 6e 64 20 75 70 73 74 72 65 61 6d 20 68 74 74 70 73 3a e.issue.#377.and.upstream.https:
4ba0 2f 2f 62 75 67 73 2e 67 6e 75 2e 6f 72 67 2f 34 37 30 38 30 2e 0a 20 20 20 20 20 20 20 20 20 28 //bugs.gnu.org/47080...........(
4bc0 6c 65 74 20 28 28 61 63 63 20 6e 69 6c 29 20 28 69 74 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 let.((acc.nil).(it.nil))........
4be0 20 20 20 20 28 69 67 6e 6f 72 65 20 61 63 63 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 ....(ignore.acc.it)............(
4c00 6c 69 73 74 20 2c 66 6f 72 6d 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 64 75 63 74 list.,form))))))..(defun.-reduct
4c20 69 6f 6e 73 2d 72 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 ions-r.(fn.list)..."Return.a.lis
4c40 74 20 6f 66 20 46 4e 27 73 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e t.of.FN's.intermediate.reduction
4c60 73 20 61 63 72 6f 73 73 20 72 65 76 65 72 73 65 64 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 73 2c s.across.reversed.LIST..That.is,
4c80 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 .a.list.of.the.intermediate.valu
4ca0 65 73 20 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0a 77 68 65 6e 20 60 2d 72 65 64 es.of.the.accumulator.when.`-red
4cc0 75 63 65 2d 72 27 20 28 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 uce-r'.(which.see).is.called.wit
4ce0 68 20 74 68 65 20 73 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 h.the.same.arguments...This.func
4d00 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 tion's.anaphoric.counterpart.is.
4d20 60 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 27 2e 0a 0a 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c `--reductions-r'...For.other.fol
4d40 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d ds,.see.also.`-reductions-r-from
4d60 27 20 61 6e 64 0a 60 2d 72 65 64 75 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 '.and.`-reductions'."...(declare
4d80 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 .(important-return-value.t))...(
4da0 69 66 20 6c 69 73 74 0a 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 20 28 66 if.list.......(--reductions-r.(f
4dc0 75 6e 63 61 6c 6c 20 66 6e 20 69 74 20 61 63 63 29 20 6c 69 73 74 29 0a 20 20 20 20 28 6c 69 73 uncall.fn.it.acc).list).....(lis
4de0 74 20 28 66 75 6e 63 61 6c 6c 20 66 6e 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 66 t.(funcall.fn))))..(defmacro.--f
4e00 69 6c 74 65 72 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 ilter.(form.list)..."Return.a.ne
4e20 77 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 20 66 6f 72 20 w.list.of.the.items.in.LIST.for.
4e40 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 which.FORM.evals.to.non-nil..Eac
4e60 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 h.element.of.LIST.in.turn.is.bou
4e80 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 nd.to.`it'.and.its.index.within.
4ea0 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 LIST.to.`it-index'.before.evalua
4ec0 74 69 6e 67 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 ting.FORM..This.is.the.anaphoric
4ee0 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 66 69 6c 74 65 72 27 2e 0a 46 6f 72 20 74 .counterpart.to.`-filter'..For.t
4f00 68 65 20 6f 70 70 6f 73 69 74 65 20 6f 70 65 72 61 74 69 6f 6e 2c 20 73 65 65 20 61 6c 73 6f 20 he.opposite.operation,.see.also.
4f20 60 2d 2d 72 65 6d 6f 76 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 `--remove'."...(declare.(debug.(
4f40 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 20 28 6d 61 6b 65 2d 73 79 form.form)))...(let.((r.(make-sy
4f60 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 2c 72 29 0a mbol."result"))).....`(let.(,r).
4f80 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 20 28 77 68 65 6e 20 2c 66 6f 72 6d .......(--each.,list.(when.,form
4fa0 20 28 70 75 73 68 20 69 74 20 2c 72 29 29 29 0a 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 .(push.it.,r)))........(nreverse
4fc0 20 2c 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 66 69 6c 74 65 72 20 28 70 72 65 64 20 6c 69 .,r))))..(defun.-filter.(pred.li
4fe0 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 20 st)..."Return.a.new.list.of.the.
5000 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 items.in.LIST.for.which.PRED.ret
5020 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 73 65 6c 65 63 74 27 2e urns.non-nil...Alias:.`-select'.
5040 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e ..This.function's.anaphoric.coun
5060 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 66 69 6c 74 65 72 27 2e 0a 0a 46 6f 72 20 73 69 6d 69 terpart.is.`--filter'...For.simi
5080 6c 61 72 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 6b 65 65 70 27 lar.operations,.see.also.`-keep'
50a0 20 61 6e 64 20 60 2d 72 65 6d 6f 76 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 .and.`-remove'."...(declare.(imp
50c0 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 66 69 6c ortant-return-value.t))...(--fil
50e0 74 65 72 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 ter.(funcall.pred.it).list))..(d
5100 65 66 61 6c 69 61 73 20 27 2d 73 65 6c 65 63 74 20 27 2d 66 69 6c 74 65 72 29 0a 28 64 65 66 61 efalias.'-select.'-filter).(defa
5120 6c 69 61 73 20 27 2d 2d 73 65 6c 65 63 74 20 27 2d 2d 66 69 6c 74 65 72 29 0a 0a 28 64 65 66 6d lias.'--select.'--filter)..(defm
5140 61 63 72 6f 20 2d 2d 72 65 6d 6f 76 65 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 acro.--remove.(form.list)..."Ret
5160 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 4c urn.a.new.list.of.the.items.in.L
5180 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 74 6f 20 6e 69 6c 2e IST.for.which.FORM.evals.to.nil.
51a0 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 .Each.element.of.LIST.in.turn.is
51c0 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a 77 69 74 .bound.to.`it'.and.its.index.wit
51e0 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 20 65 76 hin.LIST.to.`it-index'.before.ev
5200 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 aluating.FORM..This.is.the.anaph
5220 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 72 65 6d 6f 76 65 27 2e 0a 46 oric.counterpart.to.`-remove'..F
5240 6f 72 20 74 68 65 20 6f 70 70 6f 73 69 74 65 20 6f 70 65 72 61 74 69 6f 6e 2c 20 73 65 65 20 61 or.the.opposite.operation,.see.a
5260 6c 73 6f 20 60 2d 2d 66 69 6c 74 65 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 lso.`--filter'."...(declare.(deb
5280 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 2d 66 69 6c 74 65 72 20 28 6e ug.(form.form)))...`(--filter.(n
52a0 6f 74 20 2c 66 6f 72 6d 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 6d 6f 76 ot.,form).,list))..(defun.-remov
52c0 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 e.(pred.list)..."Return.a.new.li
52e0 73 74 20 6f 66 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 st.of.the.items.in.LIST.for.whic
5300 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 69 6c 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 72 65 h.PRED.returns.nil...Alias:.`-re
5320 6a 65 63 74 27 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 ject'...This.function's.anaphori
5340 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 72 65 6d 6f 76 65 27 2e 0a 0a 46 6f c.counterpart.is.`--remove'...Fo
5360 72 20 73 69 6d 69 6c 61 72 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 r.similar.operations,.see.also.`
5380 2d 6b 65 65 70 27 20 61 6e 64 20 60 2d 66 69 6c 74 65 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 -keep'.and.`-filter'."...(declar
53a0 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 e.(important-return-value.t))...
53c0 28 2d 2d 72 65 6d 6f 76 65 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 (--remove.(funcall.pred.it).list
53e0 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 72 65 6a 65 63 74 20 27 2d 72 65 6d 6f 76 65 29 ))..(defalias.'-reject.'-remove)
5400 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 72 65 6a 65 63 74 20 27 2d 2d 72 65 6d 6f 76 65 29 0a .(defalias.'--reject.'--remove).
5420 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 20 28 66 6f 72 6d 20 .(defmacro.--remove-first.(form.
5440 6c 69 73 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 66 list)..."Remove.the.first.item.f
5460 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 74 6f rom.LIST.for.which.FORM.evals.to
5480 20 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 .non-nil..Each.element.of.LIST.i
54a0 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 n.turn.is.bound.to.`it'.and.its.
54c0 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 index.within.LIST.to.`it-index'.
54e0 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 20 20 54 68 69 73 20 69 73 before.evaluating.FORM...This.is
5500 20 61 0a 6e 6f 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 2c 20 62 75 .a.non-destructive.operation,.bu
5520 74 20 6f 6e 6c 79 20 74 68 65 20 66 72 6f 6e 74 20 6f 66 20 4c 49 53 54 20 6c 65 61 64 69 6e 67 t.only.the.front.of.LIST.leading
5540 20 75 70 0a 74 6f 20 74 68 65 20 72 65 6d 6f 76 65 64 20 69 74 65 6d 20 69 73 20 61 20 63 6f 70 .up.to.the.removed.item.is.a.cop
5560 79 3b 20 74 68 65 20 72 65 73 74 20 69 73 20 4c 49 53 54 27 73 20 6f 72 69 67 69 6e 61 6c 20 74 y;.the.rest.is.LIST's.original.t
5580 61 69 6c 2e 0a 49 66 20 6e 6f 20 69 74 65 6d 20 69 73 20 72 65 6d 6f 76 65 64 2c 20 74 68 65 6e ail..If.no.item.is.removed,.then
55a0 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 63 6f 70 79 2e 0a .the.result.is.a.complete.copy..
55c0 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 This.is.the.anaphoric.counterpar
55e0 74 20 74 6f 20 60 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 t.to.`-remove-first'."...(declar
5600 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 e.(debug.(form.form)))...(let.((
5620 66 72 6f 6e 74 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 66 72 6f 6e 74 22 29 29 0a 20 20 20 front.(make-symbol."front"))....
5640 20 20 20 20 20 28 74 61 69 6c 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 74 61 69 6c 22 29 29 .....(tail.(make-symbol."tail"))
5660 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 74 61 69 6c 20 2c 6c 69 73 74 29 20 2c 66 72 6f 6e ).....`(let.((,tail.,list).,fron
5680 74 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 2c 74 61 69 6c 20 28 6e t)........(--each-while.,tail.(n
56a0 6f 74 20 2c 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 70 6f 70 20 2c 74 ot.,form)..........(push.(pop.,t
56c0 61 69 6c 29 20 2c 66 72 6f 6e 74 29 29 0a 20 20 20 20 20 20 20 28 69 66 20 2c 74 61 69 6c 0a 20 ail).,front))........(if.,tail..
56e0 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6e 72 65 76 65 72 73 65 20 2c 66 72 6f 6e ..........(nconc.(nreverse.,fron
5700 74 29 20 28 63 64 72 20 2c 74 61 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 t).(cdr.,tail))..........(nrever
5720 73 65 20 2c 66 72 6f 6e 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 6d 6f 76 65 2d 66 se.,front)))))..(defun.-remove-f
5740 69 72 73 74 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 66 irst.(pred.list)..."Remove.the.f
5760 69 72 73 74 20 69 74 65 6d 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 irst.item.from.LIST.for.which.PR
5780 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 54 68 69 73 20 69 73 20 61 20 6e 6f ED.returns.non-nil..This.is.a.no
57a0 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 2c 20 62 75 74 20 6f 6e 6c n-destructive.operation,.but.onl
57c0 79 20 74 68 65 20 66 72 6f 6e 74 20 6f 66 20 4c 49 53 54 0a 6c 65 61 64 69 6e 67 20 75 70 20 74 y.the.front.of.LIST.leading.up.t
57e0 6f 20 74 68 65 20 72 65 6d 6f 76 65 64 20 69 74 65 6d 20 69 73 20 61 20 63 6f 70 79 3b 20 74 68 o.the.removed.item.is.a.copy;.th
5800 65 20 72 65 73 74 20 69 73 20 4c 49 53 54 27 73 0a 6f 72 69 67 69 6e 61 6c 20 74 61 69 6c 2e 20 e.rest.is.LIST's.original.tail..
5820 20 49 66 20 6e 6f 20 69 74 65 6d 20 69 73 20 72 65 6d 6f 76 65 64 2c 20 74 68 65 6e 20 74 68 65 .If.no.item.is.removed,.then.the
5840 20 72 65 73 75 6c 74 20 69 73 20 61 0a 63 6f 6d 70 6c 65 74 65 20 63 6f 70 79 2e 0a 0a 41 6c 69 .result.is.a.complete.copy...Ali
5860 61 73 3a 20 60 2d 72 65 6a 65 63 74 2d 66 69 72 73 74 27 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 as:.`-reject-first'...This.funct
5880 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 ion's.anaphoric.counterpart.is.`
58a0 2d 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 2d 6d 61 70 --remove-first'...See.also.`-map
58c0 2d 66 69 72 73 74 27 2c 20 60 2d 72 65 6d 6f 76 65 2d 69 74 65 6d 27 2c 20 61 6e 64 20 60 2d 72 -first',.`-remove-item',.and.`-r
58e0 65 6d 6f 76 65 2d 6c 61 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 emove-last'."...(declare.(import
5900 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 72 65 6d 6f 76 65 ant-return-value.t))...(--remove
5920 2d 66 69 72 73 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a -first.(funcall.pred.it).list)).
5940 0a 3b 3b 20 54 4f 44 4f 3a 20 23 27 2d 71 75 6f 74 69 6e 67 20 74 68 65 20 6d 61 63 72 6f 20 75 .;;.TODO:.#'-quoting.the.macro.u
5960 70 73 65 74 73 20 45 6d 61 63 73 20 32 34 2e 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 72 65 6a 65 psets.Emacs.24..(defalias.'-reje
5980 63 74 2d 66 69 72 73 74 20 23 27 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 29 0a 28 64 65 66 61 6c ct-first.#'-remove-first).(defal
59a0 69 61 73 20 27 2d 2d 72 65 6a 65 63 74 2d 66 69 72 73 74 20 27 2d 2d 72 65 6d 6f 76 65 2d 66 69 ias.'--reject-first.'--remove-fi
59c0 72 73 74 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 20 28 66 rst)..(defmacro.--remove-last.(f
59e0 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 6c 61 73 74 20 69 74 65 orm.list)..."Remove.the.last.ite
5a00 6d 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 m.from.LIST.for.which.FORM.evals
5a20 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 .to.non-nil..Each.element.of.LIS
5a40 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 62 65 66 6f 72 T.in.turn.is.bound.to.`it'.befor
5a60 65 20 65 76 61 6c 75 61 74 69 6e 67 0a 46 4f 52 4d 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 e.evaluating.FORM...The.result.i
5a80 73 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 s.a.copy.of.LIST.regardless.of.w
5aa0 68 65 74 68 65 72 20 61 6e 0a 65 6c 65 6d 65 6e 74 20 69 73 20 72 65 6d 6f 76 65 64 2e 0a 54 68 hether.an.element.is.removed..Th
5ac0 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 is.is.the.anaphoric.counterpart.
5ae0 74 6f 20 60 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 to.`-remove-last'."...(declare.(
5b00 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 6e 72 65 76 65 72 73 65 debug.(form.form)))...`(nreverse
5b20 20 28 2d 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 20 2c 66 6f 72 6d 20 28 72 65 76 65 72 73 65 20 .(--remove-first.,form.(reverse.
5b40 2c 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 20 28 ,list))))..(defun.-remove-last.(
5b60 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 6c 61 73 74 20 69 74 pred.list)..."Remove.the.last.it
5b80 65 6d 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 em.from.LIST.for.which.PRED.retu
5ba0 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 70 rns.non-nil..The.result.is.a.cop
5bc0 79 20 6f 66 20 4c 49 53 54 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 y.of.LIST.regardless.of.whether.
5be0 61 6e 20 65 6c 65 6d 65 6e 74 20 69 73 0a 72 65 6d 6f 76 65 64 2e 0a 0a 41 6c 69 61 73 3a 20 60 an.element.is.removed...Alias:.`
5c00 2d 72 65 6a 65 63 74 2d 6c 61 73 74 27 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 -reject-last'...This.function's.
5c20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 72 65 6d 6f anaphoric.counterpart.is.`--remo
5c40 76 65 2d 6c 61 73 74 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 2d 6d 61 70 2d 6c 61 73 74 27 2c ve-last'...See.also.`-map-last',
5c60 20 60 2d 72 65 6d 6f 76 65 2d 69 74 65 6d 27 2c 20 61 6e 64 20 60 2d 72 65 6d 6f 76 65 2d 66 69 .`-remove-item',.and.`-remove-fi
5c80 72 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 rst'."...(declare.(important-ret
5ca0 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 20 28 urn-value.t))...(--remove-last.(
5cc0 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 6c 69 funcall.pred.it).list))..(defali
5ce0 61 73 20 27 2d 72 65 6a 65 63 74 2d 6c 61 73 74 20 27 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 29 0a as.'-reject-last.'-remove-last).
5d00 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 72 65 6a 65 63 74 2d 6c 61 73 74 20 27 2d 2d 72 65 6d 6f (defalias.'--reject-last.'--remo
5d20 76 65 2d 6c 61 73 74 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 72 65 6d 6f 76 65 2d 69 74 65 ve-last)..(defalias.'-remove-ite
5d40 6d 20 23 27 72 65 6d 6f 76 65 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c m.#'remove..."Return.a.copy.of.L
5d60 49 53 54 20 77 69 74 68 20 61 6c 6c 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 49 54 45 4d IST.with.all.occurrences.of.ITEM
5d80 20 72 65 6d 6f 76 65 64 2e 0a 54 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 69 73 20 64 6f 6e 65 .removed..The.comparison.is.done
5da0 20 77 69 74 68 20 60 65 71 75 61 6c 27 2e 0a 5c 6e 28 66 6e 20 49 54 45 4d 20 4c 49 53 54 29 22 .with.`equal'..\n(fn.ITEM.LIST)"
5dc0 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 6b 65 65 70 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a )..(defmacro.--keep.(form.list).
5de0 20 20 22 45 76 61 6c 20 46 4f 52 4d 20 66 6f 72 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 .."Eval.FORM.for.each.item.in.LI
5e00 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6e 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 ST.and.return.the.non-nil.result
5e20 73 2e 0a 4c 69 6b 65 20 60 2d 2d 66 69 6c 74 65 72 27 2c 20 62 75 74 20 72 65 74 75 72 6e 73 20 s..Like.`--filter',.but.returns.
5e40 74 68 65 20 6e 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 73 20 6f 66 20 46 4f 52 4d 20 69 6e 73 74 the.non-nil.results.of.FORM.inst
5e60 65 61 64 0a 6f 66 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 6c 65 6d 65 6e 74 ead.of.the.corresponding.element
5e80 73 20 6f 66 20 4c 49 53 54 2e 20 20 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 s.of.LIST...Each.element.of.LIST
5ea0 20 69 6e 0a 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 .in.turn.is.bound.to.`it'.and.it
5ec0 73 20 69 6e 64 65 78 20 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 s.index.within.LIST.to.`it-index
5ee0 27 0a 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 '.before.evaluating.FORM..This.i
5f00 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 s.the.anaphoric.counterpart.to.`
5f20 2d 6b 65 65 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d -keep'."...(declare.(debug.(form
5f40 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c .form)))...(let.((r.(make-symbol
5f60 20 22 72 65 73 75 6c 74 22 29 29 0a 20 20 20 20 20 20 20 20 28 6d 20 28 6d 61 6b 65 2d 73 79 6d ."result")).........(m.(make-sym
5f80 62 6f 6c 20 22 6d 61 70 70 65 64 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 2c 72 29 0a 20 bol."mapped"))).....`(let.(,r)..
5fa0 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 20 28 6c 65 74 20 28 28 2c 6d 20 2c 66 ......(--each.,list.(let.((,m.,f
5fc0 6f 72 6d 29 29 20 28 77 68 65 6e 20 2c 6d 20 28 70 75 73 68 20 2c 6d 20 2c 72 29 29 29 29 0a 20 orm)).(when.,m.(push.,m.,r))))..
5fe0 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 2c 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d ......(nreverse.,r))))..(defun.-
6000 6b 65 65 70 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c keep.(fn.list)..."Return.a.new.l
6020 69 73 74 20 6f 66 20 74 68 65 20 6e 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 73 20 6f 66 20 61 70 ist.of.the.non-nil.results.of.ap
6040 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2e 0a plying.FN.to.each.item.in.LIST..
6060 4c 69 6b 65 20 60 2d 66 69 6c 74 65 72 27 2c 20 62 75 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 Like.`-filter',.but.returns.the.
6080 6e 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 73 20 6f 66 20 46 4e 20 69 6e 73 74 65 61 64 20 6f 66 non-nil.results.of.FN.instead.of
60a0 0a 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c .the.corresponding.elements.of.L
60c0 49 53 54 2e 0a 0a 49 74 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 IST...Its.anaphoric.counterpart.
60e0 69 73 20 60 2d 2d 6b 65 65 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 is.`--keep'."...(declare.(import
6100 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 6b 65 65 70 20 28 ant-return-value.t))...(--keep.(
6120 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6e funcall.fn.it).list))..(defun.-n
6140 6f 6e 2d 6e 69 6c 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f on-nil.(list)..."Return.a.copy.o
6160 66 20 4c 49 53 54 20 77 69 74 68 20 61 6c 6c 20 6e 69 6c 20 69 74 65 6d 73 20 72 65 6d 6f 76 65 f.LIST.with.all.nil.items.remove
6180 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 d."...(declare.(side-effect-free
61a0 20 74 29 29 0a 20 20 28 2d 2d 66 69 6c 74 65 72 20 69 74 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 .t))...(--filter.it.list))..(def
61c0 6d 61 63 72 6f 20 2d 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a macro.--map-indexed.(form.list).
61e0 20 20 22 45 76 61 6c 20 46 4f 52 4d 20 66 6f 72 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 .."Eval.FORM.for.each.item.in.LI
6200 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 ST.and.return.the.list.of.result
6220 73 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 s..Each.element.of.LIST.in.turn.
6240 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a 77 is.bound.to.`it'.and.its.index.w
6260 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 20 ithin.LIST.to.`it-index'.before.
6280 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 20 20 54 68 69 73 20 69 73 20 6c 69 6b 65 0a 60 evaluating.FORM...This.is.like.`
62a0 2d 2d 6d 61 70 27 2c 20 62 75 74 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 20 6d 61 6b 65 73 20 60 --map',.but.additionally.makes.`
62c0 69 74 2d 69 6e 64 65 78 27 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 46 4f 52 4d 2e 0a 0a 54 68 it-index'.available.to.FORM...Th
62e0 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 is.is.the.anaphoric.counterpart.
6300 74 6f 20 60 2d 6d 61 70 2d 69 6e 64 65 78 65 64 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 to.`-map-indexed'."...(declare.(
6320 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 20 28 debug.(form.form)))...(let.((r.(
6340 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 make-symbol."result"))).....`(le
6360 74 20 28 2c 72 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 0a 20 20 20 20 t.(,r)........(--each.,list.....
6380 20 20 20 20 20 28 70 75 73 68 20 2c 66 6f 72 6d 20 2c 72 29 29 0a 20 20 20 20 20 20 20 28 6e 72 .....(push.,form.,r))........(nr
63a0 65 76 65 72 73 65 20 2c 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6d 61 70 2d 69 6e 64 65 78 everse.,r))))..(defun.-map-index
63c0 65 64 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 ed.(fn.list)..."Apply.FN.to.each
63e0 20 69 6e 64 65 78 20 61 6e 64 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 61 6e 64 20 72 65 74 75 .index.and.item.in.LIST.and.retu
6400 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 2e 0a 54 68 69 73 20 69 73 20 rn.the.list.of.results..This.is.
6420 6c 69 6b 65 20 60 2d 6d 61 70 27 2c 20 62 75 74 20 46 4e 20 74 61 6b 65 73 20 74 77 6f 20 61 72 like.`-map',.but.FN.takes.two.ar
6440 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 0a 63 75 72 72 65 6e guments:.the.index.of.the.curren
6460 74 20 65 6c 65 6d 65 6e 74 20 77 69 74 68 69 6e 20 4c 49 53 54 2c 20 61 6e 64 20 74 68 65 20 65 t.element.within.LIST,.and.the.e
6480 6c 65 6d 65 6e 74 20 69 74 73 65 6c 66 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 lement.itself...This.function's.
64a0 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 6d 61 70 2d anaphoric.counterpart.is.`--map-
64c0 69 6e 64 65 78 65 64 27 2e 0a 0a 46 6f 72 20 61 20 73 69 64 65 2d 65 66 66 65 63 74 69 6e 67 20 indexed'...For.a.side-effecting.
64e0 76 61 72 69 61 6e 74 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 variant,.see.also.`-each-indexed
6500 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e '."...(declare.(important-return
6520 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 28 66 75 6e -value.t))...(--map-indexed.(fun
6540 63 61 6c 6c 20 66 6e 20 69 74 2d 69 6e 64 65 78 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 call.fn.it-index.it).list))..(de
6560 66 6d 61 63 72 6f 20 2d 2d 6d 61 70 2d 77 68 65 6e 20 28 70 72 65 64 20 72 65 70 20 6c 69 73 74 fmacro.--map-when.(pred.rep.list
6580 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 6d 61 70 2d 77 68 65 )..."Anaphoric.form.of.`-map-whe
65a0 6e 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 n'."...(declare.(debug.(form.for
65c0 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 20 28 6d 61 6b 65 2d 73 79 6d 62 6f m.form)))...(let.((r.(make-symbo
65e0 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 2c 72 29 0a 20 20 20 l."result"))).....`(let.(,r)....
6600 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 20 28 21 63 6f 6e 73 20 28 69 66 20 2c 70 72 ....(--each.,list.(!cons.(if.,pr
6620 65 64 20 2c 72 65 70 20 69 74 29 20 2c 72 29 29 0a 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 ed.,rep.it).,r))........(nrevers
6640 65 20 2c 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6d 61 70 2d 77 68 65 6e 20 28 70 72 65 64 e.,r))))..(defun.-map-when.(pred
6660 20 72 65 70 20 6c 69 73 74 29 0a 20 20 22 55 73 65 20 50 52 45 44 20 74 6f 20 63 6f 6e 64 69 74 .rep.list)..."Use.PRED.to.condit
6680 69 6f 6e 61 6c 6c 79 20 61 70 70 6c 79 20 52 45 50 20 74 6f 20 65 61 63 68 20 69 74 65 6d 20 69 ionally.apply.REP.to.each.item.i
66a0 6e 20 4c 49 53 54 2e 0a 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 68 n.LIST..Return.a.copy.of.LIST.wh
66c0 65 72 65 20 74 68 65 20 69 74 65 6d 73 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 ere.the.items.for.which.PRED.ret
66e0 75 72 6e 73 20 6e 69 6c 0a 61 72 65 20 75 6e 63 68 61 6e 67 65 64 2c 20 61 6e 64 20 74 68 65 20 urns.nil.are.unchanged,.and.the.
6700 72 65 73 74 20 61 72 65 20 6d 61 70 70 65 64 20 74 68 72 6f 75 67 68 20 74 68 65 20 52 45 50 20 rest.are.mapped.through.the.REP.
6720 66 75 6e 63 74 69 6f 6e 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 72 65 70 6c 61 63 65 2d 77 68 65 72 function...Alias:.`-replace-wher
6740 65 27 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 75 70 64 61 74 65 2d 61 74 27 22 0a 20 20 28 64 e'..See.also:.`-update-at'"...(d
6760 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 eclare.(important-return-value.t
6780 29 29 0a 20 20 28 2d 2d 6d 61 70 2d 77 68 65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 ))...(--map-when.(funcall.pred.i
67a0 74 29 20 28 66 75 6e 63 61 6c 6c 20 72 65 70 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 t).(funcall.rep.it).list))..(def
67c0 61 6c 69 61 73 20 27 2d 72 65 70 6c 61 63 65 2d 77 68 65 72 65 20 27 2d 6d 61 70 2d 77 68 65 6e alias.'-replace-where.'-map-when
67e0 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 72 65 70 6c 61 63 65 2d 77 68 65 72 65 20 27 2d 2d ).(defalias.'--replace-where.'--
6800 6d 61 70 2d 77 68 65 6e 29 0a 0a 28 64 65 66 75 6e 20 2d 6d 61 70 2d 66 69 72 73 74 20 28 70 72 map-when)..(defun.-map-first.(pr
6820 65 64 20 72 65 70 20 6c 69 73 74 29 0a 20 20 22 55 73 65 20 50 52 45 44 20 74 6f 20 64 65 74 65 ed.rep.list)..."Use.PRED.to.dete
6840 72 6d 69 6e 65 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 74 6f 20 rmine.the.first.item.in.LIST.to.
6860 63 61 6c 6c 20 52 45 50 20 6f 6e 2e 0a 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 call.REP.on..Return.a.copy.of.LI
6880 53 54 20 77 68 65 72 65 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 66 6f 72 20 77 68 69 63 ST.where.the.first.item.for.whic
68a0 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 0a 6e 6f 6e 2d 6e 69 6c 20 69 73 20 72 65 70 6c 61 63 h.PRED.returns.non-nil.is.replac
68c0 65 64 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 52 45 ed.with.the.result.of.calling.RE
68e0 50 20 6f 6e 20 74 68 61 74 20 69 74 65 6d 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 6d 61 70 P.on.that.item...See.also:.`-map
6900 2d 77 68 65 6e 27 2c 20 60 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 27 22 0a 20 20 28 64 65 63 -when',.`-replace-first'"...(dec
6920 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 lare.(important-return-value.t))
6940 0a 20 20 28 6c 65 74 20 28 66 72 6f 6e 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 ...(let.(front).....(while.(and.
6960 6c 69 73 74 20 28 6e 6f 74 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 28 63 61 72 20 6c 69 73 list.(not.(funcall.pred.(car.lis
6980 74 29 29 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 6c 69 73 74 29 20 66 72 6f t)))).......(push.(car.list).fro
69a0 6e 74 29 0a 20 20 20 20 20 20 28 21 63 64 72 20 6c 69 73 74 29 29 0a 20 20 20 20 28 69 66 20 6c nt).......(!cdr.list)).....(if.l
69c0 69 73 74 0a 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 66 ist.........(-concat.(nreverse.f
69e0 72 6f 6e 74 29 20 28 63 6f 6e 73 20 28 66 75 6e 63 61 6c 6c 20 72 65 70 20 28 63 61 72 20 6c 69 ront).(cons.(funcall.rep.(car.li
6a00 73 74 29 29 20 28 63 64 72 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 st)).(cdr.list))).......(nrevers
6a20 65 20 66 72 6f 6e 74 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 6d 61 70 2d 66 69 72 e.front))))..(defmacro.--map-fir
6a40 73 74 20 28 70 72 65 64 20 72 65 70 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 st.(pred.rep.list)..."Anaphoric.
6a60 66 6f 72 6d 20 6f 66 20 60 2d 6d 61 70 2d 66 69 72 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 form.of.`-map-first'."...(declar
6a80 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d e.(debug.(def-form.def-form.form
6aa0 29 29 29 0a 20 20 60 28 2d 6d 61 70 2d 66 69 72 73 74 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 )))...`(-map-first.(lambda.(it).
6ac0 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 70 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (ignore.it).,pred)..............
6ae0 20 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 72 65 70 29 ..(lambda.(it).(ignore.it).,rep)
6b00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 ................,list))..(defun.
6b20 2d 6d 61 70 2d 6c 61 73 74 20 28 70 72 65 64 20 72 65 70 20 6c 69 73 74 29 0a 20 20 22 55 73 65 -map-last.(pred.rep.list)..."Use
6b40 20 50 52 45 44 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d .PRED.to.determine.the.last.item
6b60 20 69 6e 20 4c 49 53 54 20 74 6f 20 63 61 6c 6c 20 52 45 50 20 6f 6e 2e 0a 52 65 74 75 72 6e 20 .in.LIST.to.call.REP.on..Return.
6b80 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 68 65 72 65 20 74 68 65 20 6c 61 73 74 20 69 74 a.copy.of.LIST.where.the.last.it
6ba0 65 6d 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 0a 6e 6f 6e 2d 6e 69 em.for.which.PRED.returns.non-ni
6bc0 6c 20 69 73 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 l.is.replaced.with.the.result.of
6be0 20 63 61 6c 6c 69 6e 67 20 52 45 50 20 6f 6e 20 74 68 61 74 20 69 74 65 6d 2e 0a 0a 53 65 65 20 .calling.REP.on.that.item...See.
6c00 61 6c 73 6f 3a 20 60 2d 6d 61 70 2d 77 68 65 6e 27 2c 20 60 2d 72 65 70 6c 61 63 65 2d 6c 61 73 also:.`-map-when',.`-replace-las
6c20 74 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e t'"...(declare.(important-return
6c40 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6e 72 65 76 65 72 73 65 20 28 2d 6d 61 70 2d 66 69 72 -value.t))...(nreverse.(-map-fir
6c60 73 74 20 70 72 65 64 20 72 65 70 20 28 72 65 76 65 72 73 65 20 6c 69 73 74 29 29 29 29 0a 0a 28 st.pred.rep.(reverse.list))))..(
6c80 64 65 66 6d 61 63 72 6f 20 2d 2d 6d 61 70 2d 6c 61 73 74 20 28 70 72 65 64 20 72 65 70 20 6c 69 defmacro.--map-last.(pred.rep.li
6ca0 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 6d 61 70 2d 6c st)..."Anaphoric.form.of.`-map-l
6cc0 61 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f ast'."...(declare.(debug.(def-fo
6ce0 72 6d 20 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 6d 61 70 2d 6c 61 73 rm.def-form.form)))...`(-map-las
6d00 74 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 70 72 65 64 t.(lambda.(it).(ignore.it).,pred
6d20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 )...............(lambda.(it).(ig
6d40 6e 6f 72 65 20 69 74 29 20 2c 72 65 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 6c 69 nore.it).,rep)...............,li
6d60 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 70 6c 61 63 65 20 28 6f 6c 64 20 6e 65 77 20 6c st))..(defun.-replace.(old.new.l
6d80 69 73 74 29 0a 20 20 22 52 65 70 6c 61 63 65 20 61 6c 6c 20 4f 4c 44 20 69 74 65 6d 73 20 69 6e ist)..."Replace.all.OLD.items.in
6da0 20 4c 49 53 54 20 77 69 74 68 20 4e 45 57 2e 0a 0a 45 6c 65 6d 65 6e 74 73 20 61 72 65 20 63 6f .LIST.with.NEW...Elements.are.co
6dc0 6d 70 61 72 65 64 20 75 73 69 6e 67 20 60 65 71 75 61 6c 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a mpared.using.`equal'...See.also:
6de0 20 60 2d 72 65 70 6c 61 63 65 2d 61 74 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 .`-replace-at'"...(declare.(pure
6e00 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d 6d .t).(side-effect-free.t))...(--m
6e20 61 70 2d 77 68 65 6e 20 28 65 71 75 61 6c 20 69 74 20 6f 6c 64 29 20 6e 65 77 20 6c 69 73 74 29 ap-when.(equal.it.old).new.list)
6e40 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 20 28 6f 6c 64 20 6e 65 )..(defun.-replace-first.(old.ne
6e60 77 20 6c 69 73 74 29 0a 20 20 22 52 65 70 6c 61 63 65 20 74 68 65 20 66 69 72 73 74 20 6f 63 63 w.list)..."Replace.the.first.occ
6e80 75 72 72 65 6e 63 65 20 6f 66 20 4f 4c 44 20 77 69 74 68 20 4e 45 57 20 69 6e 20 4c 49 53 54 2e urrence.of.OLD.with.NEW.in.LIST.
6ea0 0a 0a 45 6c 65 6d 65 6e 74 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 75 73 69 6e 67 20 60 65 ..Elements.are.compared.using.`e
6ec0 71 75 61 6c 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 6d 61 70 2d 66 69 72 73 74 27 22 0a qual'...See.also:.`-map-first'".
6ee0 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 ..(declare.(pure.t).(side-effect
6f00 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d 6d 61 70 2d 66 69 72 73 74 20 28 65 71 75 61 6c 20 -free.t))...(--map-first.(equal.
6f20 6f 6c 64 20 69 74 29 20 6e 65 77 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 70 6c old.it).new.list))..(defun.-repl
6f40 61 63 65 2d 6c 61 73 74 20 28 6f 6c 64 20 6e 65 77 20 6c 69 73 74 29 0a 20 20 22 52 65 70 6c 61 ace-last.(old.new.list)..."Repla
6f60 63 65 20 74 68 65 20 6c 61 73 74 20 6f 63 63 75 72 72 65 6e 63 65 20 6f 66 20 4f 4c 44 20 77 69 ce.the.last.occurrence.of.OLD.wi
6f80 74 68 20 4e 45 57 20 69 6e 20 4c 49 53 54 2e 0a 0a 45 6c 65 6d 65 6e 74 73 20 61 72 65 20 63 6f th.NEW.in.LIST...Elements.are.co
6fa0 6d 70 61 72 65 64 20 75 73 69 6e 67 20 60 65 71 75 61 6c 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a mpared.using.`equal'...See.also:
6fc0 20 60 2d 6d 61 70 2d 6c 61 73 74 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 .`-map-last'"...(declare.(pure.t
6fe0 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d 6d 61 70 ).(side-effect-free.t))...(--map
7000 2d 6c 61 73 74 20 28 65 71 75 61 6c 20 6f 6c 64 20 69 74 29 20 6e 65 77 20 6c 69 73 74 29 29 0a -last.(equal.old.it).new.list)).
7020 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 6d 61 70 63 61 74 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a .(defmacro.--mapcat.(form.list).
7040 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 6d 61 70 63 61 74 27 2e 22 .."Anaphoric.form.of.`-mapcat'."
7060 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 ...(declare.(debug.(form.form)))
7080 0a 20 20 60 28 61 70 70 6c 79 20 23 27 61 70 70 65 6e 64 20 28 2d 2d 6d 61 70 20 2c 66 6f 72 6d ...`(apply.#'append.(--map.,form
70a0 20 2c 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6d 61 70 63 61 74 20 28 66 6e 20 6c 69 .,list)))..(defun.-mapcat.(fn.li
70c0 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 st)..."Return.the.concatenation.
70e0 6f 66 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 6d 61 70 70 69 6e 67 20 46 4e 20 6f 76 65 72 of.the.result.of.mapping.FN.over
7100 20 4c 49 53 54 2e 0a 54 68 75 73 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 73 68 6f 75 6c 64 20 72 .LIST..Thus.function.FN.should.r
7120 65 74 75 72 6e 20 61 20 6c 69 73 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 eturn.a.list."...(declare.(impor
7140 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 6d 61 70 63 61 tant-return-value.t))...(--mapca
7160 74 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 t.(funcall.fn.it).list))..(defma
7180 63 72 6f 20 2d 2d 69 74 65 72 61 74 65 20 28 66 6f 72 6d 20 69 6e 69 74 20 6e 29 0a 20 20 22 41 cro.--iterate.(form.init.n)..."A
71a0 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 2d 69 74 65 72 61 74 65 27 2e 22 naphoric.version.of.`-iterate'."
71c0 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 66 6f ...(declare.(debug.(form.form.fo
71e0 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 rm)))...(let.((res.(make-symbol.
7200 22 72 65 73 75 6c 74 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 6d 61 6b 65 2d 73 79 "result")).........(len.(make-sy
7220 6d 62 6f 6c 20 22 6e 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 6c 65 6e 20 2c 6e 29 mbol."n"))).....`(let.((,len.,n)
7240 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 2c 6c 65 6e 20 30 29 0a 20 20 20 20 20 20 )........(when.(>.,len.0).......
7260 20 20 20 28 6c 65 74 2a 20 28 28 69 74 20 2c 69 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...(let*.((it.,init)............
7280 20 20 20 20 20 28 2c 72 65 73 20 28 6c 69 73 74 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 .....(,res.(list.it)))..........
72a0 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 31 2d 20 2c 6c 65 6e 29 29 0a 20 20 20 20 20 20 20 ..(dotimes.(_.(1-.,len))........
72c0 20 20 20 20 20 20 28 70 75 73 68 20 28 73 65 74 71 20 69 74 20 2c 66 6f 72 6d 29 20 2c 72 65 73 ......(push.(setq.it.,form).,res
72e0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 2c 72 65 73 29 29 29 29 ))............(nreverse.,res))))
7300 29 29 0a 0a 28 64 65 66 75 6e 20 2d 69 74 65 72 61 74 65 20 28 66 75 6e 20 69 6e 69 74 20 6e 29 ))..(defun.-iterate.(fun.init.n)
7320 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 69 74 65 72 61 74 65 64 20 61 70 ..."Return.a.list.of.iterated.ap
7340 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 46 55 4e 20 74 6f 20 49 4e 49 54 2e 0a 0a 54 68 69 73 plications.of.FUN.to.INIT...This
7360 20 6d 65 61 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 0a 20 20 28 49 .means.a.list.of.the.form:....(I
7380 4e 49 54 20 28 46 55 4e 20 49 4e 49 54 29 20 28 46 55 4e 20 28 46 55 4e 20 49 4e 49 54 29 29 20 NIT.(FUN.INIT).(FUN.(FUN.INIT)).
73a0 2e 2e 2e 29 0a 0a 4e 20 69 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 72 65 74 ...)..N.is.the.length.of.the.ret
73c0 75 72 6e 65 64 20 6c 69 73 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 urned.list."...(declare.(importa
73e0 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 69 74 65 72 61 74 65 nt-return-value.t))...(--iterate
7400 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 20 69 74 29 20 69 6e 69 74 20 6e 29 29 0a 0a 28 64 65 66 .(funcall.fun.it).init.n))..(def
7420 75 6e 20 2d 66 6c 61 74 74 65 6e 20 28 6c 29 0a 20 20 22 54 61 6b 65 20 61 20 6e 65 73 74 65 64 un.-flatten.(l)..."Take.a.nested
7440 20 6c 69 73 74 20 4c 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 20 .list.L.and.return.its.contents.
7460 61 73 20 61 20 73 69 6e 67 6c 65 2c 20 66 6c 61 74 20 6c 69 73 74 2e 0a 0a 4e 6f 74 65 20 74 68 as.a.single,.flat.list...Note.th
7480 61 74 20 62 65 63 61 75 73 65 20 6e 69 6c 20 72 65 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 at.because.nil.represents.a.list
74a0 20 6f 66 20 7a 65 72 6f 20 65 6c 65 6d 65 6e 74 73 20 28 61 6e 0a 65 6d 70 74 79 20 6c 69 73 74 .of.zero.elements.(an.empty.list
74c0 29 2c 20 61 6e 79 20 6d 65 6e 74 69 6f 6e 20 6f 66 20 6e 69 6c 20 69 6e 20 4c 20 77 69 6c 6c 20 ),.any.mention.of.nil.in.L.will.
74e0 64 69 73 61 70 70 65 61 72 20 61 66 74 65 72 0a 66 6c 61 74 74 65 6e 69 6e 67 2e 20 20 49 66 20 disappear.after.flattening...If.
7500 79 6f 75 20 6e 65 65 64 20 74 6f 20 70 72 65 73 65 72 76 65 20 6e 69 6c 73 2c 20 63 6f 6e 73 69 you.need.to.preserve.nils,.consi
7520 64 65 72 20 60 2d 66 6c 61 74 74 65 6e 2d 6e 27 0a 6f 72 20 6d 61 70 20 74 68 65 6d 20 74 6f 20 der.`-flatten-n'.or.map.them.to.
7540 73 6f 6d 65 20 75 6e 69 71 75 65 20 73 79 6d 62 6f 6c 20 61 6e 64 20 74 68 65 6e 20 6d 61 70 20 some.unique.symbol.and.then.map.
7560 74 68 65 6d 20 62 61 63 6b 2e 0a 0a 43 6f 6e 73 65 73 20 6f 66 20 74 77 6f 20 61 74 6f 6d 73 20 them.back...Conses.of.two.atoms.
7580 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 5c 22 74 65 72 6d 69 6e 61 6c 73 5c 22 2c 20 74 68 are.considered.\"terminals\",.th
75a0 61 74 20 69 73 2c 20 74 68 65 79 0a 61 72 65 6e 27 74 20 66 6c 61 74 74 65 6e 65 64 20 66 75 72 at.is,.they.aren't.flattened.fur
75c0 74 68 65 72 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 66 6c 61 74 74 65 6e 2d 6e 27 22 0a 20 ther...See.also:.`-flatten-n'"..
75e0 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d .(declare.(pure.t).(side-effect-
7600 66 72 65 65 20 74 29 29 0a 20 20 28 69 66 20 28 61 6e 64 20 28 6c 69 73 74 70 20 6c 29 20 28 6c free.t))...(if.(and.(listp.l).(l
7620 69 73 74 70 20 28 63 64 72 20 6c 29 29 29 0a 20 20 20 20 20 20 28 2d 6d 61 70 63 61 74 20 27 2d istp.(cdr.l))).......(-mapcat.'-
7640 66 6c 61 74 74 65 6e 20 6c 29 0a 20 20 20 20 28 6c 69 73 74 20 6c 29 29 29 0a 0a 28 64 65 66 75 flatten.l).....(list.l)))..(defu
7660 6e 20 2d 66 6c 61 74 74 65 6e 2d 6e 20 28 6e 75 6d 20 6c 69 73 74 29 0a 20 20 22 46 6c 61 74 74 n.-flatten-n.(num.list)..."Flatt
7680 65 6e 20 4e 55 4d 20 6c 65 76 65 6c 73 20 6f 66 20 61 20 6e 65 73 74 65 64 20 4c 49 53 54 2e 0a en.NUM.levels.of.a.nested.LIST..
76a0 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 66 6c 61 74 74 65 6e 27 22 0a 20 20 28 64 65 63 6c 61 72 .See.also:.`-flatten'"...(declar
76c0 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 e.(pure.t).(side-effect-free.t))
76e0 0a 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 6e 75 6d 29 0a 20 20 20 20 28 73 65 74 71 20 6c 69 ...(dotimes.(_.num).....(setq.li
7700 73 74 20 28 61 70 70 6c 79 20 23 27 61 70 70 65 6e 64 20 28 6d 61 70 63 61 72 20 23 27 2d 6c 69 st.(apply.#'append.(mapcar.#'-li
7720 73 74 20 6c 69 73 74 29 29 29 29 0a 20 20 6c 69 73 74 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 st.list))))...list)..(defalias.'
7740 2d 63 6f 6e 63 61 74 20 23 27 61 70 70 65 6e 64 0a 20 20 22 43 6f 6e 63 61 74 65 6e 61 74 65 20 -concat.#'append..."Concatenate.
7760 61 6c 6c 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 6d 61 6b 65 20 74 68 65 20 72 all.the.arguments.and.make.the.r
7780 65 73 75 6c 74 20 61 20 6c 69 73 74 2e 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 6c 69 esult.a.list..The.result.is.a.li
77a0 73 74 20 77 68 6f 73 65 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 74 68 65 20 65 6c 65 6d 65 6e st.whose.elements.are.the.elemen
77c0 74 73 20 6f 66 20 61 6c 6c 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 2e 0a 45 61 63 68 20 61 72 ts.of.all.the.arguments..Each.ar
77e0 67 75 6d 65 6e 74 20 6d 61 79 20 62 65 20 61 20 6c 69 73 74 2c 20 76 65 63 74 6f 72 20 6f 72 20 gument.may.be.a.list,.vector.or.
7800 73 74 72 69 6e 67 2e 0a 0a 41 6c 6c 20 61 72 67 75 6d 65 6e 74 73 20 65 78 63 65 70 74 20 74 68 string...All.arguments.except.th
7820 65 20 6c 61 73 74 20 61 72 67 75 6d 65 6e 74 20 61 72 65 20 63 6f 70 69 65 64 2e 20 20 54 68 65 e.last.argument.are.copied...The
7840 20 6c 61 73 74 20 61 72 67 75 6d 65 6e 74 0a 69 73 20 6a 75 73 74 20 75 73 65 64 20 61 73 20 74 .last.argument.is.just.used.as.t
7860 68 65 20 74 61 69 6c 20 6f 66 20 74 68 65 20 6e 65 77 20 6c 69 73 74 2e 0a 0a 5c 28 66 6e 20 26 he.tail.of.the.new.list...\(fn.&
7880 72 65 73 74 20 53 45 51 55 45 4e 43 45 53 29 22 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 63 rest.SEQUENCES)")..(defalias.'-c
78a0 6f 70 79 20 23 27 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 0a 20 20 22 43 72 65 61 74 65 20 61 20 opy.#'copy-sequence..."Create.a.
78c0 73 68 61 6c 6c 6f 77 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 2e 0a 0a 5c 28 66 6e 20 4c 49 53 54 shallow.copy.of.LIST...\(fn.LIST
78e0 29 22 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 73 70 6c 69 63 65 20 28 70 72 65 64 20 66 6f )")..(defmacro.--splice.(pred.fo
7900 72 6d 20 6c 69 73 74 29 0a 20 20 22 53 70 6c 69 63 65 20 6c 69 73 74 73 20 67 65 6e 65 72 61 74 rm.list)..."Splice.lists.generat
7920 65 64 20 62 79 20 46 4f 52 4d 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 69 74 65 6d 73 20 73 61 74 ed.by.FORM.in.place.of.items.sat
7940 69 73 66 79 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 53 54 2e 0a 0a 45 76 61 6c 75 61 74 65 20 isfying.PRED.in.LIST...Evaluate.
7960 50 52 45 44 20 66 6f 72 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e PRED.for.each.element.of.LIST.in
7980 20 74 75 72 6e 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 2e 0a 57 68 65 6e 65 76 65 72 20 74 68 .turn.bound.to.`it'..Whenever.th
79a0 65 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 20 69 73 20 6e 69 6c 2c 20 6c 65 61 76 65 20 74 e.result.of.PRED.is.nil,.leave.t
79c0 68 61 74 20 60 69 74 27 20 69 73 2d 69 73 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20 65 76 61 6c 75 hat.`it'.is-is..Otherwise,.evalu
79e0 61 74 65 20 46 4f 52 4d 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 60 69 74 27 20 62 69 6e 64 ate.FORM.with.the.same.`it'.bind
7a00 69 6e 67 20 73 74 69 6c 6c 20 69 6e 0a 70 6c 61 63 65 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 ing.still.in.place...The.result.
7a20 73 68 6f 75 6c 64 20 62 65 20 61 20 28 70 6f 73 73 69 62 6c 79 20 65 6d 70 74 79 29 20 6c 69 73 should.be.a.(possibly.empty).lis
7a40 74 20 6f 66 20 69 74 65 6d 73 20 74 6f 0a 73 70 6c 69 63 65 20 69 6e 20 70 6c 61 63 65 20 6f 66 t.of.items.to.splice.in.place.of
7a60 20 60 69 74 27 20 69 6e 20 4c 49 53 54 2e 0a 0a 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 66 .`it'.in.LIST...This.can.be.usef
7a80 75 6c 20 61 73 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 74 68 65 20 60 2c 40 27 ul.as.an.alternative.to.the.`,@'
7aa0 20 63 6f 6e 73 74 72 75 63 74 20 69 6e 20 61 0a 60 5c 5c 3d 60 27 20 73 74 72 75 63 74 75 72 65 .construct.in.a.`\\=`'.structure
7ac0 2c 20 69 6e 20 63 61 73 65 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 73 70 6c 69 63 65 20 73 65 76 ,.in.case.you.need.to.splice.sev
7ae0 65 72 61 6c 20 6c 69 73 74 73 20 61 74 0a 6d 61 72 6b 65 64 20 70 6f 73 69 74 69 6f 6e 73 20 28 eral.lists.at.marked.positions.(
7b00 66 6f 72 20 65 78 61 6d 70 6c 65 20 77 69 74 68 20 6b 65 79 77 6f 72 64 73 29 2e 0a 0a 54 68 69 for.example.with.keywords)...Thi
7b20 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 s.is.the.anaphoric.counterpart.t
7b40 6f 20 60 2d 73 70 6c 69 63 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 o.`-splice'."...(declare.(debug.
7b60 28 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 20 28 6d (form.form.form)))...(let.((r.(m
7b80 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 ake-symbol."result"))).....`(let
7ba0 20 28 2c 72 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 0a 20 20 20 20 20 .(,r)........(--each.,list......
7bc0 20 20 20 20 28 69 66 20 2c 70 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 65 61 ....(if.,pred..............(--ea
7be0 63 68 20 2c 66 6f 72 6d 20 28 70 75 73 68 20 69 74 20 2c 72 29 29 0a 20 20 20 20 20 20 20 20 20 ch.,form.(push.it.,r))..........
7c00 20 20 28 70 75 73 68 20 69 74 20 2c 72 29 29 29 0a 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 ..(push.it.,r)))........(nrevers
7c20 65 20 2c 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 70 6c 69 63 65 20 28 70 72 65 64 20 66 e.,r))))..(defun.-splice.(pred.f
7c40 75 6e 20 6c 69 73 74 29 0a 20 20 22 53 70 6c 69 63 65 20 6c 69 73 74 73 20 67 65 6e 65 72 61 74 un.list)..."Splice.lists.generat
7c60 65 64 20 62 79 20 46 55 4e 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 69 74 65 6d 73 20 73 61 74 69 ed.by.FUN.in.place.of.items.sati
7c80 73 66 79 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 53 54 2e 0a 0a 43 61 6c 6c 20 50 52 45 44 20 sfying.PRED.in.LIST...Call.PRED.
7ca0 6f 6e 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2e 20 20 57 68 65 6e 65 76 on.each.element.of.LIST...Whenev
7cc0 65 72 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 0a 69 73 20 6e 69 6c 2c 20 6c 65 er.the.result.of.PRED.is.nil,.le
7ce0 61 76 65 20 74 68 61 74 20 60 69 74 27 20 61 73 2d 69 73 2e 20 20 4f 74 68 65 72 77 69 73 65 2c ave.that.`it'.as-is...Otherwise,
7d00 20 63 61 6c 6c 20 46 55 4e 20 6f 6e 20 74 68 65 20 73 61 6d 65 0a 60 69 74 27 20 74 68 61 74 20 .call.FUN.on.the.same.`it'.that.
7d20 73 61 74 69 73 66 69 65 64 20 50 52 45 44 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 73 68 6f 75 satisfied.PRED...The.result.shou
7d40 6c 64 20 62 65 20 61 20 28 70 6f 73 73 69 62 6c 79 0a 65 6d 70 74 79 29 20 6c 69 73 74 20 6f 66 ld.be.a.(possibly.empty).list.of
7d60 20 69 74 65 6d 73 20 74 6f 20 73 70 6c 69 63 65 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 60 69 74 .items.to.splice.in.place.of.`it
7d80 27 20 69 6e 20 4c 49 53 54 2e 0a 0a 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 61 '.in.LIST...This.can.be.useful.a
7da0 73 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 74 6f 20 74 68 65 20 60 2c 40 27 20 63 6f 6e s.an.alternative.to.the.`,@'.con
7dc0 73 74 72 75 63 74 20 69 6e 20 61 0a 60 5c 5c 3d 60 27 20 73 74 72 75 63 74 75 72 65 2c 20 69 6e struct.in.a.`\\=`'.structure,.in
7de0 20 63 61 73 65 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 73 70 6c 69 63 65 20 73 65 76 65 72 61 6c .case.you.need.to.splice.several
7e00 20 6c 69 73 74 73 20 61 74 0a 6d 61 72 6b 65 64 20 70 6f 73 69 74 69 6f 6e 73 20 28 66 6f 72 20 .lists.at.marked.positions.(for.
7e20 65 78 61 6d 70 6c 65 20 77 69 74 68 20 6b 65 79 77 6f 72 64 73 29 2e 0a 0a 54 68 69 73 20 66 75 example.with.keywords)...This.fu
7e40 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 nction's.anaphoric.counterpart.i
7e60 73 20 60 2d 2d 73 70 6c 69 63 65 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 73 70 6c 69 63 s.`--splice'...See.also:.`-splic
7e80 65 2d 6c 69 73 74 27 2c 20 60 2d 69 6e 73 65 72 74 2d 61 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 e-list',.`-insert-at'."...(decla
7ea0 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 re.(important-return-value.t))..
7ec0 20 28 2d 2d 73 70 6c 69 63 65 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 28 66 75 .(--splice.(funcall.pred.it).(fu
7ee0 6e 63 61 6c 6c 20 66 75 6e 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 70 ncall.fun.it).list))..(defun.-sp
7f00 6c 69 63 65 2d 6c 69 73 74 20 28 70 72 65 64 20 6e 65 77 2d 6c 69 73 74 20 6c 69 73 74 29 0a 20 lice-list.(pred.new-list.list)..
7f20 20 22 53 70 6c 69 63 65 20 4e 45 57 2d 4c 49 53 54 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 65 6c ."Splice.NEW-LIST.in.place.of.el
7f40 65 6d 65 6e 74 73 20 6d 61 74 63 68 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 53 54 2e 0a 0a 53 ements.matching.PRED.in.LIST...S
7f60 65 65 20 61 6c 73 6f 3a 20 60 2d 73 70 6c 69 63 65 27 2c 20 60 2d 69 6e 73 65 72 74 2d 61 74 27 ee.also:.`-splice',.`-insert-at'
7f80 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 "...(declare.(important-return-v
7fa0 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 73 70 6c 69 63 65 20 70 72 65 64 20 28 6c 61 6d 62 64 61 alue.t))...(-splice.pred.(lambda
7fc0 20 28 5f 29 20 6e 65 77 2d 6c 69 73 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f .(_).new-list).list))..(defmacro
7fe0 20 2d 2d 73 70 6c 69 63 65 2d 6c 69 73 74 20 28 70 72 65 64 20 6e 65 77 2d 6c 69 73 74 20 6c 69 .--splice-list.(pred.new-list.li
8000 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 73 70 6c 69 63 st)..."Anaphoric.form.of.`-splic
8020 65 2d 6c 69 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 e-list'."...(declare.(debug.(def
8040 2d 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 73 70 6c 69 63 65 2d 6c -form.form.form)))...`(-splice-l
8060 69 73 74 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 70 72 ist.(lambda.(it).(ignore.it).,pr
8080 65 64 29 20 2c 6e 65 77 2d 6c 69 73 74 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 ed).,new-list.,list))..(defun.-c
80a0 6f 6e 73 2a 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 4d 61 6b 65 20 61 20 6e 65 77 20 ons*.(&rest.args)..."Make.a.new.
80c0 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 41 52 47 53 2e 0a list.from.the.elements.of.ARGS..
80e0 54 68 65 20 6c 61 73 74 20 32 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 41 52 47 53 20 61 72 65 20 The.last.2.elements.of.ARGS.are.
8100 75 73 65 64 20 61 73 20 74 68 65 20 66 69 6e 61 6c 20 63 6f 6e 73 20 6f 66 20 74 68 65 0a 72 65 used.as.the.final.cons.of.the.re
8120 73 75 6c 74 2c 20 73 6f 20 69 66 20 74 68 65 20 66 69 6e 61 6c 20 65 6c 65 6d 65 6e 74 20 6f 66 sult,.so.if.the.final.element.of
8140 20 41 52 47 53 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 2c 20 74 68 65 20 72 65 73 75 6c 74 0a .ARGS.is.not.a.list,.the.result.
8160 69 73 20 61 20 64 6f 74 74 65 64 20 6c 69 73 74 2e 20 20 57 69 74 68 20 6e 6f 20 41 52 47 53 2c is.a.dotted.list...With.no.ARGS,
8180 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 .return.nil."...(declare.(side-e
81a0 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6c 65 6e 20 28 6c 65 ffect-free.t))...(let*.((len.(le
81c0 6e 67 74 68 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 69 6c 20 28 6e 74 68 63 ngth.args))..........(tail.(nthc
81e0 64 72 20 28 2d 20 6c 65 6e 20 32 29 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 61 dr.(-.len.2).args))..........(la
8200 73 74 20 28 63 64 72 20 74 61 69 6c 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 6c 61 st.(cdr.tail))).....(if.(null.la
8220 73 74 29 0a 20 20 20 20 20 20 20 20 28 63 61 72 20 61 72 67 73 29 0a 20 20 20 20 20 20 28 73 65 st).........(car.args).......(se
8240 74 63 64 72 20 74 61 69 6c 20 28 63 61 72 20 6c 61 73 74 29 29 0a 20 20 20 20 20 20 61 72 67 73 tcdr.tail.(car.last)).......args
8260 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 6e 6f 63 20 28 6c 69 73 74 20 65 6c 65 6d 20 26 72 65 )))..(defun.-snoc.(list.elem.&re
8280 73 74 20 65 6c 65 6d 65 6e 74 73 29 0a 20 20 22 41 70 70 65 6e 64 20 45 4c 45 4d 20 74 6f 20 74 st.elements)..."Append.ELEM.to.t
82a0 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 74 2e 0a 0a 54 68 69 73 20 69 73 20 6c 69 6b he.end.of.the.list...This.is.lik
82c0 65 20 60 63 6f 6e 73 27 2c 20 62 75 74 20 6f 70 65 72 61 74 65 73 20 6f 6e 20 74 68 65 20 65 6e e.`cons',.but.operates.on.the.en
82e0 64 20 6f 66 20 6c 69 73 74 2e 0a 0a 49 66 20 61 6e 79 20 45 4c 45 4d 45 4e 54 53 20 61 72 65 20 d.of.list...If.any.ELEMENTS.are.
8300 67 69 76 65 6e 2c 20 61 70 70 65 6e 64 20 74 68 65 6d 20 74 6f 20 74 68 65 20 6c 69 73 74 20 61 given,.append.them.to.the.list.a
8320 73 20 77 65 6c 6c 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 s.well."...(declare.(side-effect
8340 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 63 6f 6e 63 61 74 20 6c 69 73 74 20 28 6c 69 73 74 20 -free.t))...(-concat.list.(list.
8360 65 6c 65 6d 29 20 65 6c 65 6d 65 6e 74 73 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 66 69 elem).elements))..(defmacro.--fi
8380 72 73 74 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 66 69 rst.(form.list)..."Return.the.fi
83a0 72 73 74 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 rst.item.in.LIST.for.which.FORM.
83c0 65 76 61 6c 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 evals.to.non-nil..Return.nil.if.
83e0 6e 6f 20 73 75 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 66 6f 75 6e 64 2e 0a 45 61 63 68 20 65 no.such.element.is.found..Each.e
8400 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 lement.of.LIST.in.turn.is.bound.
8420 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 to.`it'.and.its.index.within.LIS
8440 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e T.to.`it-index'.before.evaluatin
8460 67 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f g.FORM..This.is.the.anaphoric.co
8480 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 66 69 72 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 unterpart.to.`-first'."...(decla
84a0 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 re.(debug.(form.form)))...(let.(
84c0 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 65 65 64 6c 65 22 29 29 29 0a 20 20 20 20 (n.(make-symbol."needle"))).....
84e0 60 28 6c 65 74 20 28 2c 6e 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 `(let.(,n)........(--each-while.
8500 2c 6c 69 73 74 20 28 6f 72 20 28 6e 6f 74 20 2c 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 ,list.(or.(not.,form)...........
8520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 28 73 65 .....................(ignore.(se
8540 74 71 20 2c 6e 20 69 74 29 29 29 29 0a 20 20 20 20 20 20 20 2c 6e 29 29 29 0a 0a 28 64 65 66 75 tq.,n.it))))........,n)))..(defu
8560 6e 20 2d 66 69 72 73 74 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 n.-first.(pred.list)..."Return.t
8580 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 he.first.item.in.LIST.for.which.
85a0 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 52 65 74 75 72 6e 20 6e 69 6c PRED.returns.non-nil..Return.nil
85c0 20 69 66 20 6e 6f 20 73 75 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 66 6f 75 6e 64 2e 0a 0a 54 .if.no.such.element.is.found...T
85e0 6f 20 67 65 74 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 o.get.the.first.item.in.the.list
8600 20 6e 6f 20 71 75 65 73 74 69 6f 6e 73 20 61 73 6b 65 64 2c 0a 75 73 65 20 60 2d 66 69 72 73 74 .no.questions.asked,.use.`-first
8620 2d 69 74 65 6d 27 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 66 69 6e 64 27 2e 0a 0a 54 68 69 73 20 66 -item'...Alias:.`-find'...This.f
8640 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 unction's.anaphoric.counterpart.
8660 69 73 20 60 2d 2d 66 69 72 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 is.`--first'."...(declare.(impor
8680 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 66 69 72 73 74 tant-return-value.t))...(--first
86a0 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 .(funcall.pred.it).list))..(defa
86c0 6c 69 61 73 20 27 2d 66 69 6e 64 20 23 27 2d 66 69 72 73 74 29 0a 28 64 65 66 61 6c 69 61 73 20 lias.'-find.#'-first).(defalias.
86e0 27 2d 2d 66 69 6e 64 20 27 2d 2d 66 69 72 73 74 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 73 '--find.'--first)..(defmacro.--s
8700 6f 6d 65 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 ome.(form.list)..."Return.non-ni
8720 6c 20 69 66 20 46 4f 52 4d 20 65 76 61 6c 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 61 l.if.FORM.evals.to.non-nil.for.a
8740 74 20 6c 65 61 73 74 20 6f 6e 65 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2e 0a 49 66 20 73 6f 2c t.least.one.item.in.LIST..If.so,
8760 20 72 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 73 75 63 68 20 72 65 73 75 6c 74 20 6f 66 .return.the.first.such.result.of
8780 20 46 4f 52 4d 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 .FORM..Each.element.of.LIST.in.t
87a0 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 urn.is.bound.to.`it'.and.its.ind
87c0 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 ex.within.LIST.to.`it-index'.bef
87e0 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 73 20 74 68 65 ore.evaluating.FORM..This.is.the
8800 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 73 6f 6d 65 .anaphoric.counterpart.to.`-some
8820 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d '."...(declare.(debug.(form.form
8840 29 29 29 0a 20 20 28 6c 65 74 20 28 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 65 65 )))...(let.((n.(make-symbol."nee
8860 64 6c 65 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 2c 6e 29 0a 20 20 20 20 20 20 20 28 2d dle"))).....`(let.(,n)........(-
8880 2d 65 61 63 68 2d 77 68 69 6c 65 20 2c 6c 69 73 74 20 28 6e 6f 74 20 28 73 65 74 71 20 2c 6e 20 -each-while.,list.(not.(setq.,n.
88a0 2c 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 2c 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 ,form)))........,n)))..(defun.-s
88c0 6f 6d 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 28 50 52 45 44 20 ome.(pred.list)..."Return.(PRED.
88e0 78 29 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 4c 49 53 54 20 69 74 65 6d 20 77 68 65 72 65 x).for.the.first.LIST.item.where
8900 20 28 50 52 45 44 20 78 29 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 65 6c 73 65 20 6e 69 6c 2e 0a .(PRED.x).is.non-nil,.else.nil..
8920 0a 41 6c 69 61 73 3a 20 60 2d 61 6e 79 27 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 .Alias:.`-any'...This.function's
8940 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 73 6f 6d .anaphoric.counterpart.is.`--som
8960 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 e'."...(declare.(important-retur
8980 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 73 6f 6d 65 20 28 66 75 6e 63 61 6c 6c 20 70 n-value.t))...(--some.(funcall.p
89a0 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 61 6e 79 20 red.it).list))..(defalias.'-any.
89c0 27 2d 73 6f 6d 65 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 61 6e 79 20 27 2d 2d 73 6f 6d 65 '-some).(defalias.'--any.'--some
89e0 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 65 76 65 72 79 20 28 66 6f 72 6d 20 6c 69 73 74 29 )..(defmacro.--every.(form.list)
8a00 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 46 4f 52 4d 20 65 76 61 6c 73 ..."Return.non-nil.if.FORM.evals
8a20 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 61 6c 6c 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 .to.non-nil.for.all.items.in.LIS
8a40 54 2e 0a 49 66 20 73 6f 2c 20 72 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 73 75 63 68 20 72 T..If.so,.return.the.last.such.r
8a60 65 73 75 6c 74 20 6f 66 20 46 4f 52 4d 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 6f 6e 63 65 20 esult.of.FORM...Otherwise,.once.
8a80 61 6e 0a 69 74 65 6d 20 69 73 20 72 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 an.item.is.reached.for.which.FOR
8aa0 4d 20 79 69 65 6c 64 73 20 6e 69 6c 2c 20 72 65 74 75 72 6e 20 6e 69 6c 20 77 69 74 68 6f 75 74 M.yields.nil,.return.nil.without
8ac0 0a 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 20 66 6f 72 20 61 6e 79 20 66 75 72 74 68 65 72 .evaluating.FORM.for.any.further
8ae0 20 4c 49 53 54 20 65 6c 65 6d 65 6e 74 73 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 .LIST.elements..Each.element.of.
8b00 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e LIST.in.turn.is.bound.to.`it'.an
8b20 64 20 69 74 73 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 d.its.index.within.LIST.to.`it-i
8b40 6e 64 65 78 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 0a 54 ndex'.before.evaluating.FORM...T
8b60 68 69 73 20 6d 61 63 72 6f 20 69 73 20 6c 69 6b 65 20 60 2d 2d 65 76 65 72 79 2d 70 27 2c 20 62 his.macro.is.like.`--every-p',.b
8b80 75 74 20 6f 6e 20 73 75 63 63 65 73 73 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 0a 6e ut.on.success.returns.the.last.n
8ba0 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 20 6f 66 20 46 4f 52 4d 20 69 6e 73 74 65 61 64 20 6f 66 on-nil.result.of.FORM.instead.of
8bc0 20 6a 75 73 74 20 74 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 .just.t...This.is.the.anaphoric.
8be0 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 65 76 65 72 79 27 2e 22 0a 20 20 28 64 65 63 counterpart.to.`-every'."...(dec
8c00 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 lare.(debug.(form.form)))...(let
8c20 20 28 28 61 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 61 6c 6c 22 29 29 29 0a 20 20 20 20 60 .((a.(make-symbol."all"))).....`
8c40 28 6c 65 74 20 28 28 2c 61 20 74 29 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 (let.((,a.t))........(--each-whi
8c60 6c 65 20 2c 6c 69 73 74 20 28 73 65 74 71 20 2c 61 20 2c 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 le.,list.(setq.,a.,form)).......
8c80 20 2c 61 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 65 76 65 72 79 20 28 70 72 65 64 20 6c 69 73 74 .,a)))..(defun.-every.(pred.list
8ca0 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 50 52 45 44 20 72 65 74 75 )..."Return.non-nil.if.PRED.retu
8cc0 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 61 6c 6c 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 rns.non-nil.for.all.items.in.LIS
8ce0 54 2e 0a 49 66 20 73 6f 2c 20 72 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 73 75 63 68 20 72 T..If.so,.return.the.last.such.r
8d00 65 73 75 6c 74 20 6f 66 20 50 52 45 44 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 6f 6e 63 65 20 esult.of.PRED...Otherwise,.once.
8d20 61 6e 0a 69 74 65 6d 20 69 73 20 72 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 an.item.is.reached.for.which.PRE
8d40 44 20 72 65 74 75 72 6e 73 20 6e 69 6c 2c 20 72 65 74 75 72 6e 20 6e 69 6c 20 77 69 74 68 6f 75 D.returns.nil,.return.nil.withou
8d60 74 0a 63 61 6c 6c 69 6e 67 20 50 52 45 44 20 6f 6e 20 61 6e 79 20 66 75 72 74 68 65 72 20 4c 49 t.calling.PRED.on.any.further.LI
8d80 53 54 20 65 6c 65 6d 65 6e 74 73 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6c ST.elements...This.function.is.l
8da0 69 6b 65 20 60 2d 65 76 65 72 79 2d 70 27 2c 20 62 75 74 20 6f 6e 20 73 75 63 63 65 73 73 20 72 ike.`-every-p',.but.on.success.r
8dc0 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 0a 6e 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 20 6f eturns.the.last.non-nil.result.o
8de0 66 20 50 52 45 44 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20 74 2e 0a 0a 54 68 69 73 20 f.PRED.instead.of.just.t...This.
8e00 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 function's.anaphoric.counterpart
8e20 20 69 73 20 60 2d 2d 65 76 65 72 79 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f .is.`--every'."...(declare.(impo
8e40 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 65 76 65 72 rtant-return-value.t))...(--ever
8e60 79 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 y.(funcall.pred.it).list))..(def
8e80 6d 61 63 72 6f 20 2d 2d 6c 61 73 74 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 macro.--last.(form.list)..."Anap
8ea0 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 6c 61 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 horic.form.of.`-last'."...(decla
8ec0 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 re.(debug.(form.form)))...(let.(
8ee0 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 65 65 64 6c 65 22 29 29 29 0a 20 20 20 20 (n.(make-symbol."needle"))).....
8f00 60 28 6c 65 74 20 28 2c 6e 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 0a `(let.(,n)........(--each.,list.
8f20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 2c 66 6f 72 6d 20 28 73 65 74 71 20 2c 6e 20 69 74 .........(when.,form.(setq.,n.it
8f40 29 29 29 0a 20 20 20 20 20 20 20 2c 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6c 61 73 74 20 28 )))........,n)))..(defun.-last.(
8f60 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 78 20 pred.list)..."Return.the.last.x.
8f80 69 6e 20 4c 49 53 54 20 77 68 65 72 65 20 28 50 52 45 44 20 78 29 20 69 73 20 6e 6f 6e 2d 6e 69 in.LIST.where.(PRED.x).is.non-ni
8fa0 6c 2c 20 65 6c 73 65 20 6e 69 6c 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 l,.else.nil."...(declare.(import
8fc0 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 6c 61 73 74 20 28 ant-return-value.t))...(--last.(
8fe0 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 6c 69 funcall.pred.it).list))..(defali
9000 61 73 20 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 23 27 63 61 72 0a 20 20 22 52 65 74 75 72 6e 20 as.'-first-item.#'car..."Return.
9020 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 6e 69 6c 20 6f the.first.item.of.LIST,.or.nil.o
9040 6e 20 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 73 65 n.an.empty.list...See.also:.`-se
9060 63 6f 6e 64 2d 69 74 65 6d 27 2c 20 60 2d 6c 61 73 74 2d 69 74 65 6d 27 2c 20 65 74 63 2e 0a 0a cond-item',.`-last-item',.etc...
9080 5c 28 66 6e 20 4c 49 53 54 29 22 29 0a 0a 3b 3b 20 45 6e 73 75 72 65 20 74 68 61 74 20 63 61 6c \(fn.LIST)")..;;.Ensure.that.cal
90a0 6c 73 20 74 6f 20 60 2d 66 69 72 73 74 2d 69 74 65 6d 27 20 61 72 65 20 63 6f 6d 70 69 6c 65 64 ls.to.`-first-item'.are.compiled
90c0 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 6f 70 63 6f 64 65 2c 0a 3b 3b 20 6a 75 73 74 20 6c 69 6b .to.a.single.opcode,.;;.just.lik
90e0 65 20 60 63 61 72 27 2e 0a 28 70 75 74 20 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 27 62 79 74 65 e.`car'..(put.'-first-item.'byte
9100 2d 6f 70 63 6f 64 65 20 27 62 79 74 65 2d 63 61 72 29 0a 28 70 75 74 20 27 2d 66 69 72 73 74 2d -opcode.'byte-car).(put.'-first-
9120 69 74 65 6d 20 27 62 79 74 65 2d 63 6f 6d 70 69 6c 65 20 27 62 79 74 65 2d 63 6f 6d 70 69 6c 65 item.'byte-compile.'byte-compile
9140 2d 6f 6e 65 2d 61 72 67 29 0a 28 70 75 74 20 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 27 70 75 72 -one-arg).(put.'-first-item.'pur
9160 65 20 74 29 0a 28 70 75 74 20 27 2d 66 69 72 73 74 2d 69 74 65 6d 20 27 73 69 64 65 2d 65 66 66 e.t).(put.'-first-item.'side-eff
9180 65 63 74 2d 66 72 65 65 20 74 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 73 65 63 6f 6e 64 2d ect-free.t)..(defalias.'-second-
91a0 69 74 65 6d 20 23 27 63 61 64 72 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 65 63 6f 6e 64 item.#'cadr..."Return.the.second
91c0 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 6e 69 6c 20 69 66 20 4c 49 53 54 20 69 73 .item.of.LIST,.or.nil.if.LIST.is
91e0 20 74 6f 6f 20 73 68 6f 72 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 66 69 72 73 74 2d 69 .too.short...See.also:.`-first-i
9200 74 65 6d 27 2c 20 60 2d 74 68 69 72 64 2d 69 74 65 6d 27 2c 20 65 74 63 2e 0a 0a 5c 28 66 6e 20 tem',.`-third-item',.etc...\(fn.
9220 4c 49 53 54 29 22 29 0a 0a 28 70 75 74 20 27 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 20 27 70 75 72 LIST)")..(put.'-second-item.'pur
9240 65 20 74 29 0a 28 70 75 74 20 27 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 20 27 73 69 64 65 2d 65 66 e.t).(put.'-second-item.'side-ef
9260 66 65 63 74 2d 66 72 65 65 20 74 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 74 68 69 72 64 2d fect-free.t)..(defalias.'-third-
9280 69 74 65 6d 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 61 64 64 72 29 0a 20 20 20 20 item...(if.(fboundp.'caddr).....
92a0 20 20 23 27 63 61 64 64 72 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6c 69 73 74 29 20 28 63 61 ..#'caddr.....(lambda.(list).(ca
92c0 72 20 28 63 64 64 72 20 6c 69 73 74 29 29 29 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 74 r.(cddr.list))))..."Return.the.t
92e0 68 69 72 64 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 6e 69 6c 20 69 66 20 4c 49 53 hird.item.of.LIST,.or.nil.if.LIS
9300 54 20 69 73 20 74 6f 6f 20 73 68 6f 72 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 73 65 63 T.is.too.short...See.also:.`-sec
9320 6f 6e 64 2d 69 74 65 6d 27 2c 20 60 2d 66 6f 75 72 74 68 2d 69 74 65 6d 27 2c 20 65 74 63 2e 0a ond-item',.`-fourth-item',.etc..
9340 0a 5c 28 66 6e 20 4c 49 53 54 29 22 29 0a 0a 28 70 75 74 20 27 2d 74 68 69 72 64 2d 69 74 65 6d .\(fn.LIST)")..(put.'-third-item
9360 20 27 70 75 72 65 20 74 29 0a 28 70 75 74 20 27 2d 74 68 69 72 64 2d 69 74 65 6d 20 27 73 69 64 .'pure.t).(put.'-third-item.'sid
9380 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 66 6f e-effect-free.t)..(defalias.'-fo
93a0 75 72 74 68 2d 69 74 65 6d 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 61 64 64 64 72 urth-item...(if.(fboundp.'cadddr
93c0 29 0a 20 20 20 20 20 20 23 27 63 61 64 64 64 72 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6c 69 ).......#'cadddr.....(lambda.(li
93e0 73 74 29 20 28 63 61 64 72 20 28 63 64 64 72 20 6c 69 73 74 29 29 29 29 0a 20 20 22 52 65 74 75 st).(cadr.(cddr.list))))..."Retu
9400 72 6e 20 74 68 65 20 66 6f 75 72 74 68 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 6e rn.the.fourth.item.of.LIST,.or.n
9420 69 6c 20 69 66 20 4c 49 53 54 20 69 73 20 74 6f 6f 20 73 68 6f 72 74 2e 0a 0a 53 65 65 20 61 6c il.if.LIST.is.too.short...See.al
9440 73 6f 3a 20 60 2d 74 68 69 72 64 2d 69 74 65 6d 27 2c 20 60 2d 66 69 66 74 68 2d 69 74 65 6d 27 so:.`-third-item',.`-fifth-item'
9460 2c 20 65 74 63 2e 0a 0a 5c 28 66 6e 20 4c 49 53 54 29 22 29 0a 0a 28 70 75 74 20 27 2d 66 6f 75 ,.etc...\(fn.LIST)")..(put.'-fou
9480 72 74 68 2d 69 74 65 6d 20 27 70 75 72 65 20 74 29 0a 28 70 75 74 20 27 2d 66 6f 75 72 74 68 2d rth-item.'pure.t).(put.'-fourth-
94a0 69 74 65 6d 20 27 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 0a 0a 28 64 65 66 75 item.'side-effect-free.t)..(defu
94c0 6e 20 2d 66 69 66 74 68 2d 69 74 65 6d 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 n.-fifth-item.(list)..."Return.t
94e0 68 65 20 66 69 66 74 68 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 6e 69 6c 20 69 66 he.fifth.item.of.LIST,.or.nil.if
9500 20 4c 49 53 54 20 69 73 20 74 6f 6f 20 73 68 6f 72 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 .LIST.is.too.short...See.also:.`
9520 2d 66 6f 75 72 74 68 2d 69 74 65 6d 27 2c 20 60 2d 6c 61 73 74 2d 69 74 65 6d 27 2c 20 65 74 63 -fourth-item',.`-last-item',.etc
9540 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 ."...(declare.(pure.t).(side-eff
9560 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 63 61 72 20 28 63 64 64 72 20 28 63 64 64 72 20 ect-free.t))...(car.(cddr.(cddr.
9580 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6c 61 73 74 2d 69 74 65 6d 20 28 6c 69 73 list))))..(defun.-last-item.(lis
95a0 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 6f 66 20 4c 49 t)..."Return.the.last.item.of.LI
95c0 53 54 2c 20 6f 72 20 6e 69 6c 20 6f 6e 20 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 2e 0a 0a 53 65 ST,.or.nil.on.an.empty.list...Se
95e0 65 20 61 6c 73 6f 3a 20 60 2d 66 69 72 73 74 2d 69 74 65 6d 27 2c 20 65 74 63 2e 22 0a 20 20 28 e.also:.`-first-item',.etc."...(
9600 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 declare.(pure.t).(side-effect-fr
9620 65 65 20 74 29 29 0a 20 20 28 63 61 72 20 28 6c 61 73 74 20 6c 69 73 74 29 29 29 0a 0a 3b 3b 20 ee.t))...(car.(last.list)))..;;.
9640 55 73 65 20 60 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 27 20 74 6f 20 73 75 70 70 72 65 Use.`with-no-warnings'.to.suppre
9660 73 73 20 75 6e 62 6f 75 6e 64 20 60 2d 6c 61 73 74 2d 69 74 65 6d 27 20 6f 72 0a 3b 3b 20 75 6e ss.unbound.`-last-item'.or.;;.un
9680 64 65 66 69 6e 65 64 20 60 67 76 2d 2d 64 65 66 73 65 74 74 65 72 27 20 77 61 72 6e 69 6e 67 73 defined.`gv--defsetter'.warnings
96a0 20 61 72 69 73 69 6e 67 20 66 72 6f 6d 20 62 6f 74 68 0a 3b 3b 20 60 67 76 2d 64 65 66 69 6e 65 .arising.from.both.;;.`gv-define
96c0 2d 73 65 74 74 65 72 27 20 61 6e 64 20 60 64 65 66 73 65 74 66 27 20 69 6e 20 63 65 72 74 61 69 -setter'.and.`defsetf'.in.certai
96e0 6e 20 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 73 2e 0a 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 n.Emacs.versions..(with-no-warni
9700 6e 67 73 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 67 76 2d 64 65 66 69 6e 65 2d 73 65 ngs...(if.(fboundp.'gv-define-se
9720 74 74 65 72 29 0a 20 20 20 20 20 20 28 67 76 2d 64 65 66 69 6e 65 2d 73 65 74 74 65 72 20 2d 6c tter).......(gv-define-setter.-l
9740 61 73 74 2d 69 74 65 6d 20 28 76 61 6c 20 78 29 20 60 28 73 65 74 63 61 72 20 28 6c 61 73 74 20 ast-item.(val.x).`(setcar.(last.
9760 2c 78 29 20 2c 76 61 6c 29 29 0a 20 20 20 20 28 64 65 66 73 65 74 66 20 2d 6c 61 73 74 2d 69 74 ,x).,val)).....(defsetf.-last-it
9780 65 6d 20 28 78 29 20 28 76 61 6c 29 20 60 28 73 65 74 63 61 72 20 28 6c 61 73 74 20 2c 78 29 20 em.(x).(val).`(setcar.(last.,x).
97a0 2c 76 61 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 62 75 74 6c 61 73 74 20 28 6c 69 73 74 29 ,val))))..(defun.-butlast.(list)
97c0 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 69 74 65 6d 73 20 69 ..."Return.a.list.of.all.items.i
97e0 6e 20 6c 69 73 74 20 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 6c 61 73 74 2e 22 0a 20 20 3b n.list.except.for.the.last."...;
9800 3b 20 6e 6f 20 61 6c 69 61 73 20 61 73 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 6d 61 67 69 ;.no.alias.as.we.don't.want.magi
9820 63 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 0a 20 20 28 64 65 63 6c 61 72 65 20 28 c.optional.argument...(declare.(
9840 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 pure.t).(side-effect-free.t))...
9860 28 62 75 74 6c 61 73 74 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 63 6f 75 (butlast.list))..(defmacro.--cou
9880 6e 74 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d nt.(pred.list)..."Anaphoric.form
98a0 20 6f 66 20 60 2d 63 6f 75 6e 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 .of.`-count'."...(declare.(debug
98c0 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 20 28 6d 61 6b 65 2d .(form.form)))...(let.((r.(make-
98e0 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c symbol."result"))).....`(let.((,
9900 72 20 30 29 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 20 28 77 68 65 6e r.0))........(--each.,list.(when
9920 20 2c 70 72 65 64 20 28 73 65 74 71 20 2c 72 20 28 31 2b 20 2c 72 29 29 29 29 0a 20 20 20 20 20 .,pred.(setq.,r.(1+.,r))))......
9940 20 20 2c 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f 75 6e 74 20 28 70 72 65 64 20 6c 69 73 ..,r)))..(defun.-count.(pred.lis
9960 74 29 0a 20 20 22 43 6f 75 6e 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 6d 73 t)..."Counts.the.number.of.items
9980 20 69 6e 20 4c 49 53 54 20 77 68 65 72 65 20 28 50 52 45 44 20 69 74 65 6d 29 20 69 73 20 6e 6f .in.LIST.where.(PRED.item).is.no
99a0 6e 2d 6e 69 6c 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 n-nil."...(declare.(important-re
99c0 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 63 6f 75 6e 74 20 28 66 75 6e 63 61 turn-value.t))...(--count.(funca
99e0 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 2d 2d 74 72 ll.pred.it).list))..(defun.---tr
9a00 75 74 68 79 3f 20 28 6f 62 6a 29 0a 20 20 22 52 65 74 75 72 6e 20 4f 42 4a 20 61 73 20 61 20 62 uthy?.(obj)..."Return.OBJ.as.a.b
9a20 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 20 28 74 20 6f 72 20 6e 69 6c 29 2e 22 0a 20 20 28 64 65 63 oolean.value.(t.or.nil)."...(dec
9a40 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 lare.(pure.t).(side-effect-free.
9a60 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 61 6e 64 20 6f 62 6a 20 74 29 29 0a 0a 28 64 65 error-free))...(and.obj.t))..(de
9a80 66 6d 61 63 72 6f 20 2d 2d 61 6e 79 3f 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 fmacro.--any?.(form.list)..."Ana
9aa0 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 61 6e 79 3f 27 2e 22 0a 20 20 28 64 65 63 6c phoric.form.of.`-any?'."...(decl
9ac0 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 61 6e 64 are.(debug.(form.form)))...`(and
9ae0 20 28 2d 2d 73 6f 6d 65 20 2c 66 6f 72 6d 20 2c 6c 69 73 74 29 20 74 29 29 0a 0a 28 64 65 66 75 .(--some.,form.,list).t))..(defu
9b00 6e 20 2d 61 6e 79 3f 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 n.-any?.(pred.list)..."Return.t.
9b20 69 66 20 28 50 52 45 44 20 58 29 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 61 6e 79 20 58 if.(PRED.X).is.non-nil.for.any.X
9b40 20 69 6e 20 4c 49 53 54 2c 20 65 6c 73 65 20 6e 69 6c 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 61 6e .in.LIST,.else.nil...Alias:.`-an
9b60 79 2d 70 27 2c 20 60 2d 73 6f 6d 65 3f 27 2c 20 60 2d 73 6f 6d 65 2d 70 27 22 0a 20 20 28 64 65 y-p',.`-some?',.`-some-p'"...(de
9b80 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 clare.(important-return-value.t)
9ba0 29 0a 20 20 28 2d 2d 61 6e 79 3f 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 )...(--any?.(funcall.pred.it).li
9bc0 73 74 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 73 6f 6d 65 3f 20 27 2d 61 6e 79 3f 29 0a st))..(defalias.'-some?.'-any?).
9be0 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 73 6f 6d 65 3f 20 27 2d 2d 61 6e 79 3f 29 0a 28 64 65 66 (defalias.'--some?.'--any?).(def
9c00 61 6c 69 61 73 20 27 2d 61 6e 79 2d 70 20 27 2d 61 6e 79 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 alias.'-any-p.'-any?).(defalias.
9c20 27 2d 2d 61 6e 79 2d 70 20 27 2d 2d 61 6e 79 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 73 6f '--any-p.'--any?).(defalias.'-so
9c40 6d 65 2d 70 20 27 2d 61 6e 79 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 73 6f 6d 65 2d 70 me-p.'-any?).(defalias.'--some-p
9c60 20 27 2d 2d 61 6e 79 3f 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 61 6c 6c 3f 20 28 66 6f 72 .'--any?)..(defmacro.--all?.(for
9c80 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 46 4f 52 4d 20 65 76 61 6c m.list)..."Return.t.if.FORM.eval
9ca0 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 61 6c 6c 20 69 74 65 6d 73 20 69 6e 20 4c 49 s.to.non-nil.for.all.items.in.LI
9cc0 53 54 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20 6f 6e 63 65 20 61 6e 20 69 74 65 6d 20 69 73 20 72 ST..Otherwise,.once.an.item.is.r
9ce0 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 79 69 65 6c 64 73 20 6e 69 6c eached.for.which.FORM.yields.nil
9d00 2c 0a 72 65 74 75 72 6e 20 6e 69 6c 20 77 69 74 68 6f 75 74 20 65 76 61 6c 75 61 74 69 6e 67 20 ,.return.nil.without.evaluating.
9d20 46 4f 52 4d 20 66 6f 72 20 61 6e 79 20 66 75 72 74 68 65 72 20 4c 49 53 54 20 65 6c 65 6d 65 6e FORM.for.any.further.LIST.elemen
9d40 74 73 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e ts..Each.element.of.LIST.in.turn
9d60 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a .is.bound.to.`it'.and.its.index.
9d80 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 within.LIST.to.`it-index'.before
9da0 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 0a 54 68 65 20 73 69 6d 69 6c 61 72 20 6d .evaluating.FORM...The.similar.m
9dc0 61 63 72 6f 20 60 2d 2d 65 76 65 72 79 27 20 69 73 20 6d 6f 72 65 20 77 69 64 65 6c 79 20 75 73 acro.`--every'.is.more.widely.us
9de0 65 66 75 6c 2c 20 73 69 6e 63 65 20 69 74 0a 72 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 20 eful,.since.it.returns.the.last.
9e00 6e 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 20 6f 66 20 46 4f 52 4d 20 69 6e 73 74 65 61 64 20 6f non-nil.result.of.FORM.instead.o
9e20 66 20 6a 75 73 74 20 74 20 6f 6e 0a 73 75 63 63 65 73 73 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 2d f.just.t.on.success...Alias:.`--
9e40 61 6c 6c 2d 70 27 2c 20 60 2d 2d 65 76 65 72 79 2d 70 27 2c 20 60 2d 2d 65 76 65 72 79 3f 27 2e all-p',.`--every-p',.`--every?'.
9e60 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 ..This.is.the.anaphoric.counterp
9e80 61 72 74 20 74 6f 20 60 2d 61 6c 6c 3f 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 art.to.`-all?'."...(declare.(deb
9ea0 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 61 6e 64 20 28 2d 2d 65 76 65 72 ug.(form.form)))...`(and.(--ever
9ec0 79 20 2c 66 6f 72 6d 20 2c 6c 69 73 74 29 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 61 6c 6c 3f y.,form.,list).t))..(defun.-all?
9ee0 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 28 50 52 45 .(pred.list)..."Return.t.if.(PRE
9f00 44 20 58 29 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 61 6c 6c 20 58 20 69 6e 20 4c 49 53 D.X).is.non-nil.for.all.X.in.LIS
9f20 54 2c 20 65 6c 73 65 20 6e 69 6c 2e 0a 49 6e 20 74 68 65 20 6c 61 74 74 65 72 20 63 61 73 65 2c T,.else.nil..In.the.latter.case,
9f40 20 73 74 6f 70 20 61 66 74 65 72 20 74 68 65 20 66 69 72 73 74 20 58 20 66 6f 72 20 77 68 69 63 .stop.after.the.first.X.for.whic
9f60 68 20 28 50 52 45 44 20 58 29 20 69 73 0a 6e 69 6c 2c 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 h.(PRED.X).is.nil,.without.calli
9f80 6e 67 20 50 52 45 44 20 6f 6e 20 61 6e 79 20 73 75 62 73 65 71 75 65 6e 74 20 65 6c 65 6d 65 6e ng.PRED.on.any.subsequent.elemen
9fa0 74 73 20 6f 66 20 4c 49 53 54 2e 0a 0a 54 68 65 20 73 69 6d 69 6c 61 72 20 66 75 6e 63 74 69 6f ts.of.LIST...The.similar.functio
9fc0 6e 20 60 2d 65 76 65 72 79 27 20 69 73 20 6d 6f 72 65 20 77 69 64 65 6c 79 20 75 73 65 66 75 6c n.`-every'.is.more.widely.useful
9fe0 2c 20 73 69 6e 63 65 20 69 74 0a 72 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 20 6e 6f 6e 2d ,.since.it.returns.the.last.non-
a000 6e 69 6c 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 nil.result.of.PRED.instead.of.ju
a020 73 74 20 74 20 6f 6e 0a 73 75 63 63 65 73 73 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 61 6c 6c 2d 70 st.t.on.success...Alias:.`-all-p
a040 27 2c 20 60 2d 65 76 65 72 79 2d 70 27 2c 20 60 2d 65 76 65 72 79 3f 27 2e 0a 0a 54 68 69 73 20 ',.`-every-p',.`-every?'...This.
a060 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 function's.anaphoric.counterpart
a080 20 69 73 20 60 2d 2d 61 6c 6c 3f 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 .is.`--all?'."...(declare.(impor
a0a0 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 61 6c 6c 3f 20 tant-return-value.t))...(--all?.
a0c0 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 6c (funcall.pred.it).list))..(defal
a0e0 69 61 73 20 27 2d 65 76 65 72 79 3f 20 27 2d 61 6c 6c 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 ias.'-every?.'-all?).(defalias.'
a100 2d 2d 65 76 65 72 79 3f 20 27 2d 2d 61 6c 6c 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 61 6c --every?.'--all?).(defalias.'-al
a120 6c 2d 70 20 27 2d 61 6c 6c 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 61 6c 6c 2d 70 20 27 l-p.'-all?).(defalias.'--all-p.'
a140 2d 2d 61 6c 6c 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 65 76 65 72 79 2d 70 20 27 2d 61 6c --all?).(defalias.'-every-p.'-al
a160 6c 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 65 76 65 72 79 2d 70 20 27 2d 2d 61 6c 6c 3f l?).(defalias.'--every-p.'--all?
a180 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 6e 6f 6e 65 3f 20 28 66 6f 72 6d 20 6c 69 73 74 29 )..(defmacro.--none?.(form.list)
a1a0 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 6e 6f 6e 65 3f 27 2e 22 ..."Anaphoric.form.of.`-none?'."
a1c0 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 ...(declare.(debug.(form.form)))
a1e0 0a 20 20 60 28 2d 2d 61 6c 6c 3f 20 28 6e 6f 74 20 2c 66 6f 72 6d 29 20 2c 6c 69 73 74 29 29 0a ...`(--all?.(not.,form).,list)).
a200 0a 28 64 65 66 75 6e 20 2d 6e 6f 6e 65 3f 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 .(defun.-none?.(pred.list)..."Re
a220 74 75 72 6e 20 74 20 69 66 20 28 50 52 45 44 20 58 29 20 69 73 20 6e 69 6c 20 66 6f 72 20 61 6c turn.t.if.(PRED.X).is.nil.for.al
a240 6c 20 58 20 69 6e 20 4c 49 53 54 2c 20 65 6c 73 65 20 6e 69 6c 2e 0a 0a 41 6c 69 61 73 3a 20 60 l.X.in.LIST,.else.nil...Alias:.`
a260 2d 6e 6f 6e 65 2d 70 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d -none-p'"...(declare.(important-
a280 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 6e 6f 6e 65 3f 20 28 66 75 6e return-value.t))...(--none?.(fun
a2a0 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 call.pred.it).list))..(defalias.
a2c0 27 2d 6e 6f 6e 65 2d 70 20 27 2d 6e 6f 6e 65 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 6e '-none-p.'-none?).(defalias.'--n
a2e0 6f 6e 65 2d 70 20 27 2d 2d 6e 6f 6e 65 3f 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 6f 6e 6c one-p.'--none?)..(defmacro.--onl
a300 79 2d 73 6f 6d 65 3f 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 y-some?.(form.list)..."Anaphoric
a320 20 66 6f 72 6d 20 6f 66 20 60 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 27 2e 22 0a 20 20 28 64 65 63 6c .form.of.`-only-some?'."...(decl
a340 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 are.(debug.(form.form)))...(let.
a360 28 28 79 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 79 65 73 22 29 29 0a 20 20 20 20 20 20 20 ((y.(make-symbol."yes"))........
a380 20 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 6f 22 29 29 29 0a 20 20 20 20 60 28 6c .(n.(make-symbol."no"))).....`(l
a3a0 65 74 20 28 2c 79 20 2c 6e 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 et.(,y.,n)........(--each-while.
a3c0 2c 6c 69 73 74 20 28 6e 6f 74 20 28 61 6e 64 20 2c 79 20 2c 6e 29 29 0a 20 20 20 20 20 20 20 20 ,list.(not.(and.,y.,n)).........
a3e0 20 28 69 66 20 2c 66 6f 72 6d 20 28 73 65 74 71 20 2c 79 20 74 29 20 28 73 65 74 71 20 2c 6e 20 .(if.,form.(setq.,y.t).(setq.,n.
a400 74 29 29 29 0a 20 20 20 20 20 20 20 28 2d 2d 2d 74 72 75 74 68 79 3f 20 28 61 6e 64 20 2c 79 20 t)))........(---truthy?.(and.,y.
a420 2c 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 20 28 70 72 65 ,n)))))..(defun.-only-some?.(pre
a440 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 64 69 66 66 65 72 65 6e 74 d.list)..."Return.t.if.different
a460 20 4c 49 53 54 20 69 74 65 6d 73 20 62 6f 74 68 20 73 61 74 69 73 66 79 20 61 6e 64 20 64 6f 20 .LIST.items.both.satisfy.and.do.
a480 6e 6f 74 20 73 61 74 69 73 66 79 20 50 52 45 44 2e 0a 54 68 61 74 20 69 73 2c 20 69 66 20 50 52 not.satisfy.PRED..That.is,.if.PR
a4a0 45 44 20 72 65 74 75 72 6e 73 20 62 6f 74 68 20 6e 69 6c 20 66 6f 72 20 61 74 20 6c 65 61 73 74 ED.returns.both.nil.for.at.least
a4c0 20 6f 6e 65 20 69 74 65 6d 2c 20 61 6e 64 0a 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 61 74 20 6c 65 .one.item,.and.non-nil.for.at.le
a4e0 61 73 74 20 6f 6e 65 20 6f 74 68 65 72 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2e 20 20 52 65 74 ast.one.other.item.in.LIST...Ret
a500 75 72 6e 20 6e 69 6c 20 69 66 20 61 6c 6c 0a 69 74 65 6d 73 20 73 61 74 69 73 66 79 20 74 68 65 urn.nil.if.all.items.satisfy.the
a520 20 70 72 65 64 69 63 61 74 65 20 6f 72 20 6e 6f 6e 65 20 6f 66 20 74 68 65 6d 20 64 6f 2e 0a 0a .predicate.or.none.of.them.do...
a540 41 6c 69 61 73 3a 20 60 2d 6f 6e 6c 79 2d 73 6f 6d 65 2d 70 27 22 0a 20 20 28 64 65 63 6c 61 72 Alias:.`-only-some-p'"...(declar
a560 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 e.(important-return-value.t))...
a580 28 2d 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 (--only-some?.(funcall.pred.it).
a5a0 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 6f 6e 6c 79 2d 73 6f 6d 65 2d 70 20 list))..(defalias.'-only-some-p.
a5c0 27 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 2d 6f 6e 6c 79 2d '-only-some?).(defalias.'--only-
a5e0 73 6f 6d 65 2d 70 20 27 2d 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 29 0a 0a 28 64 65 66 75 6e 20 2d 73 some-p.'--only-some?)..(defun.-s
a600 6c 69 63 65 20 28 6c 69 73 74 20 66 72 6f 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 74 6f 20 73 74 65 lice.(list.from.&optional.to.ste
a620 70 29 0a 20 20 22 52 65 74 75 72 6e 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 2c 20 73 74 61 72 74 p)..."Return.copy.of.LIST,.start
a640 69 6e 67 20 66 72 6f 6d 20 69 6e 64 65 78 20 46 52 4f 4d 20 74 6f 20 69 6e 64 65 78 20 54 4f 2e ing.from.index.FROM.to.index.TO.
a660 0a 0a 46 52 4f 4d 20 6f 72 20 54 4f 20 6d 61 79 20 62 65 20 6e 65 67 61 74 69 76 65 2e 20 20 54 ..FROM.or.TO.may.be.negative...T
a680 68 65 73 65 20 76 61 6c 75 65 73 20 61 72 65 20 74 68 65 6e 20 69 6e 74 65 72 70 72 65 74 65 64 hese.values.are.then.interpreted
a6a0 0a 6d 6f 64 75 6c 6f 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6c 69 73 74 2e 0a .modulo.the.length.of.the.list..
a6c0 0a 49 66 20 53 54 45 50 20 69 73 20 61 20 6e 75 6d 62 65 72 2c 20 6f 6e 6c 79 20 65 61 63 68 20 .If.STEP.is.a.number,.only.each.
a6e0 53 54 45 50 74 68 20 69 74 65 6d 20 69 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 0a 73 65 63 STEPth.item.in.the.resulting.sec
a700 74 69 6f 6e 20 69 73 20 72 65 74 75 72 6e 65 64 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 31 tion.is.returned...Defaults.to.1
a720 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 ."...(declare.(side-effect-free.
a740 74 29 29 0a 20 20 28 6c 65 74 20 28 28 6c 65 6e 67 74 68 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 t))...(let.((length.(length.list
a760 29 29 0a 20 20 20 20 20 20 20 20 28 6e 65 77 2d 6c 69 73 74 20 6e 69 6c 29 29 0a 20 20 20 20 3b )).........(new-list.nil)).....;
a780 3b 20 74 6f 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 ;.to.defaults.to.the.end.of.the.
a7a0 6c 69 73 74 0a 20 20 20 20 28 73 65 74 71 20 74 6f 20 28 6f 72 20 74 6f 20 6c 65 6e 67 74 68 29 list.....(setq.to.(or.to.length)
a7c0 29 0a 20 20 20 20 28 73 65 74 71 20 73 74 65 70 20 28 6f 72 20 73 74 65 70 20 31 29 29 0a 20 20 ).....(setq.step.(or.step.1))...
a7e0 20 20 3b 3b 20 68 61 6e 64 6c 65 20 6e 65 67 61 74 69 76 65 20 69 6e 64 69 63 65 73 0a 20 20 20 ..;;.handle.negative.indices....
a800 20 28 77 68 65 6e 20 28 3c 20 66 72 6f 6d 20 30 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 72 .(when.(<.from.0).......(setq.fr
a820 6f 6d 20 28 6d 6f 64 20 66 72 6f 6d 20 6c 65 6e 67 74 68 29 29 29 0a 20 20 20 20 28 77 68 65 6e om.(mod.from.length))).....(when
a840 20 28 3c 20 74 6f 20 30 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 20 28 6d 6f 64 20 74 6f .(<.to.0).......(setq.to.(mod.to
a860 20 6c 65 6e 67 74 68 29 29 29 0a 0a 20 20 20 20 3b 3b 20 69 74 65 72 61 74 65 20 74 68 72 6f 75 .length)))......;;.iterate.throu
a880 67 68 20 74 68 65 20 6c 69 73 74 2c 20 6b 65 65 70 69 6e 67 20 74 68 65 20 65 6c 65 6d 65 6e 74 gh.the.list,.keeping.the.element
a8a0 73 20 77 65 20 77 61 6e 74 0a 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 6c 69 73 74 s.we.want.....(--each-while.list
a8c0 20 28 3c 20 69 74 2d 69 6e 64 65 78 20 74 6f 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e .(<.it-index.to).......(when.(an
a8e0 64 20 28 3e 3d 20 69 74 2d 69 6e 64 65 78 20 66 72 6f 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 d.(>=.it-index.from)............
a900 20 20 20 20 20 20 28 3d 20 28 6d 6f 64 20 28 2d 20 66 72 6f 6d 20 69 74 2d 69 6e 64 65 78 29 20 ......(=.(mod.(-.from.it-index).
a920 73 74 65 70 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 69 74 20 6e 65 77 2d 6c step).0)).........(push.it.new-l
a940 69 73 74 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 6e 65 77 2d 6c 69 73 74 29 29 29 ist))).....(nreverse.new-list)))
a960 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 74 61 6b 65 2d 77 68 69 6c 65 20 28 66 6f 72 6d 20 6c ..(defmacro.--take-while.(form.l
a980 69 73 74 29 0a 20 20 22 54 61 6b 65 20 73 75 63 63 65 73 73 69 76 65 20 69 74 65 6d 73 20 66 72 ist)..."Take.successive.items.fr
a9a0 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 74 6f 20 om.LIST.for.which.FORM.evals.to.
a9c0 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e non-nil..Each.element.of.LIST.in
a9e0 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 .turn.is.bound.to.`it'.and.its.i
aa00 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 ndex.within.LIST.to.`it-index'.b
aa20 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 20 20 52 65 74 75 72 6e 20 61 efore.evaluating.FORM...Return.a
aa40 20 6e 65 77 0a 6c 69 73 74 20 6f 66 20 74 68 65 20 73 75 63 63 65 73 73 69 76 65 20 65 6c 65 6d .new.list.of.the.successive.elem
aa60 65 6e 74 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 4c 49 53 54 20 66 6f 72 20 ents.from.the.start.of.LIST.for.
aa80 77 68 69 63 68 0a 46 4f 52 4d 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e which.FORM.evaluates.to.non-nil.
aaa0 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 .This.is.the.anaphoric.counterpa
aac0 72 74 20 74 6f 20 60 2d 74 61 6b 65 2d 77 68 69 6c 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 rt.to.`-take-while'."...(declare
aae0 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 .(debug.(form.form)))...(let.((r
ab00 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 60 28 .(make-symbol."result"))).....`(
ab20 6c 65 74 20 28 2c 72 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 2c 6c let.(,r)........(--each-while.,l
ab40 69 73 74 20 2c 66 6f 72 6d 20 28 70 75 73 68 20 69 74 20 2c 72 29 29 0a 20 20 20 20 20 20 20 28 ist.,form.(push.it.,r))........(
ab60 6e 72 65 76 65 72 73 65 20 2c 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 61 6b 65 2d 77 68 nreverse.,r))))..(defun.-take-wh
ab80 69 6c 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 54 61 6b 65 20 73 75 63 63 65 73 73 69 ile.(pred.list)..."Take.successi
aba0 76 65 20 69 74 65 6d 73 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 ve.items.from.LIST.for.which.PRE
abc0 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 50 52 45 44 20 69 73 20 61 20 66 75 6e D.returns.non-nil..PRED.is.a.fun
abe0 63 74 69 6f 6e 20 6f 66 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2e 20 20 52 65 74 75 72 6e 20 61 ction.of.one.argument...Return.a
ac00 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 0a 73 75 63 63 65 73 73 69 76 65 20 65 6c 65 6d .new.list.of.the.successive.elem
ac20 65 6e 74 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 4c 49 53 54 20 66 6f 72 20 ents.from.the.start.of.LIST.for.
ac40 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 0a 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 54 68 69 which.PRED.returns.non-nil...Thi
ac60 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 s.function's.anaphoric.counterpa
ac80 72 74 20 69 73 20 60 2d 2d 74 61 6b 65 2d 77 68 69 6c 65 27 2e 0a 0a 46 6f 72 20 61 6e 6f 74 68 rt.is.`--take-while'...For.anoth
aca0 65 72 20 76 61 72 69 61 6e 74 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 64 72 6f 70 2d 77 68 69 6c er.variant,.see.also.`-drop-whil
acc0 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 e'."...(declare.(important-retur
ace0 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 74 61 6b 65 2d 77 68 69 6c 65 20 28 66 75 6e n-value.t))...(--take-while.(fun
ad00 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 call.pred.it).list))..(defmacro.
ad20 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 44 72 6f 70 --drop-while.(form.list)..."Drop
ad40 20 73 75 63 63 65 73 73 69 76 65 20 69 74 65 6d 73 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 .successive.items.from.LIST.for.
ad60 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 which.FORM.evals.to.non-nil..Eac
ad80 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 h.element.of.LIST.in.turn.is.bou
ada0 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 nd.to.`it'.and.its.index.within.
adc0 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 LIST.to.`it-index'.before.evalua
ade0 74 69 6e 67 20 46 4f 52 4d 2e 20 20 52 65 74 75 72 6e 20 74 68 65 0a 74 61 69 6c 20 28 6e 6f 74 ting.FORM...Return.the.tail.(not
ae00 20 61 20 63 6f 70 79 29 20 6f 66 20 4c 49 53 54 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 69 .a.copy).of.LIST.starting.from.i
ae20 74 73 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 66 6f 72 0a 77 68 69 63 68 20 46 4f 52 4d 20 ts.first.element.for.which.FORM.
ae40 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 69 6c 2e 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e evaluates.to.nil..This.is.the.an
ae60 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 64 72 6f 70 2d 77 68 aphoric.counterpart.to.`-drop-wh
ae80 69 6c 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 ile'."...(declare.(debug.(form.f
aea0 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 6c 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 orm)))...(let.((l.(make-symbol."
aec0 6c 69 73 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 6c 20 2c 6c 69 73 74 29 29 0a list"))).....`(let.((,l.,list)).
aee0 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 2c 6c 20 2c 66 6f 72 6d 20 28 70 .......(--each-while.,l.,form.(p
af00 6f 70 20 2c 6c 29 29 0a 20 20 20 20 20 20 20 2c 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 64 72 op.,l))........,l)))..(defun.-dr
af20 6f 70 2d 77 68 69 6c 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 44 72 6f 70 20 73 75 63 op-while.(pred.list)..."Drop.suc
af40 63 65 73 73 69 76 65 20 69 74 65 6d 73 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 cessive.items.from.LIST.for.whic
af60 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 50 52 45 44 20 69 73 20 h.PRED.returns.non-nil..PRED.is.
af80 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2e 20 20 52 65 74 a.function.of.one.argument...Ret
afa0 75 72 6e 20 74 68 65 20 74 61 69 6c 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 0a 6f 66 20 4c 49 53 urn.the.tail.(not.a.copy).of.LIS
afc0 54 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 69 74 73 20 66 69 72 73 74 20 65 6c 65 6d 65 6e T.starting.from.its.first.elemen
afe0 74 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 0a 6e 69 6c 2e 0a 0a 54 t.for.which.PRED.returns.nil...T
b000 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 his.function's.anaphoric.counter
b020 70 61 72 74 20 69 73 20 60 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 27 2e 0a 0a 46 6f 72 20 61 6e 6f part.is.`--drop-while'...For.ano
b040 74 68 65 72 20 76 61 72 69 61 6e 74 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 74 61 6b 65 2d 77 68 ther.variant,.see.also.`-take-wh
b060 69 6c 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 ile'."...(declare.(important-ret
b080 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 20 28 66 urn-value.t))...(--drop-while.(f
b0a0 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d uncall.pred.it).list))..(defun.-
b0c0 74 61 6b 65 20 28 6e 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f take.(n.list)..."Return.a.copy.o
b0e0 66 20 74 68 65 20 66 69 72 73 74 20 4e 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 2e 0a 52 65 74 f.the.first.N.items.in.LIST..Ret
b100 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 69 66 20 69 74 20 63 6f 6e 74 61 69 6e urn.a.copy.of.LIST.if.it.contain
b120 73 20 4e 20 69 74 65 6d 73 20 6f 72 20 66 65 77 65 72 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 s.N.items.or.fewer..Return.nil.i
b140 66 20 4e 20 69 73 20 7a 65 72 6f 20 6f 72 20 6c 65 73 73 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 f.N.is.zero.or.less...See.also:.
b160 60 2d 74 61 6b 65 2d 6c 61 73 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d `-take-last'."...(declare.(side-
b180 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d 74 61 6b 65 2d 77 68 69 6c 65 20 effect-free.t))...(--take-while.
b1a0 28 3c 20 69 74 2d 69 6e 64 65 78 20 6e 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 (<.it-index.n).list))..(defun.-t
b1c0 61 6b 65 2d 6c 61 73 74 20 28 6e 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f ake-last.(n.list)..."Return.a.co
b1e0 70 79 20 6f 66 20 74 68 65 20 6c 61 73 74 20 4e 20 69 74 65 6d 73 20 6f 66 20 4c 49 53 54 20 69 py.of.the.last.N.items.of.LIST.i
b200 6e 20 6f 72 64 65 72 2e 0a 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 69 n.order..Return.a.copy.of.LIST.i
b220 66 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 4e 20 69 74 65 6d 73 20 6f 72 20 66 65 77 65 72 2e 0a f.it.contains.N.items.or.fewer..
b240 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 4e 20 69 73 20 7a 65 72 6f 20 6f 72 20 6c 65 73 73 2e Return.nil.if.N.is.zero.or.less.
b260 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 74 61 6b 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 ..See.also:.`-take'."...(declare
b280 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 63 6f 70 79 2d 73 .(side-effect-free.t))...(copy-s
b2a0 65 71 75 65 6e 63 65 20 28 6c 61 73 74 20 6c 69 73 74 20 6e 29 29 29 0a 0a 28 64 65 66 61 6c 69 equence.(last.list.n)))..(defali
b2c0 61 73 20 27 2d 64 72 6f 70 20 23 27 6e 74 68 63 64 72 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 as.'-drop.#'nthcdr..."Return.the
b2e0 20 74 61 69 6c 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 20 6f 66 20 4c 49 53 54 20 77 69 74 68 6f .tail.(not.a.copy).of.LIST.witho
b300 75 74 20 74 68 65 20 66 69 72 73 74 20 4e 20 69 74 65 6d 73 2e 0a 52 65 74 75 72 6e 20 6e 69 6c ut.the.first.N.items..Return.nil
b320 20 69 66 20 4c 49 53 54 20 63 6f 6e 74 61 69 6e 73 20 4e 20 69 74 65 6d 73 20 6f 72 20 66 65 77 .if.LIST.contains.N.items.or.few
b340 65 72 2e 0a 52 65 74 75 72 6e 20 4c 49 53 54 20 69 66 20 4e 20 69 73 20 7a 65 72 6f 20 6f 72 20 er..Return.LIST.if.N.is.zero.or.
b360 6c 65 73 73 2e 0a 0a 46 6f 72 20 61 6e 6f 74 68 65 72 20 76 61 72 69 61 6e 74 2c 20 73 65 65 20 less...For.another.variant,.see.
b380 61 6c 73 6f 20 60 2d 64 72 6f 70 2d 6c 61 73 74 27 2e 0a 5c 6e 28 66 6e 20 4e 20 4c 49 53 54 29 also.`-drop-last'..\n(fn.N.LIST)
b3a0 22 29 0a 0a 28 64 65 66 75 6e 20 2d 64 72 6f 70 2d 6c 61 73 74 20 28 6e 20 6c 69 73 74 29 0a 20 ")..(defun.-drop-last.(n.list)..
b3c0 20 22 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 69 74 68 6f 75 74 20 ."Return.a.copy.of.LIST.without.
b3e0 69 74 73 20 6c 61 73 74 20 4e 20 69 74 65 6d 73 2e 0a 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 its.last.N.items..Return.a.copy.
b400 6f 66 20 4c 49 53 54 20 69 66 20 4e 20 69 73 20 7a 65 72 6f 20 6f 72 20 6c 65 73 73 2e 0a 52 65 of.LIST.if.N.is.zero.or.less..Re
b420 74 75 72 6e 20 6e 69 6c 20 69 66 20 4c 49 53 54 20 63 6f 6e 74 61 69 6e 73 20 4e 20 69 74 65 6d turn.nil.if.LIST.contains.N.item
b440 73 20 6f 72 20 66 65 77 65 72 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 64 72 6f 70 27 2e 22 s.or.fewer...See.also:.`-drop'."
b460 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 ...(declare.(side-effect-free.t)
b480 29 0a 20 20 28 6e 62 75 74 6c 61 73 74 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 6c 69 73 )...(nbutlast.(copy-sequence.lis
b4a0 74 29 20 6e 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 70 6c 69 74 2d 61 74 20 28 6e 20 6c 69 73 74 t).n))..(defun.-split-at.(n.list
b4c0 29 0a 20 20 22 53 70 6c 69 74 20 4c 49 53 54 20 69 6e 74 6f 20 74 77 6f 20 73 75 62 6c 69 73 74 )..."Split.LIST.into.two.sublist
b4e0 73 20 61 66 74 65 72 20 74 68 65 20 4e 74 68 20 65 6c 65 6d 65 6e 74 2e 0a 54 68 65 20 72 65 73 s.after.the.Nth.element..The.res
b500 75 6c 74 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 77 6f 20 65 6c 65 6d 65 6e 74 73 20 28 54 ult.is.a.list.of.two.elements.(T
b520 41 4b 45 20 44 52 4f 50 29 20 77 68 65 72 65 20 54 41 4b 45 20 69 73 20 61 0a 6e 65 77 20 6c 69 AKE.DROP).where.TAKE.is.a.new.li
b540 73 74 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 4e 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 st.of.the.first.N.elements.of.LI
b560 53 54 2c 20 61 6e 64 20 44 52 4f 50 20 69 73 20 74 68 65 0a 72 65 6d 61 69 6e 69 6e 67 20 65 6c ST,.and.DROP.is.the.remaining.el
b580 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 2e 20 20 54 41 ements.of.LIST.(not.a.copy)...TA
b5a0 4b 45 20 61 6e 64 20 44 52 4f 50 20 61 72 65 20 6c 69 6b 65 0a 74 68 65 20 72 65 73 75 6c 74 73 KE.and.DROP.are.like.the.results
b5c0 20 6f 66 20 60 2d 74 61 6b 65 27 20 61 6e 64 20 60 2d 64 72 6f 70 27 2c 20 72 65 73 70 65 63 74 .of.`-take'.and.`-drop',.respect
b5e0 69 76 65 6c 79 2c 20 62 75 74 20 74 68 65 20 73 70 6c 69 74 0a 69 73 20 64 6f 6e 65 20 69 6e 20 ively,.but.the.split.is.done.in.
b600 61 20 73 69 6e 67 6c 65 20 6c 69 73 74 20 74 72 61 76 65 72 73 61 6c 2e 22 0a 20 20 28 64 65 63 a.single.list.traversal."...(dec
b620 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6c 65 lare.(side-effect-free.t))...(le
b640 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 6c 69 73 t.(result).....(--each-while.lis
b660 74 20 28 3c 20 69 74 2d 69 6e 64 65 78 20 6e 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 70 6f t.(<.it-index.n).......(push.(po
b680 70 20 6c 69 73 74 29 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 6e 72 65 76 p.list).result)).....(list.(nrev
b6a0 65 72 73 65 20 72 65 73 75 6c 74 29 20 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 6f erse.result).list)))..(defun.-ro
b6c0 74 61 74 65 20 28 6e 20 6c 69 73 74 29 0a 20 20 22 52 6f 74 61 74 65 20 4c 49 53 54 20 4e 20 70 tate.(n.list)..."Rotate.LIST.N.p
b6e0 6c 61 63 65 73 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 28 6c 65 66 74 20 69 66 20 4e 20 69 73 laces.to.the.right.(left.if.N.is
b700 20 6e 65 67 61 74 69 76 65 29 2e 0a 54 68 65 20 74 69 6d 65 20 63 6f 6d 70 6c 65 78 69 74 79 20 .negative)..The.time.complexity.
b720 69 73 20 4f 28 6e 29 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 is.O(n)."...(declare.(pure.t).(s
b740 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 63 6f 6e 64 20 28 28 6e 75 ide-effect-free.t))...(cond.((nu
b760 6c 6c 20 6c 69 73 74 29 20 28 29 29 0a 20 20 20 20 20 20 20 20 28 28 7a 65 72 6f 70 20 6e 29 20 ll.list).()).........((zerop.n).
b780 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 28 28 (copy-sequence.list)).........((
b7a0 6c 65 74 2a 20 28 28 6c 65 6e 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 let*.((len.(length.list)).......
b7c0 20 20 20 20 20 20 20 20 20 20 28 6e 2d 6d 6f 64 2d 6c 65 6e 20 28 6d 6f 64 20 6e 20 6c 65 6e 29 ..........(n-mod-len.(mod.n.len)
b7e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 74 61 69 6c 2d 6c 65 6e 20 ).................(new-tail-len.
b800 28 2d 20 6c 65 6e 20 6e 2d 6d 6f 64 2d 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 (-.len.n-mod-len)))............(
b820 61 70 70 65 6e 64 20 28 6e 74 68 63 64 72 20 6e 65 77 2d 74 61 69 6c 2d 6c 65 6e 20 6c 69 73 74 append.(nthcdr.new-tail-len.list
b840 29 20 28 2d 74 61 6b 65 20 6e 65 77 2d 74 61 69 6c 2d 6c 65 6e 20 6c 69 73 74 29 29 29 29 29 29 ).(-take.new-tail-len.list))))))
b860 0a 0a 28 64 65 66 75 6e 20 2d 69 6e 73 65 72 74 2d 61 74 20 28 6e 20 78 20 6c 69 73 74 29 0a 20 ..(defun.-insert-at.(n.x.list)..
b880 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 20 58 20 69 6e 73 65 72 74 65 64 20 ."Return.a.list.with.X.inserted.
b8a0 69 6e 74 6f 20 4c 49 53 54 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 4e 2e 0a 0a 53 65 65 20 61 6c into.LIST.at.position.N...See.al
b8c0 73 6f 3a 20 60 2d 73 70 6c 69 63 65 27 2c 20 60 2d 73 70 6c 69 63 65 2d 6c 69 73 74 27 22 0a 20 so:.`-splice',.`-splice-list'"..
b8e0 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d .(declare.(pure.t).(side-effect-
b900 66 72 65 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 73 70 6c 69 74 2d 6c 69 73 74 20 28 2d 73 free.t))...(let.((split-list.(-s
b920 70 6c 69 74 2d 61 74 20 6e 20 6c 69 73 74 29 29 29 0a 20 20 20 20 28 6e 63 6f 6e 63 20 28 63 61 plit-at.n.list))).....(nconc.(ca
b940 72 20 73 70 6c 69 74 2d 6c 69 73 74 29 20 28 63 6f 6e 73 20 78 20 28 63 61 64 72 20 73 70 6c 69 r.split-list).(cons.x.(cadr.spli
b960 74 2d 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 70 6c 61 63 65 2d 61 74 20 t-list)))))..(defun.-replace-at.
b980 28 6e 20 78 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 (n.x.list)..."Return.a.list.with
b9a0 20 65 6c 65 6d 65 6e 74 20 61 74 20 4e 74 68 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 4c 49 53 54 .element.at.Nth.position.in.LIST
b9c0 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 58 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 72 .replaced.with.X...See.also:.`-r
b9e0 65 70 6c 61 63 65 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 eplace'"...(declare.(pure.t).(si
ba00 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 73 70 6c 69 de-effect-free.t))...(let.((spli
ba20 74 2d 6c 69 73 74 20 28 2d 73 70 6c 69 74 2d 61 74 20 6e 20 6c 69 73 74 29 29 29 0a 20 20 20 20 t-list.(-split-at.n.list))).....
ba40 28 6e 63 6f 6e 63 20 28 63 61 72 20 73 70 6c 69 74 2d 6c 69 73 74 29 20 28 63 6f 6e 73 20 78 20 (nconc.(car.split-list).(cons.x.
ba60 28 63 64 72 20 28 63 61 64 72 20 73 70 6c 69 74 2d 6c 69 73 74 29 29 29 29 29 29 0a 0a 28 64 65 (cdr.(cadr.split-list))))))..(de
ba80 66 75 6e 20 2d 75 70 64 61 74 65 2d 61 74 20 28 6e 20 66 75 6e 63 20 6c 69 73 74 29 0a 20 20 22 fun.-update-at.(n.func.list)..."
baa0 55 73 65 20 46 55 4e 43 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 20 4e 74 68 20 65 6c 65 6d 65 Use.FUNC.to.update.the.Nth.eleme
bac0 6e 74 20 6f 66 20 4c 49 53 54 2e 0a 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 nt.of.LIST..Return.a.copy.of.LIS
bae0 54 20 77 68 65 72 65 20 74 68 65 20 4e 74 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 72 65 70 6c 61 T.where.the.Nth.element.is.repla
bb00 63 65 64 20 77 69 74 68 20 74 68 65 0a 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 46 ced.with.the.result.of.calling.F
bb20 55 4e 43 20 6f 6e 20 69 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 6d 61 70 2d 77 68 65 6e UNC.on.it...See.also:.`-map-when
bb40 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d '"...(declare.(important-return-
bb60 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 73 70 6c 69 74 2d 6c 69 73 74 20 28 2d value.t))...(let.((split-list.(-
bb80 73 70 6c 69 74 2d 61 74 20 6e 20 6c 69 73 74 29 29 29 0a 20 20 20 20 28 6e 63 6f 6e 63 20 28 63 split-at.n.list))).....(nconc.(c
bba0 61 72 20 73 70 6c 69 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 ar.split-list)............(cons.
bbc0 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 20 28 63 61 72 20 28 63 61 64 72 20 73 70 6c 69 74 2d 6c (funcall.func.(car.(cadr.split-l
bbe0 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 63 61 ist)))..................(cdr.(ca
bc00 64 72 20 73 70 6c 69 74 2d 6c 69 73 74 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d dr.split-list))))))..(defmacro.-
bc20 2d 75 70 64 61 74 65 2d 61 74 20 28 6e 20 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 -update-at.(n.form.list)..."Anap
bc40 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 2d 75 70 64 61 74 65 2d 61 74 27 2e 22 0a horic.version.of.`-update-at'.".
bc60 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 64 65 66 2d 66 6f 72 6d ..(declare.(debug.(form.def-form
bc80 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 75 70 64 61 74 65 2d 61 74 20 2c 6e 20 28 6c 61 6d 62 .form)))...`(-update-at.,n.(lamb
bca0 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 66 6f 72 6d 29 20 2c 6c 69 73 74 da.(it).(ignore.it).,form).,list
bcc0 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 6d 6f 76 65 2d 61 74 20 28 6e 20 6c 69 73 74 29 0a 20 ))..(defun.-remove-at.(n.list)..
bce0 20 22 52 65 74 75 72 6e 20 4c 49 53 54 20 77 69 74 68 20 69 74 73 20 65 6c 65 6d 65 6e 74 20 61 ."Return.LIST.with.its.element.a
bd00 74 20 69 6e 64 65 78 20 4e 20 72 65 6d 6f 76 65 64 2e 0a 54 68 61 74 20 69 73 2c 20 72 65 6d 6f t.index.N.removed..That.is,.remo
bd20 76 65 20 61 6e 79 20 65 6c 65 6d 65 6e 74 20 73 65 6c 65 63 74 65 64 20 61 73 20 28 6e 74 68 20 ve.any.element.selected.as.(nth.
bd40 4e 20 4c 49 53 54 29 20 66 72 6f 6d 20 4c 49 53 54 0a 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 N.LIST).from.LIST.and.return.the
bd60 20 72 65 73 75 6c 74 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 6e 6f 6e 2d 64 65 73 74 72 75 63 74 .result...This.is.a.non-destruct
bd80 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 3a 20 70 61 72 74 73 20 6f 66 20 4c 49 53 54 20 28 62 75 ive.operation:.parts.of.LIST.(bu
bda0 74 20 6e 6f 74 0a 6e 65 63 65 73 73 61 72 69 6c 79 20 61 6c 6c 20 6f 66 20 69 74 29 20 61 72 65 t.not.necessarily.all.of.it).are
bdc0 20 63 6f 70 69 65 64 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 61 76 6f 69 64 0a 64 65 73 74 72 .copied.as.needed.to.avoid.destr
bde0 75 63 74 69 76 65 6c 79 20 6d 6f 64 69 66 79 69 6e 67 20 69 74 2e 0a 0a 53 65 65 20 61 6c 73 6f uctively.modifying.it...See.also
be00 3a 20 60 2d 72 65 6d 6f 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 27 2c 20 60 2d 72 65 6d 6f 76 65 :.`-remove-at-indices',.`-remove
be20 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 '."...(declare.(pure.t).(side-ef
be40 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 69 66 20 28 7a 65 72 6f 70 20 6e 29 0a 20 20 fect-free.t))...(if.(zerop.n)...
be60 20 20 20 20 28 63 64 72 20 6c 69 73 74 29 0a 20 20 20 20 28 2d 2d 72 65 6d 6f 76 65 2d 66 69 72 ....(cdr.list).....(--remove-fir
be80 73 74 20 28 3d 20 69 74 2d 69 6e 64 65 78 20 6e 29 20 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 st.(=.it-index.n).list)))..(defu
bea0 6e 20 2d 72 65 6d 6f 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 20 28 69 6e 64 69 63 65 73 20 6c 69 n.-remove-at-indices.(indices.li
bec0 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 4c 49 53 54 20 77 69 74 68 20 69 74 73 20 65 6c 65 6d st)..."Return.LIST.with.its.elem
bee0 65 6e 74 73 20 61 74 20 49 4e 44 49 43 45 53 20 72 65 6d 6f 76 65 64 2e 0a 54 68 61 74 20 69 73 ents.at.INDICES.removed..That.is
bf00 2c 20 66 6f 72 20 65 61 63 68 20 69 6e 64 65 78 20 49 20 69 6e 20 49 4e 44 49 43 45 53 2c 20 72 ,.for.each.index.I.in.INDICES,.r
bf20 65 6d 6f 76 65 20 61 6e 79 20 65 6c 65 6d 65 6e 74 20 73 65 6c 65 63 74 65 64 0a 61 73 20 28 6e emove.any.element.selected.as.(n
bf40 74 68 20 49 20 4c 49 53 54 29 20 66 72 6f 6d 20 4c 49 53 54 2e 0a 0a 54 68 69 73 20 69 73 20 61 th.I.LIST).from.LIST...This.is.a
bf60 20 6e 6f 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 3a 20 70 61 72 74 .non-destructive.operation:.part
bf80 73 20 6f 66 20 4c 49 53 54 20 28 62 75 74 20 6e 6f 74 0a 6e 65 63 65 73 73 61 72 69 6c 79 20 61 s.of.LIST.(but.not.necessarily.a
bfa0 6c 6c 20 6f 66 20 69 74 29 20 61 72 65 20 63 6f 70 69 65 64 20 61 73 20 6e 65 65 64 65 64 20 74 ll.of.it).are.copied.as.needed.t
bfc0 6f 20 61 76 6f 69 64 0a 64 65 73 74 72 75 63 74 69 76 65 6c 79 20 6d 6f 64 69 66 79 69 6e 67 20 o.avoid.destructively.modifying.
bfe0 69 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 72 65 6d 6f 76 65 2d 61 74 27 2c 20 60 2d 72 it...See.also:.`-remove-at',.`-r
c000 65 6d 6f 76 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 emove'."...(declare.(pure.t).(si
c020 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 73 65 74 71 20 69 6e 64 69 63 de-effect-free.t))...(setq.indic
c040 65 73 20 28 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 20 28 3c 20 69 74 20 30 29 20 28 2d 73 6f 72 74 es.(--drop-while.(<.it.0).(-sort
c060 20 23 27 3c 20 69 6e 64 69 63 65 73 29 29 29 0a 20 20 28 6c 65 74 20 28 28 69 20 28 70 6f 70 20 .#'<.indices)))...(let.((i.(pop.
c080 69 6e 64 69 63 65 73 29 29 20 72 65 73 29 0a 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 indices)).res).....(--each-while
c0a0 20 6c 69 73 74 20 69 0a 20 20 20 20 20 20 28 70 6f 70 20 6c 69 73 74 29 0a 20 20 20 20 20 20 28 .list.i.......(pop.list).......(
c0c0 69 66 20 28 2f 3d 20 69 74 2d 69 6e 64 65 78 20 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 if.(/=.it-index.i)...........(pu
c0e0 73 68 20 69 74 20 72 65 73 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 69 sh.it.res).........(while.(and.i
c100 6e 64 69 63 65 73 20 28 3d 20 28 63 61 72 20 69 6e 64 69 63 65 73 29 20 69 29 29 0a 20 20 20 20 ndices.(=.(car.indices).i)).....
c120 20 20 20 20 20 20 28 70 6f 70 20 69 6e 64 69 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 ......(pop.indices)).........(se
c140 74 71 20 69 20 28 70 6f 70 20 69 6e 64 69 63 65 73 29 29 29 29 0a 20 20 20 20 28 6e 63 6f 6e 63 tq.i.(pop.indices)))).....(nconc
c160 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 29 20 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 6d 61 63 .(nreverse.res).list)))..(defmac
c180 72 6f 20 2d 2d 73 70 6c 69 74 2d 77 69 74 68 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 41 ro.--split-with.(pred.list)..."A
c1a0 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 73 70 6c 69 74 2d 77 69 74 68 27 2e 22 naphoric.form.of.`-split-with'."
c1c0 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 ...(declare.(debug.(form.form)))
c1e0 0a 20 20 28 6c 65 74 20 28 28 6c 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 73 74 22 29 ...(let.((l.(make-symbol."list")
c200 29 0a 20 20 20 20 20 20 20 20 28 72 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c ).........(r.(make-symbol."resul
c220 74 22 29 29 0a 20 20 20 20 20 20 20 20 28 63 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 63 6f t")).........(c.(make-symbol."co
c240 6e 74 69 6e 75 65 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 6c 20 2c 6c 69 73 74 29 ntinue"))).....`(let.((,l.,list)
c260 0a 20 20 20 20 20 20 20 20 20 20 20 28 2c 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 ............(,r.nil)............
c280 28 2c 63 20 74 29 29 0a 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 2c 6c 20 2c 63 (,c.t))........(while.(and.,l.,c
c2a0 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 20 28 63 61 72 20 2c 6c 29 29 29 0a )..........(let.((it.(car.,l))).
c2c0 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 2c 70 72 65 64 29 0a 20 20 20 20 20 ...........(if.(not.,pred)......
c2e0 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 63 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 ..........(setq.,c.nil).........
c300 20 20 20 20 20 28 21 63 6f 6e 73 20 69 74 20 2c 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(!cons.it.,r)..............
c320 28 21 63 64 72 20 2c 6c 29 29 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 6e 72 65 76 65 (!cdr.,l))))........(list.(nreve
c340 72 73 65 20 2c 72 29 20 2c 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 70 6c 69 74 2d 77 69 rse.,r).,l))))..(defun.-split-wi
c360 74 68 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 53 70 6c 69 74 20 4c 49 53 54 20 69 6e 74 th.(pred.list)..."Split.LIST.int
c380 6f 20 61 20 70 72 65 66 69 78 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 2c 20 61 6e 64 20 o.a.prefix.satisfying.PRED,.and.
c3a0 74 68 65 20 72 65 73 74 2e 0a 54 68 65 20 66 69 72 73 74 20 73 75 62 6c 69 73 74 20 69 73 20 74 the.rest..The.first.sublist.is.t
c3c0 68 65 20 70 72 65 66 69 78 20 6f 66 20 4c 49 53 54 20 77 69 74 68 20 73 75 63 63 65 73 73 69 76 he.prefix.of.LIST.with.successiv
c3e0 65 20 65 6c 65 6d 65 6e 74 73 0a 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 2c 20 61 6e 64 20 e.elements.satisfying.PRED,.and.
c400 74 68 65 20 73 65 63 6f 6e 64 20 73 75 62 6c 69 73 74 20 69 73 20 74 68 65 20 72 65 6d 61 69 6e the.second.sublist.is.the.remain
c420 69 6e 67 20 65 6c 65 6d 65 6e 74 73 0a 74 68 61 74 20 64 6f 20 6e 6f 74 2e 20 20 54 68 65 20 72 ing.elements.that.do.not...The.r
c440 65 73 75 6c 74 20 69 73 20 6c 69 6b 65 20 70 65 72 66 6f 72 6d 69 6e 67 0a 0a 20 20 28 28 2d 74 esult.is.like.performing....((-t
c460 61 6b 65 2d 77 68 69 6c 65 20 50 52 45 44 20 4c 49 53 54 29 20 28 2d 64 72 6f 70 2d 77 68 69 6c ake-while.PRED.LIST).(-drop-whil
c480 65 20 50 52 45 44 20 4c 49 53 54 29 29 0a 0a 62 75 74 20 69 6e 20 6e 6f 20 6d 6f 72 65 20 74 68 e.PRED.LIST))..but.in.no.more.th
c4a0 61 6e 20 61 20 73 69 6e 67 6c 65 20 70 61 73 73 20 74 68 72 6f 75 67 68 20 4c 49 53 54 2e 22 0a an.a.single.pass.through.LIST.".
c4c0 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c ..(declare.(important-return-val
c4e0 75 65 20 74 29 29 0a 20 20 28 2d 2d 73 70 6c 69 74 2d 77 69 74 68 20 28 66 75 6e 63 61 6c 6c 20 ue.t))...(--split-with.(funcall.
c500 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 73 70 6c 69 pred.it).list))..(defmacro.-spli
c520 74 2d 6f 6e 20 28 69 74 65 6d 20 6c 69 73 74 29 0a 20 20 22 53 70 6c 69 74 20 74 68 65 20 4c 49 t-on.(item.list)..."Split.the.LI
c540 53 54 20 65 61 63 68 20 74 69 6d 65 20 49 54 45 4d 20 69 73 20 66 6f 75 6e 64 2e 0a 0a 55 6e 6c ST.each.time.ITEM.is.found...Unl
c560 69 6b 65 20 60 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 27 2c 20 74 68 65 20 49 54 45 4d 20 69 73 ike.`-partition-by',.the.ITEM.is
c580 20 64 69 73 63 61 72 64 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 73 75 6c 74 73 2e 0a 45 6d 70 .discarded.from.the.results..Emp
c5a0 74 79 20 6c 69 73 74 73 20 61 72 65 20 61 6c 73 6f 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 ty.lists.are.also.removed.from.t
c5c0 68 65 20 72 65 73 75 6c 74 2e 0a 0a 43 6f 6d 70 61 72 69 73 6f 6e 20 69 73 20 64 6f 6e 65 20 62 he.result...Comparison.is.done.b
c5e0 79 20 60 65 71 75 61 6c 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 2d 73 70 6c 69 74 2d 77 68 65 y.`equal'...See.also.`-split-whe
c600 6e 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 n'"...(declare.(debug.(def-form.
c620 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 73 70 6c 69 74 2d 77 68 65 6e 20 28 6c 61 6d 62 64 61 20 form)))...`(-split-when.(lambda.
c640 28 69 74 29 20 28 65 71 75 61 6c 20 69 74 20 2c 69 74 65 6d 29 29 20 2c 6c 69 73 74 29 29 0a 0a (it).(equal.it.,item)).,list))..
c660 28 64 65 66 6d 61 63 72 6f 20 2d 2d 73 70 6c 69 74 2d 77 68 65 6e 20 28 66 6f 72 6d 20 6c 69 73 (defmacro.--split-when.(form.lis
c680 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 2d 73 70 6c t)..."Anaphoric.version.of.`-spl
c6a0 69 74 2d 77 68 65 6e 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 it-when'."...(declare.(debug.(de
c6c0 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 73 70 6c 69 74 2d 77 68 65 6e 20 28 f-form.form)))...`(-split-when.(
c6e0 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 66 6f 72 6d 29 20 2c lambda.(it).(ignore.it).,form).,
c700 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 70 6c 69 74 2d 77 68 65 6e 20 28 66 6e 20 6c list))..(defun.-split-when.(fn.l
c720 69 73 74 29 0a 20 20 22 53 70 6c 69 74 20 74 68 65 20 4c 49 53 54 20 6f 6e 20 65 61 63 68 20 65 ist)..."Split.the.LIST.on.each.e
c740 6c 65 6d 65 6e 74 20 77 68 65 72 65 20 46 4e 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e lement.where.FN.returns.non-nil.
c760 0a 0a 55 6e 6c 69 6b 65 20 60 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 27 2c 20 74 68 65 20 5c 22 ..Unlike.`-partition-by',.the.\"
c780 6d 61 74 63 68 65 64 5c 22 20 65 6c 65 6d 65 6e 74 20 69 73 20 64 69 73 63 61 72 64 65 64 20 66 matched\".element.is.discarded.f
c7a0 72 6f 6d 0a 74 68 65 20 72 65 73 75 6c 74 73 2e 20 20 45 6d 70 74 79 20 6c 69 73 74 73 20 61 72 rom.the.results...Empty.lists.ar
c7c0 65 20 61 6c 73 6f 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 73 75 6c 74 2e 0a e.also.removed.from.the.result..
c7e0 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 74 68 6f 75 67 68 74 20 6f 66 .This.function.can.be.thought.of
c800 20 61 73 20 61 20 67 65 6e 65 72 61 6c 69 7a 61 74 69 6f 6e 20 6f 66 0a 60 73 70 6c 69 74 2d 73 .as.a.generalization.of.`split-s
c820 74 72 69 6e 67 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 tring'."...(declare.(important-r
c840 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 72 20 73 29 0a 20 20 20 eturn-value.t))...(let.(r.s)....
c860 20 28 77 68 69 6c 65 20 6c 69 73 74 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 66 75 6e .(while.list.......(if.(not.(fun
c880 63 61 6c 6c 20 66 6e 20 28 63 61 72 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 call.fn.(car.list)))...........(
c8a0 70 75 73 68 20 28 63 61 72 20 6c 69 73 74 29 20 73 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e push.(car.list).s).........(when
c8c0 20 73 20 28 70 75 73 68 20 28 6e 72 65 76 65 72 73 65 20 73 29 20 72 29 29 0a 20 20 20 20 20 20 .s.(push.(nreverse.s).r)).......
c8e0 20 20 28 73 65 74 71 20 73 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 21 63 64 72 20 6c 69 73 74 ..(setq.s.nil)).......(!cdr.list
c900 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 20 28 70 75 73 68 20 28 6e 72 65 76 65 72 73 65 20 73 )).....(when.s.(push.(nreverse.s
c920 29 20 72 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 29 29 29 0a 0a 28 64 65 66 6d 61 ).r)).....(nreverse.r)))..(defma
c940 63 72 6f 20 2d 2d 73 65 70 61 72 61 74 65 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e cro.--separate.(form.list)..."An
c960 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 73 65 70 61 72 61 74 65 27 2e 22 0a 20 20 aphoric.form.of.`-separate'."...
c980 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 (declare.(debug.(form.form)))...
c9a0 28 6c 65 74 20 28 28 79 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 79 65 73 22 29 29 0a 20 20 (let.((y.(make-symbol."yes"))...
c9c0 20 20 20 20 20 20 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 6f 22 29 29 29 0a 20 20 ......(n.(make-symbol."no")))...
c9e0 20 20 60 28 6c 65 74 20 28 2c 79 20 2c 6e 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c ..`(let.(,y.,n)........(--each.,
ca00 6c 69 73 74 20 28 69 66 20 2c 66 6f 72 6d 20 28 21 63 6f 6e 73 20 69 74 20 2c 79 29 20 28 21 63 list.(if.,form.(!cons.it.,y).(!c
ca20 6f 6e 73 20 69 74 20 2c 6e 29 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 6e 72 65 76 65 ons.it.,n)))........(list.(nreve
ca40 72 73 65 20 2c 79 29 20 28 6e 72 65 76 65 72 73 65 20 2c 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 rse.,y).(nreverse.,n)))))..(defu
ca60 6e 20 2d 73 65 70 61 72 61 74 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 53 70 6c 69 74 n.-separate.(pred.list)..."Split
ca80 20 4c 49 53 54 20 69 6e 74 6f 20 74 77 6f 20 73 75 62 6c 69 73 74 73 20 62 61 73 65 64 20 6f 6e .LIST.into.two.sublists.based.on
caa0 20 77 68 65 74 68 65 72 20 69 74 65 6d 73 20 73 61 74 69 73 66 79 20 50 52 45 44 2e 0a 54 68 65 .whether.items.satisfy.PRED..The
cac0 20 72 65 73 75 6c 74 20 69 73 20 6c 69 6b 65 20 70 65 72 66 6f 72 6d 69 6e 67 0a 0a 20 20 28 28 .result.is.like.performing....((
cae0 2d 66 69 6c 74 65 72 20 50 52 45 44 20 4c 49 53 54 29 20 28 2d 72 65 6d 6f 76 65 20 50 52 45 44 -filter.PRED.LIST).(-remove.PRED
cb00 20 4c 49 53 54 29 29 0a 0a 62 75 74 20 69 6e 20 61 20 73 69 6e 67 6c 65 20 70 61 73 73 20 74 68 .LIST))..but.in.a.single.pass.th
cb20 72 6f 75 67 68 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 rough.LIST."...(declare.(importa
cb40 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 73 65 70 61 72 61 74 nt-return-value.t))...(--separat
cb60 65 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 e.(funcall.pred.it).list))..(def
cb80 75 6e 20 64 61 73 68 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 2d un.dash--partition-all-in-steps-
cba0 72 65 76 65 72 73 65 64 20 28 6e 20 73 74 65 70 20 6c 69 73 74 29 0a 20 20 22 4c 69 6b 65 20 60 reversed.(n.step.list)..."Like.`
cbc0 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 27 2c 20 62 75 74 20 74 68 -partition-all-in-steps',.but.th
cbe0 65 20 72 65 73 75 6c 74 20 69 73 20 72 65 76 65 72 73 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 28 e.result.is.reversed."...(when.(
cc00 3c 20 73 74 65 70 20 31 29 0a 20 20 20 20 28 73 69 67 6e 61 6c 20 27 77 72 6f 6e 67 2d 74 79 70 <.step.1).....(signal.'wrong-typ
cc20 65 2d 61 72 67 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 60 28 22 53 74 65 70 20 73 e-argument.............`("Step.s
cc40 69 7a 65 20 3c 20 31 20 72 65 73 75 6c 74 73 20 69 6e 20 6a 75 69 63 79 20 69 6e 66 69 6e 69 74 ize.<.1.results.in.juicy.infinit
cc60 65 20 6c 6f 6f 70 73 22 20 2c 73 74 65 70 29 29 29 0a 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 e.loops".,step)))...(let.(result
cc80 29 0a 20 20 20 20 28 77 68 69 6c 65 20 6c 69 73 74 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 2d ).....(while.list.......(push.(-
cca0 74 61 6b 65 20 6e 20 6c 69 73 74 29 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 28 73 65 74 71 take.n.list).result).......(setq
ccc0 20 6c 69 73 74 20 28 6e 74 68 63 64 72 20 73 74 65 70 20 6c 69 73 74 29 29 29 0a 20 20 20 20 72 .list.(nthcdr.step.list))).....r
cce0 65 73 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 esult))..(defun.-partition-all-i
cd00 6e 2d 73 74 65 70 73 20 28 6e 20 73 74 65 70 20 6c 69 73 74 29 0a 20 20 22 50 61 72 74 69 74 69 n-steps.(n.step.list)..."Partiti
cd20 6f 6e 20 4c 49 53 54 20 69 6e 74 6f 20 73 75 62 6c 69 73 74 73 20 6f 66 20 6c 65 6e 67 74 68 20 on.LIST.into.sublists.of.length.
cd40 4e 20 74 68 61 74 20 61 72 65 20 53 54 45 50 20 69 74 65 6d 73 20 61 70 61 72 74 2e 0a 41 64 6a N.that.are.STEP.items.apart..Adj
cd60 61 63 65 6e 74 20 67 72 6f 75 70 73 20 6d 61 79 20 6f 76 65 72 6c 61 70 20 69 66 20 4e 20 65 78 acent.groups.may.overlap.if.N.ex
cd80 63 65 65 64 73 20 74 68 65 20 53 54 45 50 20 73 74 72 69 64 65 2e 0a 54 72 61 69 6c 69 6e 67 20 ceeds.the.STEP.stride..Trailing.
cda0 67 72 6f 75 70 73 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 6c 65 73 73 20 74 68 61 6e 20 4e 20 69 groups.may.contain.less.than.N.i
cdc0 74 65 6d 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 tems."...(declare.(pure.t).(side
cde0 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6e 72 65 76 65 72 73 65 20 28 64 61 -effect-free.t))...(nreverse.(da
ce00 73 68 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 2d 72 65 76 65 72 sh--partition-all-in-steps-rever
ce20 73 65 64 20 6e 20 73 74 65 70 20 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 sed.n.step.list)))..(defun.-part
ce40 69 74 69 6f 6e 2d 69 6e 2d 73 74 65 70 73 20 28 6e 20 73 74 65 70 20 6c 69 73 74 29 0a 20 20 22 ition-in-steps.(n.step.list)..."
ce60 50 61 72 74 69 74 69 6f 6e 20 4c 49 53 54 20 69 6e 74 6f 20 73 75 62 6c 69 73 74 73 20 6f 66 20 Partition.LIST.into.sublists.of.
ce80 6c 65 6e 67 74 68 20 4e 20 74 68 61 74 20 61 72 65 20 53 54 45 50 20 69 74 65 6d 73 20 61 70 61 length.N.that.are.STEP.items.apa
cea0 72 74 2e 0a 4c 69 6b 65 20 60 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 rt..Like.`-partition-all-in-step
cec0 73 27 2c 20 62 75 74 20 69 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f 74 20 65 6e 6f 75 67 68 20 s',.but.if.there.are.not.enough.
cee0 69 74 65 6d 73 0a 74 6f 20 6d 61 6b 65 20 74 68 65 20 6c 61 73 74 20 67 72 6f 75 70 20 4e 2d 73 items.to.make.the.last.group.N-s
cf00 69 7a 65 64 2c 20 74 68 6f 73 65 20 69 74 65 6d 73 20 61 72 65 20 64 69 73 63 61 72 64 65 64 2e ized,.those.items.are.discarded.
cf20 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 "...(declare.(pure.t).(side-effe
cf40 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 64 61 73 ct-free.t))...(let.((result.(das
cf60 68 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 2d 72 65 76 65 72 73 h--partition-all-in-steps-revers
cf80 65 64 20 6e 20 73 74 65 70 20 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e ed.n.step.list))).....(while.(an
cfa0 64 20 72 65 73 75 6c 74 20 28 3c 20 28 6c 65 6e 67 74 68 20 28 63 61 72 20 72 65 73 75 6c 74 29 d.result.(<.(length.(car.result)
cfc0 29 20 6e 29 29 0a 20 20 20 20 20 20 28 70 6f 70 20 72 65 73 75 6c 74 29 29 0a 20 20 20 20 28 6e ).n)).......(pop.result)).....(n
cfe0 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 69 reverse.result)))..(defun.-parti
d000 74 69 6f 6e 2d 61 6c 6c 20 28 6e 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 tion-all.(n.list)..."Return.a.ne
d020 77 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 20 67 72 w.list.with.the.items.in.LIST.gr
d040 6f 75 70 65 64 20 69 6e 74 6f 20 4e 2d 73 69 7a 65 64 20 73 75 62 6c 69 73 74 73 2e 0a 54 68 65 ouped.into.N-sized.sublists..The
d060 20 6c 61 73 74 20 67 72 6f 75 70 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 6c 65 73 73 20 74 68 61 .last.group.may.contain.less.tha
d080 6e 20 4e 20 69 74 65 6d 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 n.N.items."...(declare.(pure.t).
d0a0 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 70 61 72 74 69 74 (side-effect-free.t))...(-partit
d0c0 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 20 6e 20 6e 20 6c 69 73 74 29 29 0a 0a 28 64 65 ion-all-in-steps.n.n.list))..(de
d0e0 66 75 6e 20 2d 70 61 72 74 69 74 69 6f 6e 20 28 6e 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 fun.-partition.(n.list)..."Retur
d100 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 4c n.a.new.list.with.the.items.in.L
d120 49 53 54 20 67 72 6f 75 70 65 64 20 69 6e 74 6f 20 4e 2d 73 69 7a 65 64 20 73 75 62 6c 69 73 74 IST.grouped.into.N-sized.sublist
d140 73 2e 0a 49 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f 74 20 65 6e 6f 75 67 68 20 69 74 65 6d 73 s..If.there.are.not.enough.items
d160 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 6c 61 73 74 20 67 72 6f 75 70 20 4e 2d 73 69 7a 65 64 2c .to.make.the.last.group.N-sized,
d180 0a 74 68 6f 73 65 20 69 74 65 6d 73 20 61 72 65 20 64 69 73 63 61 72 64 65 64 2e 22 0a 20 20 28 .those.items.are.discarded."...(
d1a0 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 declare.(pure.t).(side-effect-fr
d1c0 65 65 20 74 29 29 0a 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 69 6e 2d 73 74 65 70 73 20 6e 20 ee.t))...(-partition-in-steps.n.
d1e0 6e 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 70 61 72 74 69 74 69 6f 6e 2d n.list))..(defmacro.--partition-
d200 62 79 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d by.(form.list)..."Anaphoric.form
d220 20 6f 66 20 60 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 .of.`-partition-by'."...(declare
d240 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 .(debug.(form.form)))...(let.((r
d260 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 0a 20 20 20 20 20 20 20 .(make-symbol."result"))........
d280 20 28 73 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 73 75 62 6c 69 73 74 22 29 29 0a 20 20 20 .(s.(make-symbol."sublist"))....
d2a0 20 20 20 20 20 28 76 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 76 61 6c 75 65 22 29 29 0a 20 .....(v.(make-symbol."value"))..
d2c0 20 20 20 20 20 20 20 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 65 77 2d 76 61 6c 75 .......(n.(make-symbol."new-valu
d2e0 65 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 e")).........(l.(make-symbol."li
d300 73 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 6c 20 2c 6c 69 73 74 29 29 0a 20 20 st"))).....`(let.((,l.,list))...
d320 20 20 20 20 20 28 77 68 65 6e 20 2c 6c 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 2c .....(when.,l..........(let*.((,
d340 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 74 20 28 63 61 72 20 r.nil).................(it.(car.
d360 2c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 73 20 28 6c 69 73 74 20 69 ,l)).................(,s.(list.i
d380 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 76 20 2c 66 6f 72 6d 29 0a 20 t)).................(,v.,form)..
d3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 6c 20 28 63 64 72 20 2c 6c 29 29 29 0a 20 20 ...............(,l.(cdr.,l)))...
d3c0 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 2c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(while.,l..............
d3e0 28 6c 65 74 2a 20 28 28 69 74 20 28 63 61 72 20 2c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (let*.((it.(car.,l))............
d400 20 20 20 20 20 20 20 20 20 28 2c 6e 20 2c 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .........(,n.,form))............
d420 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 2c 76 20 2c 6e 29 0a 20 20 20 20 20 20 ....(unless.(equal.,v.,n).......
d440 20 20 20 20 20 20 20 20 20 20 20 28 21 63 6f 6e 73 20 28 6e 72 65 76 65 72 73 65 20 2c 73 29 20 ...........(!cons.(nreverse.,s).
d460 2c 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 73 20 6e 69 ,r)..................(setq.,s.ni
d480 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 76 20 2c 6e 29 l)..................(setq.,v.,n)
d4a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 21 63 6f 6e 73 20 69 74 20 2c 73 29 0a 20 )................(!cons.it.,s)..
d4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 21 63 64 72 20 2c 6c 29 29 29 0a 20 20 20 20 20 20 ..............(!cdr.,l))).......
d4e0 20 20 20 20 20 28 21 63 6f 6e 73 20 28 6e 72 65 76 65 72 73 65 20 2c 73 29 20 2c 72 29 0a 20 20 .....(!cons.(nreverse.,s).,r)...
d500 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 2c 72 29 29 29 29 29 29 0a 0a 28 64 65 .........(nreverse.,r))))))..(de
d520 66 75 6e 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 41 fun.-partition-by.(fn.list)..."A
d540 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2c 20 73 70 pply.FN.to.each.item.in.LIST,.sp
d560 6c 69 74 74 69 6e 67 20 69 74 20 65 61 63 68 20 74 69 6d 65 20 46 4e 20 72 65 74 75 72 6e 73 20 litting.it.each.time.FN.returns.
d580 61 20 6e 65 77 20 76 61 6c 75 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 a.new.value."...(declare.(import
d5a0 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 70 61 72 74 69 74 ant-return-value.t))...(--partit
d5c0 69 6f 6e 2d 62 79 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 ion-by.(funcall.fn.it).list))..(
d5e0 64 65 66 6d 61 63 72 6f 20 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 65 61 64 65 72 20 28 defmacro.--partition-by-header.(
d600 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 form.list)..."Anaphoric.form.of.
d620 60 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 65 61 64 65 72 27 2e 22 0a 20 20 28 64 65 63 6c `-partition-by-header'."...(decl
d640 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 are.(debug.(form.form)))...(let.
d660 28 28 72 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 0a 20 20 20 20 ((r.(make-symbol."result")).....
d680 20 20 20 20 28 73 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 73 75 62 6c 69 73 74 22 29 29 0a ....(s.(make-symbol."sublist")).
d6a0 20 20 20 20 20 20 20 20 28 68 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 68 65 61 64 65 72 2d ........(h.(make-symbol."header-
d6c0 76 61 6c 75 65 22 29 29 0a 20 20 20 20 20 20 20 20 28 62 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c value")).........(b.(make-symbol
d6e0 20 22 73 65 65 6e 2d 62 6f 64 79 3f 22 29 29 0a 20 20 20 20 20 20 20 20 28 6e 20 28 6d 61 6b 65 ."seen-body?")).........(n.(make
d700 2d 73 79 6d 62 6f 6c 20 22 6e 65 77 2d 76 61 6c 75 65 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c -symbol."new-value")).........(l
d720 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 73 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 .(make-symbol."list"))).....`(le
d740 74 20 28 28 2c 6c 20 2c 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 2c 6c 0a 20 t.((,l.,list))........(when.,l..
d760 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 2c 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 ........(let*.((,r.nil).........
d780 20 20 20 20 20 20 20 20 28 69 74 20 28 63 61 72 20 2c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 ........(it.(car.,l))...........
d7a0 20 20 20 20 20 20 28 2c 73 20 28 6c 69 73 74 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ......(,s.(list.it))............
d7c0 20 20 20 20 20 28 2c 68 20 2c 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(,h.,form).................
d7e0 28 2c 62 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 6c 20 28 63 64 (,b.nil).................(,l.(cd
d800 72 20 2c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 2c 6c 0a 20 20 20 r.,l)))............(while.,l....
d820 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 69 74 20 28 63 61 72 20 2c 6c 29 29 0a 20 ..........(let*.((it.(car.,l))..
d840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 6e 20 2c 66 6f 72 6d 29 29 0a 20 ...................(,n.,form))..
d860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 2c 68 20 2c 6e 29 0a ..............(if.(equal.,h.,n).
d880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 2c 62 0a 20 20 20 20 ...................(when.,b.....
d8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 21 63 6f 6e 73 20 28 6e 72 65 76 65 72 73 .................(!cons.(nrevers
d8c0 65 20 2c 73 29 20 2c 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 e.,s).,r)......................(
d8e0 73 65 74 71 20 2c 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 setq.,s.nil)....................
d900 20 20 28 73 65 74 71 20 2c 62 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(setq.,b.nil))................
d920 20 20 28 73 65 74 71 20 2c 62 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 21 ..(setq.,b.t))................(!
d940 63 6f 6e 73 20 69 74 20 2c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 21 63 64 72 cons.it.,s)................(!cdr
d960 20 2c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 21 63 6f 6e 73 20 28 6e 72 65 76 65 72 .,l)))............(!cons.(nrever
d980 73 65 20 2c 73 29 20 2c 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 se.,s).,r)............(nreverse.
d9a0 2c 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 ,r))))))..(defun.-partition-by-h
d9c0 65 61 64 65 72 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 41 70 70 6c 79 20 46 4e 20 74 6f 20 74 eader.(fn.list)..."Apply.FN.to.t
d9e0 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2e 20 54 68 61 74 20 69 73 20 74 he.first.item.in.LIST..That.is.t
da00 68 65 20 68 65 61 64 65 72 0a 76 61 6c 75 65 2e 20 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 he.header.value..Apply.FN.to.eac
da20 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2c 20 73 70 6c 69 74 74 69 6e 67 20 69 74 20 65 61 63 h.item.in.LIST,.splitting.it.eac
da40 68 20 74 69 6d 65 20 46 4e 0a 72 65 74 75 72 6e 73 20 74 68 65 20 68 65 61 64 65 72 20 76 61 6c h.time.FN.returns.the.header.val
da60 75 65 2c 20 62 75 74 20 6f 6e 6c 79 20 61 66 74 65 72 20 73 65 65 69 6e 67 20 61 74 20 6c 65 61 ue,.but.only.after.seeing.at.lea
da80 73 74 20 6f 6e 65 0a 6f 74 68 65 72 20 76 61 6c 75 65 20 28 74 68 65 20 62 6f 64 79 29 2e 22 0a st.one.other.value.(the.body).".
daa0 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c ..(declare.(important-return-val
dac0 75 65 20 74 29 29 0a 20 20 28 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 65 61 64 65 72 20 ue.t))...(--partition-by-header.
dae0 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 (funcall.fn.it).list))..(defmacr
db00 6f 20 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 20 28 66 6f 72 6d 20 6c o.--partition-after-pred.(form.l
db20 69 73 74 29 0a 20 20 22 50 61 72 74 69 74 69 6f 6e 20 4c 49 53 54 20 61 66 74 65 72 20 65 61 63 ist)..."Partition.LIST.after.eac
db40 68 20 65 6c 65 6d 65 6e 74 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 75 61 74 h.element.for.which.FORM.evaluat
db60 65 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c es.to.non-nil..Each.element.of.L
db80 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 62 65 66 IST.in.turn.is.bound.to.`it'.bef
dba0 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 0a 46 4f 52 4d 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 ore.evaluating.FORM...This.is.th
dbc0 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 70 61 72 e.anaphoric.counterpart.to.`-par
dbe0 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 20 tition-after-pred'."...(let.((l.
dc00 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6c 69 73 74 22 29 29 0a 20 20 20 20 20 20 20 20 28 72 (make-symbol."list")).........(r
dc20 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 0a 20 20 20 20 20 20 20 .(make-symbol."result"))........
dc40 20 28 73 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 73 75 62 6c 69 73 74 22 29 29 29 0a 20 20 .(s.(make-symbol."sublist")))...
dc60 20 20 60 28 6c 65 74 20 28 28 2c 6c 20 2c 6c 69 73 74 29 20 2c 72 20 2c 73 29 0a 20 20 20 20 20 ..`(let.((,l.,list).,r.,s)......
dc80 20 20 28 77 68 65 6e 20 2c 6c 0a 20 20 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 0a 20 ..(when.,l..........(--each.,l..
dca0 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 69 74 20 2c 73 29 0a 20 20 20 20 20 20 20 20 20 ..........(push.it.,s)..........
dcc0 20 20 28 77 68 65 6e 20 2c 66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 ..(when.,form..............(push
dce0 20 28 6e 72 65 76 65 72 73 65 20 2c 73 29 20 2c 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(nreverse.,s).,r)..............
dd00 28 73 65 74 71 20 2c 73 20 28 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 2c 73 (setq.,s.())))..........(when.,s
dd20 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6e 72 65 76 65 72 73 65 20 2c 73 29 20 ............(push.(nreverse.,s).
dd40 2c 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 2c 72 29 29 29 29 29 0a ,r))..........(nreverse.,r))))).
dd60 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 20 28 70 .(defun.-partition-after-pred.(p
dd80 72 65 64 20 6c 69 73 74 29 0a 20 20 22 50 61 72 74 69 74 69 6f 6e 20 4c 49 53 54 20 61 66 74 65 red.list)..."Partition.LIST.afte
dda0 72 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 r.each.element.for.which.PRED.re
ddc0 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 turns.non-nil...This.function's.
dde0 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 70 61 72 74 anaphoric.counterpart.is.`--part
de00 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 ition-after-pred'."...(declare.(
de20 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d important-return-value.t))...(--
de40 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 20 28 66 75 6e 63 61 6c 6c 20 70 72 partition-after-pred.(funcall.pr
de60 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 69 74 69 6f 6e ed.it).list))..(defun.-partition
de80 2d 62 65 66 6f 72 65 2d 70 72 65 64 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 50 61 72 74 -before-pred.(pred.list)..."Part
dea0 69 74 69 6f 6e 20 64 69 72 65 63 74 6c 79 20 62 65 66 6f 72 65 20 65 61 63 68 20 74 69 6d 65 20 ition.directly.before.each.time.
dec0 50 52 45 44 20 69 73 20 74 72 75 65 20 6f 6e 20 61 6e 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 PRED.is.true.on.an.element.of.LI
dee0 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 ST."...(declare.(important-retur
df00 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6e 72 65 76 65 72 73 65 20 28 2d 6d 61 70 20 23 27 n-value.t))...(nreverse.(-map.#'
df20 72 65 76 65 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 reverse...................(-part
df40 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 20 70 72 65 64 20 28 72 65 76 65 72 73 65 20 6c ition-after-pred.pred.(reverse.l
df60 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 ist)))))..(defun.-partition-afte
df80 72 2d 69 74 65 6d 20 28 69 74 65 6d 20 6c 69 73 74 29 0a 20 20 22 50 61 72 74 69 74 69 6f 6e 20 r-item.(item.list)..."Partition.
dfa0 64 69 72 65 63 74 6c 79 20 61 66 74 65 72 20 65 61 63 68 20 74 69 6d 65 20 49 54 45 4d 20 61 70 directly.after.each.time.ITEM.ap
dfc0 70 65 61 72 73 20 69 6e 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 pears.in.LIST."...(declare.(pure
dfe0 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 70 61 .t).(side-effect-free.t))...(-pa
e000 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 20 28 6c 61 6d 62 64 61 20 28 65 6c 65 29 rtition-after-pred.(lambda.(ele)
e020 20 28 65 71 75 61 6c 20 65 6c 65 20 69 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(equal.ele.item))..............
e040 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 61 72 74 ............list))..(defun.-part
e060 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 69 74 65 6d 20 28 69 74 65 6d 20 6c 69 73 74 29 0a 20 20 ition-before-item.(item.list)...
e080 22 50 61 72 74 69 74 69 6f 6e 20 64 69 72 65 63 74 6c 79 20 62 65 66 6f 72 65 20 65 61 63 68 20 "Partition.directly.before.each.
e0a0 74 69 6d 65 20 49 54 45 4d 20 61 70 70 65 61 72 73 20 69 6e 20 4c 49 53 54 2e 22 0a 20 20 28 64 time.ITEM.appears.in.LIST."...(d
e0c0 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 eclare.(pure.t).(side-effect-fre
e0e0 65 20 74 29 29 0a 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 70 72 65 64 20 e.t))...(-partition-before-pred.
e100 28 6c 61 6d 62 64 61 20 28 65 6c 65 29 20 28 65 71 75 61 6c 20 65 6c 65 20 69 74 65 6d 29 29 0a (lambda.(ele).(equal.ele.item)).
e120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 29 29 ..........................list))
e140 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 67 72 6f 75 70 2d 62 79 20 28 66 6f 72 6d 20 6c 69 73 ..(defmacro.--group-by.(form.lis
e160 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 67 72 6f 75 70 2d t)..."Anaphoric.form.of.`-group-
e180 62 79 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 74 29 29 0a 20 20 28 6c by'."...(declare.(debug.t))...(l
e1a0 65 74 20 28 28 6e 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6e 22 29 29 0a 20 20 20 20 20 20 et.((n.(make-symbol."n")).......
e1c0 20 20 28 6b 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 6b 22 29 29 0a 20 20 20 20 20 20 20 20 ..(k.(make-symbol."k")).........
e1e0 28 67 72 70 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 67 72 70 22 29 29 29 0a 20 20 20 20 60 (grp.(make-symbol."grp"))).....`
e200 28 6e 72 65 76 65 72 73 65 0a 20 20 20 20 20 20 28 2d 6d 61 70 0a 20 20 20 20 20 20 20 28 6c 61 (nreverse.......(-map........(la
e220 6d 62 64 61 20 28 2c 6e 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 61 72 20 2c 6e mbda.(,n)..........(cons.(car.,n
e240 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 28 63 64 72 20 )................(nreverse.(cdr.
e260 2c 6e 29 29 29 29 0a 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 66 72 6f 6d 0a 20 20 20 ,n))))........(--reduce-from....
e280 20 20 20 20 20 28 6c 65 74 2a 20 28 28 2c 6b 20 28 2c 40 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 .....(let*.((,k.(,@form)).......
e2a0 20 20 20 20 20 20 20 20 20 28 2c 67 72 70 20 28 61 73 73 6f 63 20 2c 6b 20 61 63 63 29 29 29 0a .........(,grp.(assoc.,k.acc))).
e2c0 20 20 20 20 20 20 20 20 20 20 28 69 66 20 2c 67 72 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........(if.,grp..............
e2e0 20 28 73 65 74 63 64 72 20 2c 67 72 70 20 28 63 6f 6e 73 20 69 74 20 28 63 64 72 20 2c 67 72 70 .(setcdr.,grp.(cons.it.(cdr.,grp
e300 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 20 20 20 ))).............(push...........
e320 20 20 20 28 6c 69 73 74 20 2c 6b 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 61 63 63 ...(list.,k.it)..............acc
e340 29 29 0a 20 20 20 20 20 20 20 20 20 20 61 63 63 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 20 2c 6c ))...........acc).........nil.,l
e360 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 67 72 6f 75 70 2d 62 79 20 28 66 6e 20 6c ist)))))..(defun.-group-by.(fn.l
e380 69 73 74 29 0a 20 20 22 53 65 70 61 72 61 74 65 20 4c 49 53 54 20 69 6e 74 6f 20 61 6e 20 61 6c ist)..."Separate.LIST.into.an.al
e3a0 69 73 74 20 77 68 6f 73 65 20 6b 65 79 73 20 61 72 65 20 46 4e 20 61 70 70 6c 69 65 64 20 74 6f ist.whose.keys.are.FN.applied.to
e3c0 20 74 68 65 0a 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 2e 20 20 4b 65 79 73 20 61 72 65 .the.elements.of.LIST...Keys.are
e3e0 20 63 6f 6d 70 61 72 65 64 20 62 79 20 60 65 71 75 61 6c 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 .compared.by.`equal'."...(declar
e400 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 e.(important-return-value.t))...
e420 28 2d 2d 67 72 6f 75 70 2d 62 79 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 29 20 6c 69 73 74 (--group-by.(funcall.fn.it).list
e440 29 29 0a 0a 28 64 65 66 75 6e 20 2d 69 6e 74 65 72 70 6f 73 65 20 28 73 65 70 20 6c 69 73 74 29 ))..(defun.-interpose.(sep.list)
e460 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 65 6c 65 ..."Return.a.new.list.of.all.ele
e480 6d 65 6e 74 73 20 69 6e 20 4c 49 53 54 20 73 65 70 61 72 61 74 65 64 20 62 79 20 53 45 50 2e 22 ments.in.LIST.separated.by.SEP."
e4a0 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 ...(declare.(side-effect-free.t)
e4c0 29 0a 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 28 77 68 65 6e 20 6c 69 73 74 )...(let.(result).....(when.list
e4e0 0a 20 20 20 20 20 20 28 21 63 6f 6e 73 20 28 63 61 72 20 6c 69 73 74 29 20 72 65 73 75 6c 74 29 .......(!cons.(car.list).result)
e500 0a 20 20 20 20 20 20 28 21 63 64 72 20 6c 69 73 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 6c .......(!cdr.list)).....(while.l
e520 69 73 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 63 6f 6e 73 20 28 63 61 ist.......(setq.result.(cons.(ca
e540 72 20 6c 69 73 74 29 20 28 63 6f 6e 73 20 73 65 70 20 72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 r.list).(cons.sep.result))).....
e560 20 20 28 21 63 64 72 20 6c 69 73 74 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 ..(!cdr.list)).....(nreverse.res
e580 75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 69 6e 74 65 72 6c 65 61 76 65 20 28 26 72 65 73 ult)))..(defun.-interleave.(&res
e5a0 74 20 6c 69 73 74 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 t.lists)..."Return.a.new.list.of
e5c0 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 65 61 63 68 20 6c 69 73 74 2c 20 74 68 .the.first.item.in.each.list,.th
e5e0 65 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 65 74 63 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 en.the.second.etc."...(declare.(
e600 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 77 68 65 6e 20 6c 69 73 side-effect-free.t))...(when.lis
e620 74 73 0a 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 28 77 68 69 6c ts.....(let.(result).......(whil
e640 65 20 28 2d 6e 6f 6e 65 3f 20 27 6e 75 6c 6c 20 6c 69 73 74 73 29 0a 20 20 20 20 20 20 20 20 28 e.(-none?.'null.lists).........(
e660 2d 2d 65 61 63 68 20 6c 69 73 74 73 20 28 21 63 6f 6e 73 20 28 63 61 72 20 69 74 29 20 72 65 73 --each.lists.(!cons.(car.it).res
e680 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 73 74 73 20 28 2d 6d 61 70 20 ult)).........(setq.lists.(-map.
e6a0 27 63 64 72 20 6c 69 73 74 73 29 29 29 0a 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 'cdr.lists))).......(nreverse.re
e6c0 73 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 7a 69 70 2d 77 69 74 68 20 28 sult))))..(defmacro.--zip-with.(
e6e0 66 6f 72 6d 20 6c 69 73 74 31 20 6c 69 73 74 32 29 0a 20 20 22 5a 69 70 20 4c 49 53 54 31 20 61 form.list1.list2)..."Zip.LIST1.a
e700 6e 64 20 4c 49 53 54 32 20 69 6e 74 6f 20 61 20 6e 65 77 20 6c 69 73 74 20 61 63 63 6f 72 64 69 nd.LIST2.into.a.new.list.accordi
e720 6e 67 20 74 6f 20 46 4f 52 4d 2e 0a 54 68 61 74 20 69 73 2c 20 65 76 61 6c 75 61 74 65 20 46 4f ng.to.FORM..That.is,.evaluate.FO
e740 52 4d 20 66 6f 72 20 65 61 63 68 20 69 74 65 6d 20 70 61 69 72 20 66 72 6f 6d 20 74 68 65 20 74 RM.for.each.item.pair.from.the.t
e760 77 6f 20 6c 69 73 74 73 2c 20 61 6e 64 0a 72 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 wo.lists,.and.return.the.list.of
e780 20 72 65 73 75 6c 74 73 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 73 20 6c 6f 6e 67 .results...The.result.is.as.long
e7a0 20 61 73 20 74 68 65 20 73 68 6f 72 74 65 72 0a 6c 69 73 74 2e 0a 0a 45 61 63 68 20 65 6c 65 6d .as.the.shorter.list...Each.elem
e7c0 65 6e 74 20 6f 66 20 4c 49 53 54 31 20 61 6e 64 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 ent.of.LIST1.and.each.element.of
e7e0 20 4c 49 53 54 32 20 69 6e 20 74 75 72 6e 20 61 72 65 20 62 6f 75 6e 64 0a 70 61 69 72 77 69 73 .LIST2.in.turn.are.bound.pairwis
e800 65 20 74 6f 20 60 69 74 27 20 61 6e 64 20 60 6f 74 68 65 72 27 2c 20 72 65 73 70 65 63 74 69 76 e.to.`it'.and.`other',.respectiv
e820 65 6c 79 2c 20 61 6e 64 20 74 68 65 69 72 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 74 68 65 20 ely,.and.their.index.within.the.
e840 6c 69 73 74 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 2c 20 62 65 66 6f 72 65 20 65 76 61 6c 75 list.to.`it-index',.before.evalu
e860 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 ating.FORM...This.is.the.anaphor
e880 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 7a 69 70 2d 77 69 74 68 27 2e 22 0a ic.counterpart.to.`-zip-with'.".
e8a0 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 ..(declare.(debug.(form.form.for
e8c0 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 72 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 m)))...(let.((r.(make-symbol."re
e8e0 73 75 6c 74 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c 32 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c sult")).........(l2.(make-symbol
e900 20 22 6c 69 73 74 32 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 6c 32 20 2c 6c 69 73 ."list2"))).....`(let.((,l2.,lis
e920 74 32 29 20 2c 72 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 2c 6c 69 t2).,r)........(--each-while.,li
e940 73 74 31 20 2c 6c 32 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 74 68 65 72 20 28 70 st1.,l2..........(let.((other.(p
e960 6f 70 20 2c 6c 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 6f 74 68 op.,l2)))............(ignore.oth
e980 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 2c 66 6f 72 6d 20 2c 72 29 29 29 er)............(push.,form.,r)))
e9a0 0a 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 2c 72 29 29 29 29 0a 0a 28 64 65 66 75 6e ........(nreverse.,r))))..(defun
e9c0 20 2d 7a 69 70 2d 77 69 74 68 20 28 66 6e 20 6c 69 73 74 31 20 6c 69 73 74 32 29 0a 20 20 22 5a .-zip-with.(fn.list1.list2)..."Z
e9e0 69 70 20 4c 49 53 54 31 20 61 6e 64 20 4c 49 53 54 32 20 69 6e 74 6f 20 61 20 6e 65 77 20 6c 69 ip.LIST1.and.LIST2.into.a.new.li
ea00 73 74 20 75 73 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 2e 0a 54 68 61 74 20 69 st.using.the.function.FN..That.i
ea20 73 2c 20 61 70 70 6c 79 20 46 4e 20 70 61 69 72 77 69 73 65 20 74 61 6b 69 6e 67 20 61 73 20 66 s,.apply.FN.pairwise.taking.as.f
ea40 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 74 68 65 20 6e 65 78 74 0a 65 6c 65 6d 65 6e 74 20 6f irst.argument.the.next.element.o
ea60 66 20 4c 49 53 54 31 20 61 6e 64 20 61 73 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 74 f.LIST1.and.as.second.argument.t
ea80 68 65 20 6e 65 78 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 32 0a 61 74 20 74 68 65 20 he.next.element.of.LIST2.at.the.
eaa0 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 70 6f 73 69 74 69 6f 6e 2e 20 20 54 68 65 20 72 65 73 corresponding.position...The.res
eac0 75 6c 74 20 69 73 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 0a 73 68 6f 72 74 65 72 20 6c 69 ult.is.as.long.as.the.shorter.li
eae0 73 74 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 st...This.function's.anaphoric.c
eb00 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 7a 69 70 2d 77 69 74 68 27 2e 0a 0a 46 6f 72 ounterpart.is.`--zip-with'...For
eb20 20 6f 74 68 65 72 20 7a 69 70 73 2c 20 73 65 65 20 61 6c 73 6f 20 60 2d 7a 69 70 2d 6c 69 73 74 .other.zips,.see.also.`-zip-list
eb40 73 27 20 61 6e 64 20 60 2d 7a 69 70 2d 66 69 6c 6c 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 s'.and.`-zip-fill'."...(declare.
eb60 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d (important-return-value.t))...(-
eb80 2d 7a 69 70 2d 77 69 74 68 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 69 74 20 6f 74 68 65 72 29 20 -zip-with.(funcall.fn.it.other).
eba0 6c 69 73 74 31 20 6c 69 73 74 32 29 29 0a 0a 28 64 65 66 75 6e 20 2d 7a 69 70 2d 6c 69 73 74 73 list1.list2))..(defun.-zip-lists
ebc0 20 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 5a 69 70 20 4c 49 53 54 53 20 74 6f 67 65 .(&rest.lists)..."Zip.LISTS.toge
ebe0 74 68 65 72 2e 0a 0a 47 72 6f 75 70 20 74 68 65 20 68 65 61 64 20 6f 66 20 65 61 63 68 20 6c 69 ther...Group.the.head.of.each.li
ec00 73 74 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 st,.followed.by.the.second.eleme
ec20 6e 74 20 6f 66 0a 65 61 63 68 20 6c 69 73 74 2c 20 61 6e 64 20 73 6f 20 6f 6e 2e 20 20 54 68 65 nt.of.each.list,.and.so.on...The
ec40 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 74 75 72 6e 65 64 20 67 72 6f 75 70 69 6e 67 73 20 69 73 .number.of.returned.groupings.is
ec60 20 65 71 75 61 6c 0a 74 6f 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 73 68 6f 72 .equal.to.the.length.of.the.shor
ec80 74 65 73 74 20 69 6e 70 75 74 20 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 20 6c 65 6e 67 74 68 20 test.input.list,.and.the.length.
eca0 6f 66 20 65 61 63 68 0a 67 72 6f 75 70 69 6e 67 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 of.each.grouping.is.equal.to.the
ecc0 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 70 75 74 20 4c 49 53 54 53 2e 0a 0a 54 68 65 20 72 65 74 .number.of.input.LISTS...The.ret
ece0 75 72 6e 20 76 61 6c 75 65 20 69 73 20 61 6c 77 61 79 73 20 61 20 6c 69 73 74 20 6f 66 20 70 72 urn.value.is.always.a.list.of.pr
ed00 6f 70 65 72 20 6c 69 73 74 73 2c 20 69 6e 20 63 6f 6e 74 72 61 73 74 20 74 6f 0a 60 2d 7a 69 70 oper.lists,.in.contrast.to.`-zip
ed20 27 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 65 64 '.which.returns.a.list.of.dotted
ed40 20 70 61 69 72 73 20 77 68 65 6e 20 6f 6e 6c 79 20 74 77 6f 20 69 6e 70 75 74 0a 4c 49 53 54 53 .pairs.when.only.two.input.LISTS
ed60 20 61 72 65 20 70 72 6f 76 69 64 65 64 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 7a 69 70 2d .are.provided...See.also:.`-zip-
ed80 70 61 69 72 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 pair'."...(declare.(pure.t).(sid
eda0 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 77 68 65 6e 20 6c 69 73 74 73 0a e-effect-free.t))...(when.lists.
edc0 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 ....(let.(results).......(while.
ede0 28 2d 2d 65 76 65 72 79 20 69 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 (--every.it.lists).........(push
ee00 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 6c 69 73 74 73 29 20 72 65 73 75 6c 74 73 29 0a 20 .(mapcar.#'car.lists).results)..
ee20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 69 73 74 73 20 28 6d 61 70 63 61 72 20 23 27 63 64 72 .......(setq.lists.(mapcar.#'cdr
ee40 20 6c 69 73 74 73 29 29 29 0a 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 .lists))).......(nreverse.result
ee60 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 7a 69 70 2d 6c 69 73 74 73 2d 66 69 6c 6c 20 28 66 s))))..(defun.-zip-lists-fill.(f
ee80 69 6c 6c 2d 76 61 6c 75 65 20 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 5a 69 70 20 4c 49 ill-value.&rest.lists)..."Zip.LI
eea0 53 54 53 20 74 6f 67 65 74 68 65 72 2c 20 70 61 64 64 69 6e 67 20 73 68 6f 72 74 65 72 20 6c 69 STS.together,.padding.shorter.li
eec0 73 74 73 20 77 69 74 68 20 46 49 4c 4c 2d 56 41 4c 55 45 2e 0a 54 68 69 73 20 69 73 20 6c 69 6b sts.with.FILL-VALUE..This.is.lik
eee0 65 20 60 2d 7a 69 70 2d 6c 69 73 74 73 27 20 28 77 68 69 63 68 20 73 65 65 29 2c 20 65 78 63 65 e.`-zip-lists'.(which.see),.exce
ef00 70 74 20 69 74 20 72 65 74 61 69 6e 73 20 61 6c 6c 0a 65 6c 65 6d 65 6e 74 73 20 61 74 20 70 6f pt.it.retains.all.elements.at.po
ef20 73 69 74 69 6f 6e 73 20 62 65 79 6f 6e 64 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73 68 sitions.beyond.the.end.of.the.sh
ef40 6f 72 74 65 73 74 20 6c 69 73 74 2e 20 20 54 68 65 0a 6e 75 6d 62 65 72 20 6f 66 20 72 65 74 75 ortest.list...The.number.of.retu
ef60 72 6e 65 64 20 67 72 6f 75 70 69 6e 67 73 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 6c rned.groupings.is.equal.to.the.l
ef80 65 6e 67 74 68 20 6f 66 20 74 68 65 0a 6c 6f 6e 67 65 73 74 20 69 6e 70 75 74 20 6c 69 73 74 2c ength.of.the.longest.input.list,
efa0 20 61 6e 64 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 65 61 63 68 20 67 72 6f 75 70 69 6e 67 .and.the.length.of.each.grouping
efc0 20 69 73 20 65 71 75 61 6c 20 74 6f 0a 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 70 75 74 .is.equal.to.the.number.of.input
efe0 20 4c 49 53 54 53 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 .LISTS."...(declare.(pure.t).(si
f000 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 77 68 65 6e 20 6c 69 73 74 73 de-effect-free.t))...(when.lists
f020 0a 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 .....(let.(results).......(while
f040 20 28 2d 2d 73 6f 6d 65 20 69 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 .(--some.it.lists).........(push
f060 20 28 2d 2d 6d 61 70 20 28 69 66 20 69 74 20 28 63 61 72 20 69 74 29 20 66 69 6c 6c 2d 76 61 6c .(--map.(if.it.(car.it).fill-val
f080 75 65 29 20 6c 69 73 74 73 29 20 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 ue).lists).results).........(set
f0a0 71 20 6c 69 73 74 73 20 28 6d 61 70 63 61 72 20 23 27 63 64 72 20 6c 69 73 74 73 29 29 29 0a 20 q.lists.(mapcar.#'cdr.lists)))..
f0c0 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 73 29 29 29 29 0a 0a 28 64 65 66 .....(nreverse.results))))..(def
f0e0 75 6e 20 2d 75 6e 7a 69 70 2d 6c 69 73 74 73 20 28 6c 69 73 74 73 29 0a 20 20 22 55 6e 7a 69 70 un.-unzip-lists.(lists)..."Unzip
f100 20 4c 49 53 54 53 2e 0a 0a 54 68 69 73 20 77 6f 72 6b 73 20 6a 75 73 74 20 6c 69 6b 65 20 60 2d .LISTS...This.works.just.like.`-
f120 7a 69 70 2d 6c 69 73 74 73 27 20 28 77 68 69 63 68 20 73 65 65 29 2c 20 62 75 74 20 74 61 6b 65 zip-lists'.(which.see),.but.take
f140 73 20 61 20 6c 69 73 74 0a 6f 66 20 6c 69 73 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 76 s.a.list.of.lists.instead.of.a.v
f160 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2c 20 73 75 63 ariable.number.of.arguments,.suc
f180 68 20 74 68 61 74 0a 0a 20 20 28 2d 75 6e 7a 69 70 2d 6c 69 73 74 73 20 28 2d 7a 69 70 2d 6c 69 h.that....(-unzip-lists.(-zip-li
f1a0 73 74 73 20 41 52 47 53 2e 2e 2e 29 29 0a 0a 69 73 20 69 64 65 6e 74 69 74 79 20 28 67 69 76 65 sts.ARGS...))..is.identity.(give
f1c0 6e 20 74 68 61 74 20 74 68 65 20 6c 69 73 74 73 20 63 6f 6d 70 72 69 73 69 6e 67 20 41 52 47 53 n.that.the.lists.comprising.ARGS
f1e0 20 61 72 65 20 6f 66 20 74 68 65 20 73 61 6d 65 0a 6c 65 6e 67 74 68 29 2e 22 0a 20 20 28 64 65 .are.of.the.same.length)."...(de
f200 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 clare.(pure.t).(side-effect-free
f220 20 74 29 29 0a 20 20 28 61 70 70 6c 79 20 23 27 2d 7a 69 70 2d 6c 69 73 74 73 20 6c 69 73 74 73 .t))...(apply.#'-zip-lists.lists
f240 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 64 61 73 68 2d 2d 6c 65 6e 67 74 68 3d 0a 20 20 28 ))..(defalias.'dash--length=...(
f260 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6c 65 6e 67 74 68 3d 29 0a 20 20 20 20 20 20 23 27 6c 65 if.(fboundp.'length=).......#'le
f280 6e 67 74 68 3d 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6c 69 73 74 20 6c 65 6e 67 74 68 29 0a ngth=.....(lambda.(list.length).
f2a0 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 3c 20 6c 65 6e 67 74 68 20 30 29 20 6e 69 6c 29 0a 20 ......(cond.((<.length.0).nil)..
f2c0 20 20 20 20 20 20 20 20 20 20 20 28 28 7a 65 72 6f 70 20 6c 65 6e 67 74 68 29 20 28 6e 75 6c 6c ...........((zerop.length).(null
f2e0 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 74 20 28 28 6c 61 73 74 .list)).............((let.((last
f300 20 28 6e 74 68 63 64 72 20 28 31 2d 20 6c 65 6e 67 74 68 29 20 6c 69 73 74 29 29 29 0a 20 20 20 .(nthcdr.(1-.length).list)))....
f320 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6c 61 73 74 20 28 6e 75 6c 6c 20 28 63 64 72 ............(and.last.(null.(cdr
f340 20 6c 61 73 74 29 29 29 29 29 29 29 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 .last))))))))..."Return.non-nil.
f360 69 66 20 4c 49 53 54 20 69 73 20 6f 66 20 4c 45 4e 47 54 48 2e 0a 54 68 69 73 20 69 73 20 61 20 if.LIST.is.of.LENGTH..This.is.a.
f380 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 73 68 69 6d 20 66 6f 72 20 60 6c 65 6e 67 74 68 3d 27 compatibility.shim.for.`length='
f3a0 20 69 6e 20 45 6d 61 63 73 20 32 38 2e 0a 5c 6e 28 66 6e 20 4c 49 53 54 20 4c 45 4e 47 54 48 29 .in.Emacs.28..\n(fn.LIST.LENGTH)
f3c0 22 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 7a 69 70 2d 6c 69 73 74 73 2d 6f 72 2d 70 61 ")..(defun.dash--zip-lists-or-pa
f3e0 69 72 20 28 5f 66 6f 72 6d 20 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 52 65 74 75 72 6e ir.(_form.&rest.lists)..."Return
f400 20 61 20 66 6f 72 6d 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 61 70 70 6c 79 69 6e 67 20 60 .a.form.equivalent.to.applying.`
f420 2d 7a 69 70 27 20 74 6f 20 4c 49 53 54 53 2e 0a 54 68 69 73 20 60 63 6f 6d 70 69 6c 65 72 2d 6d -zip'.to.LISTS..This.`compiler-m
f440 61 63 72 6f 27 20 77 61 72 6e 73 20 61 62 6f 75 74 20 64 69 73 63 6f 75 72 61 67 65 64 20 60 2d acro'.warns.about.discouraged.`-
f460 7a 69 70 27 20 75 73 61 67 65 20 61 6e 64 0a 64 65 6c 65 67 61 74 65 73 20 74 6f 20 60 2d 7a 69 zip'.usage.and.delegates.to.`-zi
f480 70 2d 6c 69 73 74 73 27 20 6f 72 20 60 2d 7a 69 70 2d 70 61 69 72 27 20 64 65 70 65 6e 64 69 6e p-lists'.or.`-zip-pair'.dependin
f4a0 67 20 6f 6e 20 74 68 65 20 6e 75 6d 62 65 72 0a 6f 66 20 4c 49 53 54 53 2e 22 0a 20 20 28 69 66 g.on.the.number.of.LISTS."...(if
f4c0 20 28 6e 6f 74 20 28 64 61 73 68 2d 2d 6c 65 6e 67 74 68 3d 20 6c 69 73 74 73 20 32 29 29 0a 20 .(not.(dash--length=.lists.2))..
f4e0 20 20 20 20 20 28 63 6f 6e 73 20 23 27 2d 7a 69 70 2d 6c 69 73 74 73 20 6c 69 73 74 73 29 0a 20 .....(cons.#'-zip-lists.lists)..
f500 20 20 20 28 6c 65 74 20 28 28 70 61 69 72 20 28 63 6f 6e 73 20 23 27 2d 7a 69 70 2d 70 61 69 72 ...(let.((pair.(cons.#'-zip-pair
f520 20 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 73 67 20 22 55 73 65 20 2d 7a 69 .lists))...........(msg."Use.-zi
f540 70 2d 70 61 69 72 20 69 6e 73 74 65 61 64 20 6f 66 20 2d 7a 69 70 20 74 6f 20 67 65 74 20 61 20 p-pair.instead.of.-zip.to.get.a.
f560 6c 69 73 74 20 6f 66 20 70 61 69 72 73 22 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 62 6f 75 list.of.pairs")).......(if.(fbou
f580 6e 64 70 20 27 6d 61 63 72 6f 65 78 70 2d 77 61 72 6e 2d 61 6e 64 2d 72 65 74 75 72 6e 29 0a 20 ndp.'macroexp-warn-and-return)..
f5a0 20 20 20 20 20 20 20 20 20 28 6d 61 63 72 6f 65 78 70 2d 77 61 72 6e 2d 61 6e 64 2d 72 65 74 75 .........(macroexp-warn-and-retu
f5c0 72 6e 20 6d 73 67 20 70 61 69 72 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 6d 73 rn.msg.pair).........(message.ms
f5e0 67 29 0a 20 20 20 20 20 20 20 20 70 61 69 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 7a 69 70 g).........pair))))..(defun.-zip
f600 20 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 5a 69 70 20 4c 49 53 54 53 20 74 6f 67 65 .(&rest.lists)..."Zip.LISTS.toge
f620 74 68 65 72 2e 0a 0a 47 72 6f 75 70 20 74 68 65 20 68 65 61 64 20 6f 66 20 65 61 63 68 20 6c 69 ther...Group.the.head.of.each.li
f640 73 74 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 st,.followed.by.the.second.eleme
f660 6e 74 20 6f 66 0a 65 61 63 68 20 6c 69 73 74 2c 20 61 6e 64 20 73 6f 20 6f 6e 2e 20 20 54 68 65 nt.of.each.list,.and.so.on...The
f680 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 74 75 72 6e 65 64 20 67 72 6f 75 70 69 6e 67 73 20 69 73 .number.of.returned.groupings.is
f6a0 20 65 71 75 61 6c 0a 74 6f 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 73 68 6f 72 .equal.to.the.length.of.the.shor
f6c0 74 65 73 74 20 69 6e 70 75 74 20 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 20 6e 75 6d 62 65 72 20 test.input.list,.and.the.number.
f6e0 6f 66 20 69 74 65 6d 73 0a 69 6e 20 65 61 63 68 20 67 72 6f 75 70 69 6e 67 20 69 73 20 65 71 75 of.items.in.each.grouping.is.equ
f700 61 6c 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 70 75 74 20 4c 49 53 54 53 2e al.to.the.number.of.input.LISTS.
f720 0a 0a 49 66 20 6f 6e 6c 79 20 74 77 6f 20 4c 49 53 54 53 20 61 72 65 20 70 72 6f 76 69 64 65 64 ..If.only.two.LISTS.are.provided
f740 20 61 73 20 61 72 67 75 6d 65 6e 74 73 2c 20 72 65 74 75 72 6e 20 74 68 65 20 67 72 6f 75 70 69 .as.arguments,.return.the.groupi
f760 6e 67 73 0a 61 73 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 65 64 20 70 61 69 72 73 2e 20 20 ngs.as.a.list.of.dotted.pairs...
f780 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 20 74 68 65 20 67 72 6f 75 70 69 6e 67 73 20 Otherwise,.return.the.groupings.
f7a0 61 73 20 61 0a 6c 69 73 74 20 6f 66 20 70 72 6f 70 65 72 20 6c 69 73 74 73 2e 0a 0a 53 69 6e 63 as.a.list.of.proper.lists...Sinc
f7c0 65 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 63 68 61 6e 67 65 73 20 66 6f 72 6d 20 e.the.return.value.changes.form.
f7e0 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 61 72 67 75 6d depending.on.the.number.of.argum
f800 65 6e 74 73 2c 20 69 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 ents,.it.is.generally.recommende
f820 64 20 74 6f 20 75 73 65 20 60 2d 7a 69 70 2d 6c 69 73 74 73 27 0a 69 6e 73 74 65 61 64 2c 20 6f d.to.use.`-zip-lists'.instead,.o
f840 72 20 60 2d 7a 69 70 2d 70 61 69 72 27 20 69 66 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 65 r.`-zip-pair'.if.a.list.of.dotte
f860 64 20 70 61 69 72 73 20 69 73 20 64 65 73 69 72 65 64 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 d.pairs.is.desired...See.also:.`
f880 2d 75 6e 7a 69 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 63 6f 6d 70 69 6c 65 72 2d 6d -unzip'."...(declare.(compiler-m
f8a0 61 63 72 6f 20 64 61 73 68 2d 2d 7a 69 70 2d 6c 69 73 74 73 2d 6f 72 2d 70 61 69 72 29 0a 20 20 acro.dash--zip-lists-or-pair)...
f8c0 20 20 20 20 20 20 20 20 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 .........(pure.t).(side-effect-f
f8e0 72 65 65 20 74 29 29 0a 20 20 3b 3b 20 46 6f 72 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 ree.t))...;;.For.backward.compat
f900 69 62 69 6c 69 74 79 2c 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 65 64 ibility,.return.a.list.of.dotted
f920 20 70 61 69 72 73 20 69 66 20 74 77 6f 0a 20 20 3b 3b 20 61 72 67 75 6d 65 6e 74 73 20 77 65 72 .pairs.if.two...;;.arguments.wer
f940 65 20 70 72 6f 76 69 64 65 64 2e 0a 20 20 28 61 70 70 6c 79 20 28 69 66 20 28 64 61 73 68 2d 2d e.provided....(apply.(if.(dash--
f960 6c 65 6e 67 74 68 3d 20 6c 69 73 74 73 20 32 29 20 23 27 2d 7a 69 70 2d 70 61 69 72 20 23 27 2d length=.lists.2).#'-zip-pair.#'-
f980 7a 69 70 2d 6c 69 73 74 73 29 20 6c 69 73 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 2d 7a 69 70 2d zip-lists).lists))..(defun.-zip-
f9a0 70 61 69 72 20 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 5a 69 70 20 4c 49 53 54 31 20 pair.(&rest.lists)..."Zip.LIST1.
f9c0 61 6e 64 20 4c 49 53 54 32 20 74 6f 67 65 74 68 65 72 2e 0a 0a 4d 61 6b 65 20 61 20 70 61 69 72 and.LIST2.together...Make.a.pair
f9e0 20 77 69 74 68 20 74 68 65 20 68 65 61 64 20 6f 66 20 65 61 63 68 20 6c 69 73 74 2c 20 66 6f 6c .with.the.head.of.each.list,.fol
fa00 6c 6f 77 65 64 20 62 79 20 61 20 70 61 69 72 20 77 69 74 68 0a 74 68 65 20 73 65 63 6f 6e 64 20 lowed.by.a.pair.with.the.second.
fa20 65 6c 65 6d 65 6e 74 20 6f 66 20 65 61 63 68 20 6c 69 73 74 2c 20 61 6e 64 20 73 6f 20 6f 6e 2e element.of.each.list,.and.so.on.
fa40 20 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 70 61 69 72 73 0a 72 65 74 75 72 6e 65 64 20 69 ..The.number.of.pairs.returned.i
fa60 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 73 68 6f s.equal.to.the.length.of.the.sho
fa80 72 74 65 72 20 69 6e 70 75 74 20 6c 69 73 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 7a 69 rter.input.list...See.also:.`-zi
faa0 70 2d 6c 69 73 74 73 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 61 64 76 65 72 74 69 73 65 p-lists'."...(declare.(advertise
fac0 64 2d 63 61 6c 6c 69 6e 67 2d 63 6f 6e 76 65 6e 74 69 6f 6e 20 28 6c 69 73 74 31 20 6c 69 73 74 d-calling-convention.(list1.list
fae0 32 29 20 22 32 2e 32 30 2e 30 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 75 72 65 20 74 29 2)."2.20.0")............(pure.t)
fb00 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 69 66 20 28 64 61 .(side-effect-free.t))...(if.(da
fb20 73 68 2d 2d 6c 65 6e 67 74 68 3d 20 6c 69 73 74 73 20 32 29 0a 20 20 20 20 20 20 28 2d 2d 7a 69 sh--length=.lists.2).......(--zi
fb40 70 2d 77 69 74 68 20 28 63 6f 6e 73 20 69 74 20 6f 74 68 65 72 29 20 28 63 61 72 20 6c 69 73 74 p-with.(cons.it.other).(car.list
fb60 73 29 20 28 63 61 64 72 20 6c 69 73 74 73 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 2d 7a s).(cadr.lists)).....(apply.#'-z
fb80 69 70 2d 6c 69 73 74 73 20 6c 69 73 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 7a 69 70 2d 66 ip-lists.lists)))..(defun.-zip-f
fba0 69 6c 6c 20 28 66 69 6c 6c 2d 76 61 6c 75 65 20 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 ill.(fill-value.&rest.lists)..."
fbc0 5a 69 70 20 4c 49 53 54 53 20 74 6f 67 65 74 68 65 72 2c 20 70 61 64 64 69 6e 67 20 73 68 6f 72 Zip.LISTS.together,.padding.shor
fbe0 74 65 72 20 6c 69 73 74 73 20 77 69 74 68 20 46 49 4c 4c 2d 56 41 4c 55 45 2e 0a 54 68 69 73 20 ter.lists.with.FILL-VALUE..This.
fc00 69 73 20 6c 69 6b 65 20 60 2d 7a 69 70 27 20 28 77 68 69 63 68 20 73 65 65 29 2c 20 65 78 63 65 is.like.`-zip'.(which.see),.exce
fc20 70 74 20 69 74 20 72 65 74 61 69 6e 73 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73 0a 61 74 20 70 6f pt.it.retains.all.elements.at.po
fc40 73 69 74 69 6f 6e 73 20 62 65 79 6f 6e 64 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73 68 sitions.beyond.the.end.of.the.sh
fc60 6f 72 74 65 73 74 20 6c 69 73 74 2e 20 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 72 65 74 75 ortest.list...The.number.of.retu
fc80 72 6e 65 64 20 67 72 6f 75 70 69 6e 67 73 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 6c rned.groupings.is.equal.to.the.l
fca0 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6c 6f 6e 67 65 73 74 20 69 6e 70 75 74 0a 6c 69 73 74 2c ength.of.the.longest.input.list,
fcc0 20 61 6e 64 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 65 61 63 68 20 67 72 6f 75 70 69 6e 67 .and.the.length.of.each.grouping
fce0 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 69 6e 70 75 74 .is.equal.to.the.number.of.input
fd00 20 4c 49 53 54 53 2e 0a 0a 53 69 6e 63 65 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 .LISTS...Since.the.return.value.
fd20 63 68 61 6e 67 65 73 20 66 6f 72 6d 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6e 75 changes.form.depending.on.the.nu
fd40 6d 62 65 72 20 6f 66 0a 61 72 67 75 6d 65 6e 74 73 2c 20 69 74 20 69 73 20 67 65 6e 65 72 61 6c mber.of.arguments,.it.is.general
fd60 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 60 2d 7a 69 70 2d 6c 69 73 74 ly.recommended.to.use.`-zip-list
fd80 73 2d 66 69 6c 6c 27 0a 69 6e 73 74 65 61 64 2c 20 75 6e 6c 65 73 73 20 61 20 6c 69 73 74 20 6f s-fill'.instead,.unless.a.list.o
fda0 66 20 64 6f 74 74 65 64 20 70 61 69 72 73 20 69 73 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 73 f.dotted.pairs.is.explicitly.des
fdc0 69 72 65 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 ired."...(declare.(pure.t).(side
fde0 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 -effect-free.t))...(cond.((null.
fe00 6c 69 73 74 73 29 20 28 29 29 0a 20 20 20 20 20 20 20 20 28 28 64 61 73 68 2d 2d 6c 65 6e 67 74 lists).()).........((dash--lengt
fe20 68 3d 20 6c 69 73 74 73 20 32 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 69 73 74 h=.lists.2)..........(let.((list
fe40 31 20 28 63 61 72 20 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 1.(car.lists))................(l
fe60 69 73 74 32 20 28 63 61 64 72 20 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ist2.(cadr.lists))..............
fe80 20 20 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6f 72 ..results)............(while.(or
fea0 20 6c 69 73 74 31 20 6c 69 73 74 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 .list1.list2)..............(push
fec0 20 28 63 6f 6e 73 20 28 69 66 20 6c 69 73 74 31 20 28 70 6f 70 20 6c 69 73 74 31 29 20 66 69 6c .(cons.(if.list1.(pop.list1).fil
fee0 6c 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l-value)........................
ff00 20 20 28 69 66 20 6c 69 73 74 32 20 28 70 6f 70 20 6c 69 73 74 32 29 20 66 69 6c 6c 2d 76 61 6c ..(if.list2.(pop.list2).fill-val
ff20 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 73 29 ue))....................results)
ff40 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 73 29 29 )............(nreverse.results))
ff60 29 0a 20 20 20 20 20 20 20 20 28 28 61 70 70 6c 79 20 23 27 2d 7a 69 70 2d 6c 69 73 74 73 2d 66 ).........((apply.#'-zip-lists-f
ff80 69 6c 6c 20 66 69 6c 6c 2d 76 61 6c 75 65 20 6c 69 73 74 73 29 29 29 29 0a 0a 28 64 65 66 75 6e ill.fill-value.lists))))..(defun
ffa0 20 2d 75 6e 7a 69 70 20 28 6c 69 73 74 73 29 0a 20 20 22 55 6e 7a 69 70 20 4c 49 53 54 53 2e 0a .-unzip.(lists)..."Unzip.LISTS..
ffc0 0a 54 68 69 73 20 77 6f 72 6b 73 20 6a 75 73 74 20 6c 69 6b 65 20 60 2d 7a 69 70 27 20 28 77 68 .This.works.just.like.`-zip'.(wh
ffe0 69 63 68 20 73 65 65 29 2c 20 62 75 74 20 74 61 6b 65 73 20 61 20 6c 69 73 74 20 6f 66 0a 6c 69 ich.see),.but.takes.a.list.of.li
10000 73 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 sts.instead.of.a.variable.number
10020 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2c 20 73 75 63 68 20 74 68 61 74 0a 0a 20 20 28 2d 75 6e .of.arguments,.such.that....(-un
10040 7a 69 70 20 28 2d 7a 69 70 20 4c 31 20 4c 32 20 4c 33 20 2e 2e 2e 29 29 0a 0a 69 73 20 69 64 65 zip.(-zip.L1.L2.L3....))..is.ide
10060 6e 74 69 74 79 20 28 67 69 76 65 6e 20 74 68 61 74 20 74 68 65 20 6c 69 73 74 73 20 61 72 65 20 ntity.(given.that.the.lists.are.
10080 6f 66 20 74 68 65 20 73 61 6d 65 20 6c 65 6e 67 74 68 2c 20 61 6e 64 0a 74 68 61 74 20 60 2d 7a of.the.same.length,.and.that.`-z
100a0 69 70 27 20 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d ip'.is.not.called.with.two.argum
100c0 65 6e 74 73 2c 20 62 65 63 61 75 73 65 20 6f 66 20 74 68 65 0a 63 61 76 65 61 74 20 64 65 73 63 ents,.because.of.the.caveat.desc
100e0 72 69 62 65 64 20 69 6e 20 69 74 73 20 64 6f 63 73 74 72 69 6e 67 29 2e 0a 0a 4e 6f 74 65 20 69 ribed.in.its.docstring)...Note.i
10100 6e 20 70 61 72 74 69 63 75 6c 61 72 20 74 68 61 74 20 63 61 6c 6c 69 6e 67 20 60 2d 75 6e 7a 69 n.particular.that.calling.`-unzi
10120 70 27 20 6f 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 77 6f 20 6c 69 73 74 73 0a 77 69 6c 6c 20 72 p'.on.a.list.of.two.lists.will.r
10140 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 65 64 20 70 61 69 72 73 2e 0a 0a 53 eturn.a.list.of.dotted.pairs...S
10160 69 6e 63 65 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 63 68 61 6e 67 65 73 20 66 6f ince.the.return.value.changes.fo
10180 72 6d 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 4c 49 rm.depending.on.the.number.of.LI
101a0 53 54 53 2c 20 69 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 STS,.it.is.generally.recommended
101c0 20 74 6f 20 75 73 65 20 60 2d 75 6e 7a 69 70 2d 6c 69 73 74 73 27 20 69 6e 73 74 65 61 64 2e 22 .to.use.`-unzip-lists'.instead."
101e0 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 ...(declare.(pure.t).(side-effec
10200 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 61 70 70 6c 79 20 23 27 2d 7a 69 70 20 6c 69 73 74 73 t-free.t))...(apply.#'-zip.lists
10220 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 79 63 6c 65 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 ))..(defun.-cycle.(list)..."Retu
10240 72 6e 20 61 6e 20 69 6e 66 69 6e 69 74 65 20 63 69 72 63 75 6c 61 72 20 63 6f 70 79 20 6f 66 20 rn.an.infinite.circular.copy.of.
10260 4c 49 53 54 2e 0a 54 68 65 20 72 65 74 75 72 6e 65 64 20 6c 69 73 74 20 63 79 63 6c 65 73 20 74 LIST..The.returned.list.cycles.t
10280 68 72 6f 75 67 68 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 61 6e 64 20 hrough.the.elements.of.LIST.and.
102a0 72 65 70 65 61 74 73 0a 66 72 6f 6d 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 2e 22 0a 20 20 28 repeats.from.the.beginning."...(
102c0 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 declare.(pure.t).(side-effect-fr
102e0 65 65 20 74 29 29 0a 20 20 3b 3b 20 41 6c 73 6f 20 77 6f 72 6b 73 20 77 69 74 68 20 73 65 71 75 ee.t))...;;.Also.works.with.sequ
10300 65 6e 63 65 73 20 74 68 61 74 20 61 72 65 6e 27 74 20 6c 69 73 74 73 2e 0a 20 20 28 6c 65 74 20 ences.that.aren't.lists....(let.
10320 28 28 6e 65 77 6c 69 73 74 20 28 61 70 70 65 6e 64 20 6c 69 73 74 20 28 29 29 29 29 0a 20 20 20 ((newlist.(append.list.())))....
10340 20 28 6e 63 6f 6e 63 20 6e 65 77 6c 69 73 74 20 6e 65 77 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 .(nconc.newlist.newlist)))..(def
10360 75 6e 20 2d 70 61 64 20 28 66 69 6c 6c 2d 76 61 6c 75 65 20 26 72 65 73 74 20 6c 69 73 74 73 29 un.-pad.(fill-value.&rest.lists)
10380 0a 20 20 22 50 61 64 20 65 61 63 68 20 6f 66 20 4c 49 53 54 53 20 77 69 74 68 20 46 49 4c 4c 2d ..."Pad.each.of.LISTS.with.FILL-
103a0 56 41 4c 55 45 20 75 6e 74 69 6c 20 74 68 65 79 20 61 6c 6c 20 68 61 76 65 20 65 71 75 61 6c 20 VALUE.until.they.all.have.equal.
103c0 6c 65 6e 67 74 68 73 2e 0a 0a 45 6e 73 75 72 65 20 61 6c 6c 20 4c 49 53 54 53 20 61 72 65 20 61 lengths...Ensure.all.LISTS.are.a
103e0 73 20 6c 6f 6e 67 20 61 73 20 74 68 65 20 6c 6f 6e 67 65 73 74 20 6f 6e 65 20 62 79 20 72 65 70 s.long.as.the.longest.one.by.rep
10400 65 61 74 65 64 6c 79 0a 61 70 70 65 6e 64 69 6e 67 20 46 49 4c 4c 2d 56 41 4c 55 45 20 74 6f 20 eatedly.appending.FILL-VALUE.to.
10420 74 68 65 20 73 68 6f 72 74 65 72 20 6c 69 73 74 73 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 the.shorter.lists,.and.return.th
10440 65 0a 72 65 73 75 6c 74 69 6e 67 20 4c 49 53 54 53 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 e.resulting.LISTS."...(declare.(
10460 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 pure.t).(side-effect-free.t))...
10480 28 6c 65 74 2a 20 28 28 6c 65 6e 73 20 28 6d 61 70 63 61 72 20 23 27 6c 65 6e 67 74 68 20 6c 69 (let*.((lens.(mapcar.#'length.li
104a0 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 78 6c 65 6e 20 28 61 70 70 6c 79 20 23 27 sts))..........(maxlen.(apply.#'
104c0 6d 61 78 20 30 20 6c 65 6e 73 29 29 29 0a 20 20 20 20 28 2d 2d 6d 61 70 20 28 61 70 70 65 6e 64 max.0.lens))).....(--map.(append
104e0 20 69 74 20 28 6d 61 6b 65 2d 6c 69 73 74 20 28 2d 20 6d 61 78 6c 65 6e 20 28 70 6f 70 20 6c 65 .it.(make-list.(-.maxlen.(pop.le
10500 6e 73 29 29 20 66 69 6c 6c 2d 76 61 6c 75 65 29 29 20 6c 69 73 74 73 29 29 29 0a 0a 28 64 65 66 ns)).fill-value)).lists)))..(def
10520 6d 61 63 72 6f 20 2d 2d 61 6e 6e 6f 74 61 74 65 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 macro.--annotate.(form.list)..."
10540 50 61 69 72 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 77 69 74 68 20 74 68 65 20 Pair.each.item.in.LIST.with.the.
10560 72 65 73 75 6c 74 20 6f 66 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 0a 52 65 74 75 result.of.evaluating.FORM...Retu
10580 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 28 52 45 53 55 4c 54 20 2e 20 49 54 45 4d 29 2c 20 rn.an.alist.of.(RESULT...ITEM),.
105a0 77 68 65 72 65 20 65 61 63 68 20 49 54 45 4d 20 69 73 20 74 68 65 0a 63 6f 72 72 65 73 70 6f 6e where.each.ITEM.is.the.correspon
105c0 64 69 6e 67 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2c 20 61 6e 64 20 52 45 53 55 4c 54 ding.element.of.LIST,.and.RESULT
105e0 20 69 73 20 74 68 65 20 76 61 6c 75 65 20 6f 62 74 61 69 6e 65 64 0a 62 79 20 65 76 61 6c 75 61 .is.the.value.obtained.by.evalua
10600 74 69 6e 67 20 46 4f 52 4d 20 77 69 74 68 20 49 54 45 4d 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 ting.FORM.with.ITEM.bound.to.`it
10620 27 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 '...This.is.the.anaphoric.counte
10640 72 70 61 72 74 20 74 6f 20 60 2d 61 6e 6e 6f 74 61 74 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 rpart.to.`-annotate'."...(declar
10660 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 2d 6d 61 70 e.(debug.(form.form)))...`(--map
10680 20 28 63 6f 6e 73 20 2c 66 6f 72 6d 20 69 74 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e .(cons.,form.it).,list))..(defun
106a0 20 2d 61 6e 6e 6f 74 61 74 65 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 50 61 69 72 20 65 61 63 .-annotate.(fn.list)..."Pair.eac
106c0 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f h.item.in.LIST.with.the.result.o
106e0 66 20 70 61 73 73 69 6e 67 20 69 74 20 74 6f 20 46 4e 2e 0a 0a 52 65 74 75 72 6e 20 61 6e 20 61 f.passing.it.to.FN...Return.an.a
10700 6c 69 73 74 20 6f 66 20 28 52 45 53 55 4c 54 20 2e 20 49 54 45 4d 29 2c 20 77 68 65 72 65 20 65 list.of.(RESULT...ITEM),.where.e
10720 61 63 68 20 49 54 45 4d 20 69 73 20 74 68 65 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 6c ach.ITEM.is.the.corresponding.el
10740 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2c 20 61 6e 64 20 52 45 53 55 4c 54 20 69 73 20 74 68 65 ement.of.LIST,.and.RESULT.is.the
10760 20 76 61 6c 75 65 20 6f 62 74 61 69 6e 65 64 0a 62 79 20 63 61 6c 6c 69 6e 67 20 46 4e 20 6f 6e .value.obtained.by.calling.FN.on
10780 20 49 54 45 4d 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 .ITEM...This.function's.anaphori
107a0 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 61 6e 6e 6f 74 61 74 65 27 2e 22 0a c.counterpart.is.`--annotate'.".
107c0 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c ..(declare.(important-return-val
107e0 75 65 20 74 29 29 0a 20 20 28 2d 2d 61 6e 6e 6f 74 61 74 65 20 28 66 75 6e 63 61 6c 6c 20 66 6e ue.t))...(--annotate.(funcall.fn
10800 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 74 61 62 6c 65 2d .it).list))..(defun.dash--table-
10820 63 61 72 72 79 20 28 6c 69 73 74 73 20 72 65 73 74 6f 72 65 2d 6c 69 73 74 73 20 26 6f 70 74 69 carry.(lists.restore-lists.&opti
10840 6f 6e 61 6c 20 72 65 29 0a 20 20 22 48 65 6c 70 65 72 20 66 6f 72 20 60 2d 74 61 62 6c 65 27 20 onal.re)..."Helper.for.`-table'.
10860 61 6e 64 20 60 2d 74 61 62 6c 65 2d 66 6c 61 74 27 2e 0a 0a 49 66 20 61 20 6c 69 73 74 20 6f 76 and.`-table-flat'...If.a.list.ov
10880 65 72 66 6c 6f 77 73 2c 20 63 61 72 72 79 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 61 6e 64 20 erflows,.carry.to.the.right.and.
108a0 72 65 73 65 74 20 74 68 65 20 6c 69 73 74 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 reset.the.list."...(while.(not.(
108c0 6f 72 20 28 63 61 72 20 6c 69 73 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or.(car.lists)..................
108e0 20 28 65 71 75 61 6c 20 6c 69 73 74 73 20 27 28 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 73 65 74 .(equal.lists.'(nil)))).....(set
10900 63 61 72 20 6c 69 73 74 73 20 28 63 61 72 20 72 65 73 74 6f 72 65 2d 6c 69 73 74 73 29 29 0a 20 car.lists.(car.restore-lists))..
10920 20 20 20 28 70 6f 70 20 28 63 61 64 72 20 6c 69 73 74 73 29 29 0a 20 20 20 20 28 21 63 64 72 20 ...(pop.(cadr.lists)).....(!cdr.
10940 6c 69 73 74 73 29 0a 20 20 20 20 28 21 63 64 72 20 72 65 73 74 6f 72 65 2d 6c 69 73 74 73 29 0a lists).....(!cdr.restore-lists).
10960 20 20 20 20 28 77 68 65 6e 20 72 65 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6e 72 65 76 65 72 ....(when.re.......(push.(nrever
10980 73 65 20 28 63 61 72 20 72 65 29 29 20 28 63 61 64 72 20 72 65 29 29 0a 20 20 20 20 20 20 28 73 se.(car.re)).(cadr.re)).......(s
109a0 65 74 63 61 72 20 72 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 21 63 64 72 20 72 65 29 29 29 29 etcar.re.nil).......(!cdr.re))))
109c0 0a 0a 28 64 65 66 75 6e 20 2d 74 61 62 6c 65 20 28 66 6e 20 26 72 65 73 74 20 6c 69 73 74 73 29 ..(defun.-table.(fn.&rest.lists)
109e0 0a 20 20 22 43 6f 6d 70 75 74 65 20 6f 75 74 65 72 20 70 72 6f 64 75 63 74 20 6f 66 20 4c 49 53 ..."Compute.outer.product.of.LIS
10a00 54 53 20 75 73 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 46 4e 2e 0a 0a 54 68 65 20 66 75 6e 63 74 TS.using.function.FN...The.funct
10a20 69 6f 6e 20 46 4e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 61 72 69 74 ion.FN.should.have.the.same.arit
10a40 79 20 61 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 73 75 70 70 6c 69 65 64 20 6c 69 73 74 y.as.the.number.of.supplied.list
10a60 73 2e 0a 0a 54 68 65 20 6f 75 74 65 72 20 70 72 6f 64 75 63 74 20 69 73 20 63 6f 6d 70 75 74 65 s...The.outer.product.is.compute
10a80 64 20 62 79 20 61 70 70 6c 79 69 6e 67 20 66 6e 20 74 6f 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 d.by.applying.fn.to.all.possible
10aa0 0a 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 63 72 65 61 74 65 64 20 62 79 20 74 61 6b 69 6e 67 20 .combinations.created.by.taking.
10ac0 6f 6e 65 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 65 61 63 68 20 6c 69 73 74 20 69 6e 0a 6f 72 one.element.from.each.list.in.or
10ae0 64 65 72 2e 20 20 54 68 65 20 64 69 6d 65 6e 73 69 6f 6e 20 6f 66 20 74 68 65 20 72 65 73 75 6c der...The.dimension.of.the.resul
10b00 74 20 69 73 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 73 29 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 t.is.(length.lists)...See.also:.
10b20 60 2d 74 61 62 6c 65 2d 66 6c 61 74 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 `-table-flat'"...(declare.(impor
10b40 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 72 tant-return-value.t))...(let.((r
10b60 65 73 74 6f 72 65 2d 6c 69 73 74 73 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 6c 69 73 74 estore-lists.(copy-sequence.list
10b80 73 29 29 0a 20 20 20 20 20 20 20 20 28 6c 61 73 74 2d 6c 69 73 74 20 28 6c 61 73 74 20 6c 69 73 s)).........(last-list.(last.lis
10ba0 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 20 28 6d 61 6b 65 2d 6c 69 73 74 20 28 6c 65 6e ts)).........(re.(make-list.(len
10bc0 67 74 68 20 6c 69 73 74 73 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 63 61 gth.lists).nil))).....(while.(ca
10be0 72 20 6c 61 73 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 74 65 6d 20 28 r.last-list).......(let.((item.(
10c00 61 70 70 6c 79 20 66 6e 20 28 2d 6d 61 70 20 27 63 61 72 20 6c 69 73 74 73 29 29 29 29 0a 20 20 apply.fn.(-map.'car.lists))))...
10c20 20 20 20 20 20 20 28 70 75 73 68 20 69 74 65 6d 20 28 63 61 72 20 72 65 29 29 0a 20 20 20 20 20 ......(push.item.(car.re))......
10c40 20 20 20 28 73 65 74 63 61 72 20 6c 69 73 74 73 20 28 63 64 61 72 20 6c 69 73 74 73 29 29 20 3b ...(setcar.lists.(cdar.lists)).;
10c60 3b 20 73 69 6c 65 6e 63 65 20 62 79 74 65 20 63 6f 6d 70 69 6c 65 72 0a 20 20 20 20 20 20 20 20 ;.silence.byte.compiler.........
10c80 28 64 61 73 68 2d 2d 74 61 62 6c 65 2d 63 61 72 72 79 20 6c 69 73 74 73 20 72 65 73 74 6f 72 65 (dash--table-carry.lists.restore
10ca0 2d 6c 69 73 74 73 20 72 65 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 28 63 61 72 20 -lists.re))).....(nreverse.(car.
10cc0 28 6c 61 73 74 20 72 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 61 62 6c 65 2d 66 6c 61 (last.re)))))..(defun.-table-fla
10ce0 74 20 28 66 6e 20 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 66 6c t.(fn.&rest.lists)..."Compute.fl
10d00 61 74 20 6f 75 74 65 72 20 70 72 6f 64 75 63 74 20 6f 66 20 4c 49 53 54 53 20 75 73 69 6e 67 20 at.outer.product.of.LISTS.using.
10d20 66 75 6e 63 74 69 6f 6e 20 46 4e 2e 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 73 68 function.FN...The.function.FN.sh
10d40 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 61 72 69 74 79 20 61 73 20 74 68 65 20 ould.have.the.same.arity.as.the.
10d60 6e 75 6d 62 65 72 20 6f 66 0a 73 75 70 70 6c 69 65 64 20 6c 69 73 74 73 2e 0a 0a 54 68 65 20 6f number.of.supplied.lists...The.o
10d80 75 74 65 72 20 70 72 6f 64 75 63 74 20 69 73 20 63 6f 6d 70 75 74 65 64 20 62 79 20 61 70 70 6c uter.product.is.computed.by.appl
10da0 79 69 6e 67 20 66 6e 20 74 6f 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 0a 63 6f 6d 62 69 6e 61 74 ying.fn.to.all.possible.combinat
10dc0 69 6f 6e 73 20 63 72 65 61 74 65 64 20 62 79 20 74 61 6b 69 6e 67 20 6f 6e 65 20 65 6c 65 6d 65 ions.created.by.taking.one.eleme
10de0 6e 74 20 66 72 6f 6d 20 65 61 63 68 20 6c 69 73 74 20 69 6e 0a 6f 72 64 65 72 2e 20 20 54 68 65 nt.from.each.list.in.order...The
10e00 20 72 65 73 75 6c 74 73 20 61 72 65 20 66 6c 61 74 74 65 6e 65 64 2c 20 69 67 6e 6f 72 69 6e 67 .results.are.flattened,.ignoring
10e20 20 74 68 65 20 74 65 6e 73 6f 72 20 73 74 72 75 63 74 75 72 65 0a 6f 66 20 74 68 65 20 72 65 73 .the.tensor.structure.of.the.res
10e40 75 6c 74 2e 20 20 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 63 61 6c 6c ult...This.is.equivalent.to.call
10e60 69 6e 67 3a 0a 0a 20 20 28 2d 66 6c 61 74 74 65 6e 2d 6e 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 ing:....(-flatten-n.(1-.(length.
10e80 6c 69 73 74 73 29 29 20 28 61 70 70 6c 79 20 5c 5c 3d 27 2d 74 61 62 6c 65 20 66 6e 20 6c 69 73 lists)).(apply.\\='-table.fn.lis
10ea0 74 73 29 29 0a 0a 62 75 74 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 68 65 72 ts))..but.the.implementation.her
10ec0 65 20 69 73 20 6d 75 63 68 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 2e 0a 0a 53 65 65 20 61 e.is.much.more.efficient...See.a
10ee0 6c 73 6f 3a 20 60 2d 66 6c 61 74 74 65 6e 2d 6e 27 2c 20 60 2d 74 61 62 6c 65 27 22 0a 20 20 28 lso:.`-flatten-n',.`-table'"...(
10f00 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 declare.(important-return-value.
10f20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 74 6f 72 65 2d 6c 69 73 74 73 20 28 63 6f 70 79 t))...(let.((restore-lists.(copy
10f40 2d 73 65 71 75 65 6e 63 65 20 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 28 6c 61 73 74 2d -sequence.lists)).........(last-
10f60 6c 69 73 74 20 28 6c 61 73 74 20 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 72 65 29 0a 20 list.(last.lists)).........re)..
10f80 20 20 20 28 77 68 69 6c 65 20 28 63 61 72 20 6c 61 73 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 ...(while.(car.last-list).......
10fa0 28 6c 65 74 20 28 28 69 74 65 6d 20 28 61 70 70 6c 79 20 66 6e 20 28 2d 6d 61 70 20 27 63 61 72 (let.((item.(apply.fn.(-map.'car
10fc0 20 6c 69 73 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 69 74 65 6d 20 72 65 .lists)))).........(push.item.re
10fe0 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72 20 6c 69 73 74 73 20 28 63 64 61 72 20 6c 69 ).........(setcar.lists.(cdar.li
11000 73 74 73 29 29 20 3b 3b 20 73 69 6c 65 6e 63 65 20 62 79 74 65 20 63 6f 6d 70 69 6c 65 72 0a 20 sts)).;;.silence.byte.compiler..
11020 20 20 20 20 20 20 20 28 64 61 73 68 2d 2d 74 61 62 6c 65 2d 63 61 72 72 79 20 6c 69 73 74 73 20 .......(dash--table-carry.lists.
11040 72 65 73 74 6f 72 65 2d 6c 69 73 74 73 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 restore-lists))).....(nreverse.r
11060 65 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 66 69 6e 64 2d 69 6e 64 65 78 20 28 66 6f e)))..(defmacro.--find-index.(fo
11080 72 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 69 6e 64 rm.list)..."Return.the.first.ind
110a0 65 78 20 69 6e 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 ex.in.LIST.for.which.FORM.evals.
110c0 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 6e 6f 20 73 75 63 to.non-nil..Return.nil.if.no.suc
110e0 68 20 69 6e 64 65 78 20 69 73 20 66 6f 75 6e 64 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f h.index.is.found..Each.element.o
11100 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 f.LIST.in.turn.is.bound.to.`it'.
11120 61 6e 64 20 69 74 73 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 and.its.index.within.LIST.to.`it
11140 2d 69 6e 64 65 78 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a -index'.before.evaluating.FORM..
11160 54 68 69 73 20 69 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 This.is.the.anaphoric.counterpar
11180 74 20 74 6f 20 60 2d 66 69 6e 64 2d 69 6e 64 65 78 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 t.to.`-find-index'."...(declare.
111a0 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 2d 73 6f 6d 65 20 (debug.(form.form)))...`(--some.
111c0 28 61 6e 64 20 2c 66 6f 72 6d 20 69 74 2d 69 6e 64 65 78 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 (and.,form.it-index).,list))..(d
111e0 65 66 75 6e 20 2d 66 69 6e 64 2d 69 6e 64 65 78 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 efun.-find-index.(pred.list)..."
11200 52 65 74 75 72 6e 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 69 74 Return.the.index.of.the.first.it
11220 65 6d 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 53 54 2e 0a 52 65 74 75 em.satisfying.PRED.in.LIST..Retu
11240 72 6e 20 6e 69 6c 20 69 66 20 6e 6f 20 73 75 63 68 20 69 74 65 6d 20 69 73 20 66 6f 75 6e 64 2e rn.nil.if.no.such.item.is.found.
11260 0a 0a 50 52 45 44 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 6f 6e 65 20 61 72 67 75 6d 65 ..PRED.is.called.with.one.argume
11280 6e 74 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 73 74 20 65 6c 65 6d 65 6e 74 2c 20 75 6e nt,.the.current.list.element,.un
112a0 74 69 6c 0a 69 74 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 74 20 77 68 69 63 68 til.it.returns.non-nil,.at.which
112c0 20 70 6f 69 6e 74 20 74 68 65 20 73 65 61 72 63 68 20 74 65 72 6d 69 6e 61 74 65 73 2e 0a 0a 54 .point.the.search.terminates...T
112e0 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 his.function's.anaphoric.counter
11300 70 61 72 74 20 69 73 20 60 2d 2d 66 69 6e 64 2d 69 6e 64 65 78 27 2e 0a 0a 53 65 65 20 61 6c 73 part.is.`--find-index'...See.als
11320 6f 3a 20 60 2d 66 69 72 73 74 27 2c 20 60 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 27 2e o:.`-first',.`-find-last-index'.
11340 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 "...(declare.(important-return-v
11360 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 66 69 6e 64 2d 69 6e 64 65 78 20 28 66 75 6e 63 61 6c alue.t))...(--find-index.(funcal
11380 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 65 6c 65 6d 2d l.pred.it).list))..(defun.-elem-
113a0 69 6e 64 65 78 20 28 65 6c 65 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 index.(elem.list)..."Return.the.
113c0 66 69 72 73 74 20 69 6e 64 65 78 20 6f 66 20 45 4c 45 4d 20 69 6e 20 4c 49 53 54 2e 0a 54 68 61 first.index.of.ELEM.in.LIST..Tha
113e0 74 20 69 73 2c 20 74 68 65 20 69 6e 64 65 78 20 77 69 74 68 69 6e 20 4c 49 53 54 20 6f 66 20 74 t.is,.the.index.within.LIST.of.t
11400 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 74 68 61 74 20 69 73 0a 60 65 71 75 61 6c 27 he.first.element.that.is.`equal'
11420 20 74 6f 20 45 4c 45 4d 2e 20 20 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 69 .to.ELEM...Return.nil.if.there.i
11440 73 20 6e 6f 20 73 75 63 68 20 65 6c 65 6d 65 6e 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d s.no.such.element...See.also:.`-
11460 66 69 6e 64 2d 69 6e 64 65 78 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 find-index'."...(declare.(pure.t
11480 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d 66 69 6e ).(side-effect-free.t))...(--fin
114a0 64 2d 69 6e 64 65 78 20 28 65 71 75 61 6c 20 65 6c 65 6d 20 69 74 29 20 6c 69 73 74 29 29 0a 0a d-index.(equal.elem.it).list))..
114c0 28 64 65 66 6d 61 63 72 6f 20 2d 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 20 28 66 6f 72 6d 20 6c (defmacro.--find-indices.(form.l
114e0 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 69 6e 64 69 63 ist)..."Return.the.list.of.indic
11500 65 73 20 69 6e 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 es.in.LIST.for.which.FORM.evals.
11520 74 6f 20 6e 6f 6e 2d 6e 69 6c 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 to.non-nil..Each.element.of.LIST
11540 20 69 6e 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 .in.turn.is.bound.to.`it'.and.it
11560 73 20 69 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 s.index.within.LIST.to.`it-index
11580 27 20 62 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 '.before.evaluating.FORM..This.i
115a0 73 20 74 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 s.the.anaphoric.counterpart.to.`
115c0 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 -find-indices'."...(declare.(deb
115e0 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 2d 6b 65 65 70 20 28 61 6e 64 ug.(form.form)))...`(--keep.(and
11600 20 2c 66 6f 72 6d 20 69 74 2d 69 6e 64 65 78 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e .,form.it-index).,list))..(defun
11620 20 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 .-find-indices.(pred.list)..."Re
11640 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 69 6e 64 69 63 65 73 20 69 6e 20 4c 49 53 54 turn.the.list.of.indices.in.LIST
11660 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 2e 0a 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 .satisfying.PRED...Each.element.
11680 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 70 61 73 73 65 64 20 74 6f 20 50 52 45 of.LIST.in.turn.is.passed.to.PRE
116a0 44 2e 20 20 49 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 0a 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 D...If.the.result.is.non-nil,.th
116c0 65 20 69 6e 64 65 78 20 6f 66 20 74 68 61 74 20 65 6c 65 6d 65 6e 74 20 69 6e 20 4c 49 53 54 20 e.index.of.that.element.in.LIST.
116e0 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 0a 72 65 73 75 6c 74 2e 20 20 54 68 65 20 is.included.in.the.result...The.
11700 72 65 74 75 72 6e 65 64 20 69 6e 64 69 63 65 73 20 61 72 65 20 69 6e 20 61 73 63 65 6e 64 69 6e returned.indices.are.in.ascendin
11720 67 20 6f 72 64 65 72 2c 20 69 2e 65 2e 2c 20 69 6e 0a 74 68 65 20 73 61 6d 65 20 6f 72 64 65 72 g.order,.i.e.,.in.the.same.order
11740 20 61 73 20 74 68 65 79 20 61 70 70 65 61 72 20 69 6e 20 4c 49 53 54 2e 0a 0a 54 68 69 73 20 66 .as.they.appear.in.LIST...This.f
11760 75 6e 63 74 69 6f 6e 27 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 unction's.anaphoric.counterpart.
11780 69 73 20 60 2d 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 is.`--find-indices'...See.also:.
117a0 60 2d 66 69 6e 64 2d 69 6e 64 65 78 27 2c 20 60 2d 65 6c 65 6d 2d 69 6e 64 69 63 65 73 27 2e 22 `-find-index',.`-elem-indices'."
117c0 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 ...(declare.(important-return-va
117e0 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 20 28 66 75 6e 63 61 lue.t))...(--find-indices.(funca
11800 6c 6c 20 70 72 65 64 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 65 6c 65 6d ll.pred.it).list))..(defun.-elem
11820 2d 69 6e 64 69 63 65 73 20 28 65 6c 65 6d 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 -indices.(elem.list)..."Return.t
11840 68 65 20 6c 69 73 74 20 6f 66 20 69 6e 64 69 63 65 73 20 61 74 20 77 68 69 63 68 20 45 4c 45 4d he.list.of.indices.at.which.ELEM
11860 20 61 70 70 65 61 72 73 20 69 6e 20 4c 49 53 54 2e 0a 54 68 61 74 20 69 73 2c 20 74 68 65 20 69 .appears.in.LIST..That.is,.the.i
11880 6e 64 69 63 65 73 20 6f 66 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 60 ndices.of.all.elements.of.LIST.`
118a0 65 71 75 61 6c 27 20 74 6f 20 45 4c 45 4d 2c 20 69 6e 0a 74 68 65 20 73 61 6d 65 20 61 73 63 65 equal'.to.ELEM,.in.the.same.asce
118c0 6e 64 69 6e 67 20 6f 72 64 65 72 20 61 73 20 74 68 65 79 20 61 70 70 65 61 72 20 69 6e 20 4c 49 nding.order.as.they.appear.in.LI
118e0 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 ST."...(declare.(pure.t).(side-e
11900 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 ffect-free.t))...(--find-indices
11920 20 28 65 71 75 61 6c 20 65 6c 65 6d 20 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 .(equal.elem.it).list))..(defmac
11940 72 6f 20 2d 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 20 28 66 6f 72 6d 20 6c 69 73 74 29 ro.--find-last-index.(form.list)
11960 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 73 74 20 69 6e 64 65 78 20 69 6e 20 4c 49 53 ..."Return.the.last.index.in.LIS
11980 54 20 66 6f 72 20 77 68 69 63 68 20 46 4f 52 4d 20 65 76 61 6c 73 20 74 6f 20 6e 6f 6e 2d 6e 69 T.for.which.FORM.evals.to.non-ni
119a0 6c 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 6e 6f 20 73 75 63 68 20 69 6e 64 65 78 20 69 l..Return.nil.if.no.such.index.i
119c0 73 20 66 6f 75 6e 64 2e 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e s.found..Each.element.of.LIST.in
119e0 20 74 75 72 6e 20 69 73 20 62 6f 75 6e 64 20 74 6f 20 60 69 74 27 20 61 6e 64 20 69 74 73 20 69 .turn.is.bound.to.`it'.and.its.i
11a00 6e 64 65 78 0a 77 69 74 68 69 6e 20 4c 49 53 54 20 74 6f 20 60 69 74 2d 69 6e 64 65 78 27 20 62 ndex.within.LIST.to.`it-index'.b
11a20 65 66 6f 72 65 20 65 76 61 6c 75 61 74 69 6e 67 20 46 4f 52 4d 2e 0a 54 68 69 73 20 69 73 20 74 efore.evaluating.FORM..This.is.t
11a40 68 65 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 74 6f 20 60 2d 66 69 he.anaphoric.counterpart.to.`-fi
11a60 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 nd-last-index'."...(declare.(deb
11a80 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 74 20 28 28 69 20 28 6d 61 6b ug.(form.form)))...(let.((i.(mak
11aa0 65 2d 73 79 6d 62 6f 6c 20 22 69 6e 64 65 78 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 2c e-symbol."index"))).....`(let.(,
11ac0 69 29 0a 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 2c 6c 69 73 74 0a 20 20 20 20 20 20 20 20 i)........(--each.,list.........
11ae0 20 28 77 68 65 6e 20 2c 66 6f 72 6d 20 28 73 65 74 71 20 2c 69 20 69 74 2d 69 6e 64 65 78 29 29 .(when.,form.(setq.,i.it-index))
11b00 29 0a 20 20 20 20 20 20 20 2c 69 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 66 69 6e 64 2d 6c 61 73 )........,i)))..(defun.-find-las
11b20 74 2d 69 6e 64 65 78 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 t-index.(pred.list)..."Return.th
11b40 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 73 61 74 69 73 66 79 e.index.of.the.last.item.satisfy
11b60 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 53 54 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 ing.PRED.in.LIST..Return.nil.if.
11b80 6e 6f 20 73 75 63 68 20 69 74 65 6d 20 69 73 20 66 6f 75 6e 64 2e 0a 0a 50 72 65 64 69 63 61 74 no.such.item.is.found...Predicat
11ba0 65 20 50 52 45 44 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 6f 6e 65 20 61 72 67 75 6d 65 e.PRED.is.called.with.one.argume
11bc0 6e 74 20 65 61 63 68 20 74 69 6d 65 2c 20 6e 61 6d 65 6c 79 20 74 68 65 0a 63 75 72 72 65 6e 74 nt.each.time,.namely.the.current
11be0 20 6c 69 73 74 20 65 6c 65 6d 65 6e 74 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 27 73 20 .list.element...This.function's.
11c00 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 60 2d 2d 66 69 6e 64 anaphoric.counterpart.is.`--find
11c20 2d 6c 61 73 74 2d 69 6e 64 65 78 27 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 6c 61 73 74 27 -last-index'...See.also:.`-last'
11c40 2c 20 60 2d 66 69 6e 64 2d 69 6e 64 65 78 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d ,.`-find-index'."...(declare.(im
11c60 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 66 69 portant-return-value.t))...(--fi
11c80 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 74 29 20 nd-last-index.(funcall.pred.it).
11ca0 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 list))..(defun.-select-by-indice
11cc0 73 20 28 69 6e 64 69 63 65 73 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 s.(indices.list)..."Return.a.lis
11ce0 74 20 77 68 6f 73 65 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 65 6c 65 6d 65 6e 74 73 20 66 72 t.whose.elements.are.elements.fr
11d00 6f 6d 20 4c 49 53 54 20 73 65 6c 65 63 74 65 64 0a 61 73 20 60 28 6e 74 68 20 69 20 6c 69 73 74 om.LIST.selected.as.`(nth.i.list
11d20 29 60 20 66 6f 72 20 61 6c 6c 20 69 20 66 72 6f 6d 20 49 4e 44 49 43 45 53 2e 22 0a 20 20 28 64 )`.for.all.i.from.INDICES."...(d
11d40 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 eclare.(pure.t).(side-effect-fre
11d60 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 72 29 0a 20 20 20 20 28 2d 2d 65 61 63 68 20 69 6e 64 e.t))...(let.(r).....(--each.ind
11d80 69 63 65 73 0a 20 20 20 20 20 20 28 21 63 6f 6e 73 20 28 6e 74 68 20 69 74 20 6c 69 73 74 29 20 ices.......(!cons.(nth.it.list).
11da0 72 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d r)).....(nreverse.r)))..(defun.-
11dc0 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 73 20 28 63 6f 6c 75 6d 6e 73 20 74 61 62 6c 65 29 0a 20 select-columns.(columns.table)..
11de0 20 22 53 65 6c 65 63 74 20 43 4f 4c 55 4d 4e 53 20 66 72 6f 6d 20 54 41 42 4c 45 2e 0a 0a 54 41 ."Select.COLUMNS.from.TABLE...TA
11e00 42 4c 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 77 68 65 72 65 20 65 61 63 BLE.is.a.list.of.lists.where.eac
11e20 68 20 65 6c 65 6d 65 6e 74 20 72 65 70 72 65 73 65 6e 74 73 20 6f 6e 65 20 72 6f 77 2e 0a 49 74 h.element.represents.one.row..It
11e40 20 69 73 20 61 73 73 75 6d 65 64 20 65 61 63 68 20 72 6f 77 20 68 61 73 20 74 68 65 20 73 61 6d .is.assumed.each.row.has.the.sam
11e60 65 20 6c 65 6e 67 74 68 2e 0a 0a 45 61 63 68 20 72 6f 77 20 69 73 20 74 72 61 6e 73 66 6f 72 6d e.length...Each.row.is.transform
11e80 65 64 20 73 75 63 68 20 74 68 61 74 20 6f 6e 6c 79 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 ed.such.that.only.the.specified.
11ea0 43 4f 4c 55 4d 4e 53 20 61 72 65 0a 73 65 6c 65 63 74 65 64 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a COLUMNS.are.selected...See.also:
11ec0 20 60 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 27 2c 20 60 2d 73 65 6c 65 63 74 2d 62 79 2d 69 .`-select-column',.`-select-by-i
11ee0 6e 64 69 63 65 73 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 ndices'"...(declare.(pure.t).(si
11f00 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d 6d 61 70 20 28 2d 73 65 de-effect-free.t))...(--map.(-se
11f20 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 20 63 6f 6c 75 6d 6e 73 20 69 74 29 20 74 61 62 6c lect-by-indices.columns.it).tabl
11f40 65 29 29 0a 0a 28 64 65 66 75 6e 20 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 20 28 63 6f 6c 75 e))..(defun.-select-column.(colu
11f60 6d 6e 20 74 61 62 6c 65 29 0a 20 20 22 53 65 6c 65 63 74 20 43 4f 4c 55 4d 4e 20 66 72 6f 6d 20 mn.table)..."Select.COLUMN.from.
11f80 54 41 42 4c 45 2e 0a 0a 54 41 42 4c 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 TABLE...TABLE.is.a.list.of.lists
11fa0 20 77 68 65 72 65 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 72 65 70 72 65 73 65 6e 74 73 20 6f .where.each.element.represents.o
11fc0 6e 65 20 72 6f 77 2e 0a 49 74 20 69 73 20 61 73 73 75 6d 65 64 20 65 61 63 68 20 72 6f 77 20 68 ne.row..It.is.assumed.each.row.h
11fe0 61 73 20 74 68 65 20 73 61 6d 65 20 6c 65 6e 67 74 68 2e 0a 0a 54 68 65 20 73 69 6e 67 6c 65 20 as.the.same.length...The.single.
12000 73 65 6c 65 63 74 65 64 20 63 6f 6c 75 6d 6e 20 69 73 20 72 65 74 75 72 6e 65 64 20 61 73 20 61 selected.column.is.returned.as.a
12020 20 6c 69 73 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d .list...See.also:.`-select-colum
12040 6e 73 27 2c 20 60 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 27 22 0a 20 20 28 64 65 ns',.`-select-by-indices'"...(de
12060 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 clare.(pure.t).(side-effect-free
12080 20 74 29 29 0a 20 20 28 2d 2d 6d 61 70 63 61 74 20 28 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 .t))...(--mapcat.(-select-by-ind
120a0 69 63 65 73 20 28 6c 69 73 74 20 63 6f 6c 75 6d 6e 29 20 69 74 29 20 74 61 62 6c 65 29 29 0a 0a ices.(list.column).it).table))..
120c0 28 64 65 66 6d 61 63 72 6f 20 2d 3e 20 28 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d 20 26 (defmacro.->.(x.&optional.form.&
120e0 72 65 73 74 20 6d 6f 72 65 29 0a 20 20 22 54 68 72 65 61 64 20 74 68 65 20 65 78 70 72 20 74 68 rest.more)..."Thread.the.expr.th
12100 72 6f 75 67 68 20 74 68 65 20 66 6f 72 6d 73 2e 20 49 6e 73 65 72 74 20 58 20 61 73 20 74 68 65 rough.the.forms..Insert.X.as.the
12120 20 73 65 63 6f 6e 64 20 69 74 65 6d 0a 69 6e 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 6d 2c 20 .second.item.in.the.first.form,.
12140 6d 61 6b 69 6e 67 20 61 20 6c 69 73 74 20 6f 66 20 69 74 20 69 66 20 69 74 20 69 73 20 6e 6f 74 making.a.list.of.it.if.it.is.not
12160 20 61 20 6c 69 73 74 0a 61 6c 72 65 61 64 79 2e 20 49 66 20 74 68 65 72 65 20 61 72 65 20 6d 6f .a.list.already..If.there.are.mo
12180 72 65 20 66 6f 72 6d 73 2c 20 69 6e 73 65 72 74 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 6d 20 re.forms,.insert.the.first.form.
121a0 61 73 20 74 68 65 0a 73 65 63 6f 6e 64 20 69 74 65 6d 20 69 6e 20 73 65 63 6f 6e 64 20 66 6f 72 as.the.second.item.in.second.for
121c0 6d 2c 20 65 74 63 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d m,.etc."...(declare.(debug.(form
121e0 20 26 72 65 73 74 20 5b 26 6f 72 20 73 79 6d 62 6f 6c 70 20 28 73 65 78 70 20 26 72 65 73 74 20 .&rest.[&or.symbolp.(sexp.&rest.
12200 66 6f 72 6d 29 5d 29 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6c 6c 20 66 6f 72 6d form)])))...(cond....((null.form
12220 29 20 78 29 0a 20 20 20 28 28 6e 75 6c 6c 20 6d 6f 72 65 29 20 28 69 66 20 28 6c 69 73 74 70 20 ).x)....((null.more).(if.(listp.
12240 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 2c 28 63 61 form).....................`(,(ca
12260 72 20 66 6f 72 6d 29 20 2c 78 20 2c 40 28 63 64 72 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 r.form).,x.,@(cdr.form))........
12280 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 66 6f 72 6d 20 78 29 29 29 0a 20 20 20 28 3a ...........(list.form.x)))....(:
122a0 65 6c 73 65 20 60 28 2d 3e 20 28 2d 3e 20 2c 78 20 2c 66 6f 72 6d 29 20 2c 40 6d 6f 72 65 29 29 else.`(->.(->.,x.,form).,@more))
122c0 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 3e 3e 20 28 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 ))..(defmacro.->>.(x.&optional.f
122e0 6f 72 6d 20 26 72 65 73 74 20 6d 6f 72 65 29 0a 20 20 22 54 68 72 65 61 64 20 74 68 65 20 65 78 orm.&rest.more)..."Thread.the.ex
12300 70 72 20 74 68 72 6f 75 67 68 20 74 68 65 20 66 6f 72 6d 73 2e 20 49 6e 73 65 72 74 20 58 20 61 pr.through.the.forms..Insert.X.a
12320 73 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 0a 69 6e 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 s.the.last.item.in.the.first.for
12340 6d 2c 20 6d 61 6b 69 6e 67 20 61 20 6c 69 73 74 20 6f 66 20 69 74 20 69 66 20 69 74 20 69 73 20 m,.making.a.list.of.it.if.it.is.
12360 6e 6f 74 20 61 20 6c 69 73 74 0a 61 6c 72 65 61 64 79 2e 20 49 66 20 74 68 65 72 65 20 61 72 65 not.a.list.already..If.there.are
12380 20 6d 6f 72 65 20 66 6f 72 6d 73 2c 20 69 6e 73 65 72 74 20 74 68 65 20 66 69 72 73 74 20 66 6f .more.forms,.insert.the.first.fo
123a0 72 6d 20 61 73 20 74 68 65 0a 6c 61 73 74 20 69 74 65 6d 20 69 6e 20 73 65 63 6f 6e 64 20 66 6f rm.as.the.last.item.in.second.fo
123c0 72 6d 2c 20 65 74 63 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 2d 3e 29 29 rm,.etc."...(declare.(debug.->))
123e0 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6c 6c 20 66 6f 72 6d 29 20 78 29 0a 20 20 20 28 ...(cond....((null.form).x)....(
12400 28 6e 75 6c 6c 20 6d 6f 72 65 29 20 28 69 66 20 28 6c 69 73 74 70 20 66 6f 72 6d 29 0a 20 20 20 (null.more).(if.(listp.form)....
12420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 2c 40 66 6f 72 6d 20 2c 78 29 0a 20 20 .................`(,@form.,x)...
12440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 66 6f 72 6d 20 78 29 29 29 0a ................(list.form.x))).
12460 20 20 20 28 3a 65 6c 73 65 20 60 28 2d 3e 3e 20 28 2d 3e 3e 20 2c 78 20 2c 66 6f 72 6d 29 20 2c ...(:else.`(->>.(->>.,x.,form).,
12480 40 6d 6f 72 65 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 3e 20 28 78 20 26 72 65 73 @more))))..(defmacro.-->.(x.&res
124a0 74 20 66 6f 72 6d 73 29 0a 20 20 22 53 74 61 72 74 69 6e 67 20 77 69 74 68 20 74 68 65 20 76 61 t.forms)..."Starting.with.the.va
124c0 6c 75 65 20 6f 66 20 58 2c 20 74 68 72 65 61 64 20 65 61 63 68 20 65 78 70 72 65 73 73 69 6f 6e lue.of.X,.thread.each.expression
124e0 20 74 68 72 6f 75 67 68 20 46 4f 52 4d 53 2e 0a 0a 49 6e 73 65 72 74 20 58 20 61 74 20 74 68 65 .through.FORMS...Insert.X.at.the
12500 20 70 6f 73 69 74 69 6f 6e 20 73 69 67 6e 69 66 69 65 64 20 62 79 20 74 68 65 20 73 79 6d 62 6f .position.signified.by.the.symbo
12520 6c 20 60 69 74 27 20 69 6e 20 74 68 65 20 66 69 72 73 74 0a 66 6f 72 6d 2e 20 20 49 66 20 74 68 l.`it'.in.the.first.form...If.th
12540 65 72 65 20 61 72 65 20 6d 6f 72 65 20 66 6f 72 6d 73 2c 20 69 6e 73 65 72 74 20 74 68 65 20 66 ere.are.more.forms,.insert.the.f
12560 69 72 73 74 20 66 6f 72 6d 20 61 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 0a 73 69 67 6e 69 66 irst.form.at.the.position.signif
12580 69 65 64 20 62 79 20 60 69 74 27 20 69 6e 20 69 6e 20 73 65 63 6f 6e 64 20 66 6f 72 6d 2c 20 65 ied.by.`it'.in.in.second.form,.e
125a0 74 63 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 62 6f 64 tc."...(declare.(debug.(form.bod
125c0 79 29 29 29 0a 20 20 60 28 2d 61 73 2d 3e 20 2c 78 20 69 74 20 2c 40 66 6f 72 6d 73 29 29 0a 0a y)))...`(-as->.,x.it.,@forms))..
125e0 28 64 65 66 6d 61 63 72 6f 20 2d 61 73 2d 3e 20 28 76 61 6c 75 65 20 76 61 72 69 61 62 6c 65 20 (defmacro.-as->.(value.variable.
12600 26 72 65 73 74 20 66 6f 72 6d 73 29 0a 20 20 22 53 74 61 72 74 69 6e 67 20 77 69 74 68 20 56 41 &rest.forms)..."Starting.with.VA
12620 4c 55 45 2c 20 74 68 72 65 61 64 20 56 41 52 49 41 42 4c 45 20 74 68 72 6f 75 67 68 20 46 4f 52 LUE,.thread.VARIABLE.through.FOR
12640 4d 53 2e 0a 0a 49 6e 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 6d 2c 20 62 69 6e 64 20 56 41 52 MS...In.the.first.form,.bind.VAR
12660 49 41 42 4c 45 20 74 6f 20 56 41 4c 55 45 2e 20 20 49 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 66 IABLE.to.VALUE...In.the.second.f
12680 6f 72 6d 2c 20 62 69 6e 64 0a 56 41 52 49 41 42 4c 45 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 orm,.bind.VARIABLE.to.the.result
126a0 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 6d 2c 20 61 6e 64 20 73 6f 20 66 6f 72 74 68 .of.the.first.form,.and.so.forth
126c0 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 73 79 6d 62 6f ."...(declare.(debug.(form.symbo
126e0 6c 70 20 62 6f 64 79 29 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 66 6f 72 6d 73 29 0a 20 20 lp.body)))...(if.(null.forms)...
12700 20 20 20 20 60 2c 76 61 6c 75 65 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 76 61 72 69 61 62 6c ....`,value.....`(let.((,variabl
12720 65 20 2c 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 28 2d 61 73 2d 3e 20 2c 28 69 66 20 28 73 e.,value))........(-as->.,(if.(s
12740 79 6d 62 6f 6c 70 20 28 63 61 72 20 66 6f 72 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ymbolp.(car.forms)).............
12760 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 61 72 20 66 6f 72 6d 73 29 20 76 61 72 69 61 62 6c .......(list.(car.forms).variabl
12780 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 66 6f 72 6d 73 29 29 e)..................(car.forms))
127a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 ...............,variable........
127c0 20 20 20 20 20 20 20 2c 40 28 63 64 72 20 66 6f 72 6d 73 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 .......,@(cdr.forms)))))..(defma
127e0 63 72 6f 20 2d 73 6f 6d 65 2d 3e 20 28 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d 20 26 72 cro.-some->.(x.&optional.form.&r
12800 65 73 74 20 6d 6f 72 65 29 0a 20 20 22 57 68 65 6e 20 65 78 70 72 20 69 73 20 6e 6f 6e 2d 6e 69 est.more)..."When.expr.is.non-ni
12820 6c 2c 20 74 68 72 65 61 64 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 66 69 72 73 74 20 66 l,.thread.it.through.the.first.f
12840 6f 72 6d 20 28 76 69 61 20 60 2d 3e 27 29 2c 0a 61 6e 64 20 77 68 65 6e 20 74 68 61 74 20 72 65 orm.(via.`->'),.and.when.that.re
12860 73 75 6c 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 65 78 sult.is.non-nil,.through.the.nex
12880 74 20 66 6f 72 6d 2c 20 65 74 63 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 t.form,.etc."...(declare.(debug.
128a0 2d 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 69 66 ->)............(indent.1))...(if
128c0 20 28 6e 75 6c 6c 20 66 6f 72 6d 29 20 78 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 .(null.form).x.....(let.((result
128e0 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 20 20 .(make-symbol."result"))).......
12900 60 28 2d 73 6f 6d 65 2d 3e 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 2c 72 65 73 75 6c 74 20 2c 78 `(-some->.(-when-let.(,result.,x
12920 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 3e 20 2c 72 65 73 75 6c 74 20 )...................(->.,result.
12940 2c 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 2c 40 6d 6f 72 65 29 29 29 29 0a 0a 28 64 65 ,form))..........,@more))))..(de
12960 66 6d 61 63 72 6f 20 2d 73 6f 6d 65 2d 3e 3e 20 28 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 fmacro.-some->>.(x.&optional.for
12980 6d 20 26 72 65 73 74 20 6d 6f 72 65 29 0a 20 20 22 57 68 65 6e 20 65 78 70 72 20 69 73 20 6e 6f m.&rest.more)..."When.expr.is.no
129a0 6e 2d 6e 69 6c 2c 20 74 68 72 65 61 64 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 66 69 72 n-nil,.thread.it.through.the.fir
129c0 73 74 20 66 6f 72 6d 20 28 76 69 61 20 60 2d 3e 3e 27 29 2c 0a 61 6e 64 20 77 68 65 6e 20 74 68 st.form.(via.`->>'),.and.when.th
129e0 61 74 20 72 65 73 75 6c 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 72 6f 75 67 68 20 74 68 at.result.is.non-nil,.through.th
12a00 65 20 6e 65 78 74 20 66 6f 72 6d 2c 20 65 74 63 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 e.next.form,.etc."...(declare.(d
12a20 65 62 75 67 20 2d 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 31 29 29 0a ebug.->)............(indent.1)).
12a40 20 20 28 69 66 20 28 6e 75 6c 6c 20 66 6f 72 6d 29 20 78 0a 20 20 20 20 28 6c 65 74 20 28 28 72 ..(if.(null.form).x.....(let.((r
12a60 65 73 75 6c 74 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 esult.(make-symbol."result")))..
12a80 20 20 20 20 20 60 28 2d 73 6f 6d 65 2d 3e 3e 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 2c 72 65 73 .....`(-some->>.(-when-let.(,res
12aa0 75 6c 74 20 2c 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 3e 3e 20 ult.,x)....................(->>.
12ac0 2c 72 65 73 75 6c 74 20 2c 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 2c 40 6d 6f 72 65 29 ,result.,form))..........,@more)
12ae0 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 73 6f 6d 65 2d 2d 3e 20 28 65 78 70 72 20 26 72 )))..(defmacro.-some-->.(expr.&r
12b00 65 73 74 20 66 6f 72 6d 73 29 0a 20 20 22 54 68 72 65 61 64 20 45 58 50 52 20 74 68 72 6f 75 67 est.forms)..."Thread.EXPR.throug
12b20 68 20 46 4f 52 4d 53 20 76 69 61 20 60 2d 2d 3e 27 2c 20 77 68 69 6c 65 20 74 68 65 20 72 65 73 h.FORMS.via.`-->',.while.the.res
12b40 75 6c 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 0a 57 68 65 6e 20 45 58 50 52 20 65 76 61 6c 75 61 ult.is.non-nil..When.EXPR.evalua
12b60 74 65 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 72 65 61 64 20 74 68 65 20 72 65 73 75 6c tes.to.non-nil,.thread.the.resul
12b80 74 20 74 68 72 6f 75 67 68 20 74 68 65 0a 66 69 72 73 74 20 6f 66 20 46 4f 52 4d 53 2c 20 61 6e t.through.the.first.of.FORMS,.an
12ba0 64 20 77 68 65 6e 20 74 68 61 74 20 72 65 73 75 6c 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 d.when.that.result.is.non-nil,.t
12bc0 68 72 65 61 64 20 69 74 0a 74 68 72 6f 75 67 68 20 74 68 65 20 6e 65 78 74 20 66 6f 72 6d 2c 20 hread.it.through.the.next.form,.
12be0 65 74 63 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 26 72 etc."...(declare.(debug.(form.&r
12c00 65 73 74 20 26 6f 72 20 73 79 6d 62 6f 6c 70 20 63 6f 6e 73 70 29 29 20 28 69 6e 64 65 6e 74 20 est.&or.symbolp.consp)).(indent.
12c20 31 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 66 6f 72 6d 73 29 20 65 78 70 72 0a 20 20 20 20 1))...(if.(null.forms).expr.....
12c40 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 (let.((result.(make-symbol."resu
12c60 6c 74 22 29 29 29 0a 20 20 20 20 20 20 60 28 2d 73 6f 6d 65 2d 2d 3e 20 28 2d 77 68 65 6e 2d 6c lt"))).......`(-some-->.(-when-l
12c80 65 74 20 28 2c 72 65 73 75 6c 74 20 2c 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 et.(,result.,expr)..............
12ca0 20 20 20 20 20 20 28 2d 2d 3e 20 2c 72 65 73 75 6c 74 20 2c 28 63 61 72 20 66 6f 72 6d 73 29 29 ......(-->.,result.,(car.forms))
12cc0 29 0a 20 20 20 20 20 20 20 20 20 2c 40 28 63 64 72 20 66 6f 72 6d 73 29 29 29 29 29 0a 0a 28 64 )..........,@(cdr.forms)))))..(d
12ce0 65 66 6d 61 63 72 6f 20 2d 64 6f 74 6f 20 28 69 6e 69 74 20 26 72 65 73 74 20 66 6f 72 6d 73 29 efmacro.-doto.(init.&rest.forms)
12d00 0a 20 20 22 45 76 61 6c 75 61 74 65 20 49 4e 49 54 20 61 6e 64 20 70 61 73 73 20 69 74 20 61 73 ..."Evaluate.INIT.and.pass.it.as
12d20 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 46 4f 52 4d 53 20 77 69 74 68 20 60 2d 3e 27 2e 0a 54 68 .argument.to.FORMS.with.`->'..Th
12d40 65 20 52 45 53 55 4c 54 20 6f 66 20 65 76 61 6c 75 61 74 69 6e 67 20 49 4e 49 54 20 69 73 20 74 e.RESULT.of.evaluating.INIT.is.t
12d60 68 72 65 61 64 65 64 20 74 68 72 6f 75 67 68 20 65 61 63 68 20 6f 66 20 46 4f 52 4d 53 0a 69 6e hreaded.through.each.of.FORMS.in
12d80 64 69 76 69 64 75 61 6c 6c 79 20 75 73 69 6e 67 20 60 2d 3e 27 2c 20 77 68 69 63 68 20 73 65 65 dividually.using.`->',.which.see
12da0 2e 20 20 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 52 45 53 55 4c 54 2c 0a 77 ...The.return.value.is.RESULT,.w
12dc0 68 69 63 68 20 46 4f 52 4d 53 20 6d 61 79 20 68 61 76 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 hich.FORMS.may.have.modified.by.
12de0 73 69 64 65 20 65 66 66 65 63 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 side.effect."...(declare.(debug.
12e00 28 66 6f 72 6d 20 26 72 65 73 74 20 26 6f 72 20 73 79 6d 62 6f 6c 70 20 63 6f 6e 73 70 29 29 20 (form.&rest.&or.symbolp.consp)).
12e20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 72 65 74 76 61 6c 20 28 6d 61 6b (indent.1))...(let.((retval.(mak
12e40 65 2d 73 79 6d 62 6f 6c 20 22 72 65 73 75 6c 74 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 e-symbol."result"))).....`(let.(
12e60 28 2c 72 65 74 76 61 6c 20 2c 69 6e 69 74 29 29 0a 20 20 20 20 20 20 20 2c 40 28 6d 61 70 63 61 (,retval.,init))........,@(mapca
12e80 72 20 28 6c 61 6d 62 64 61 20 28 66 6f 72 6d 29 20 60 28 2d 3e 20 2c 72 65 74 76 61 6c 20 2c 66 r.(lambda.(form).`(->.,retval.,f
12ea0 6f 72 6d 29 29 20 66 6f 72 6d 73 29 0a 20 20 20 20 20 20 20 2c 72 65 74 76 61 6c 29 29 29 0a 0a orm)).forms)........,retval)))..
12ec0 28 64 65 66 6d 61 63 72 6f 20 2d 2d 64 6f 74 6f 20 28 69 6e 69 74 20 26 72 65 73 74 20 66 6f 72 (defmacro.--doto.(init.&rest.for
12ee0 6d 73 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 64 6f 74 6f 27 ms)..."Anaphoric.form.of.`-doto'
12f00 2e 0a 54 68 69 73 20 6a 75 73 74 20 65 76 61 6c 75 61 74 65 73 20 49 4e 49 54 2c 20 62 69 6e 64 ..This.just.evaluates.INIT,.bind
12f20 73 20 74 68 65 20 72 65 73 75 6c 74 20 74 6f 20 60 69 74 27 2c 20 65 76 61 6c 75 61 74 65 73 0a s.the.result.to.`it',.evaluates.
12f40 46 4f 52 4d 53 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 69 6e 61 6c 20 76 61 6c FORMS,.and.returns.the.final.val
12f60 75 65 20 6f 66 20 60 69 74 27 2e 0a 4e 6f 74 65 3a 20 60 69 74 27 20 6e 65 65 64 20 6e 6f 74 20 ue.of.`it'..Note:.`it'.need.not.
12f80 62 65 20 75 73 65 64 20 69 6e 20 65 61 63 68 20 66 6f 72 6d 2e 22 0a 20 20 28 64 65 63 6c 61 72 be.used.in.each.form."...(declar
12fa0 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 62 6f 64 79 29 29 20 28 69 6e 64 65 6e 74 20 31 29 e.(debug.(form.body)).(indent.1)
12fc0 29 0a 20 20 60 28 6c 65 74 20 28 28 69 74 20 2c 69 6e 69 74 29 29 0a 20 20 20 20 20 2c 40 66 6f )...`(let.((it.,init))......,@fo
12fe0 72 6d 73 0a 20 20 20 20 20 69 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 67 72 61 64 65 2d 75 70 20 rms......it))..(defun.-grade-up.
13000 28 63 6f 6d 70 61 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 22 47 72 61 64 65 20 65 6c 65 6d 65 (comparator.list)..."Grade.eleme
13020 6e 74 73 20 6f 66 20 4c 49 53 54 20 75 73 69 6e 67 20 43 4f 4d 50 41 52 41 54 4f 52 20 72 65 6c nts.of.LIST.using.COMPARATOR.rel
13040 61 74 69 6f 6e 2e 0a 54 68 69 73 20 79 69 65 6c 64 73 20 61 20 70 65 72 6d 75 74 61 74 69 6f 6e ation..This.yields.a.permutation
13060 20 76 65 63 74 6f 72 20 73 75 63 68 20 74 68 61 74 20 61 70 70 6c 79 69 6e 67 20 74 68 69 73 0a .vector.such.that.applying.this.
13080 70 65 72 6d 75 74 61 74 69 6f 6e 20 74 6f 20 4c 49 53 54 20 73 6f 72 74 73 20 69 74 20 69 6e 20 permutation.to.LIST.sorts.it.in.
130a0 61 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d ascending.order."...(declare.(im
130c0 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 3e 3e 20 portant-return-value.t))...(->>.
130e0 28 2d 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 28 63 6f 6e 73 20 69 74 20 69 74 2d 69 6e 64 65 78 (--map-indexed.(cons.it.it-index
13100 29 20 6c 69 73 74 29 0a 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 6c 61 6d 62 64 61 20 28 69 ).list)........(-sort.(lambda.(i
13120 74 20 6f 74 68 65 72 29 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6d 70 61 72 61 74 6f 72 20 28 63 61 t.other).(funcall.comparator.(ca
13140 72 20 69 74 29 20 28 63 61 72 20 6f 74 68 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 28 6d 61 70 r.it).(car.other))))........(map
13160 63 61 72 20 23 27 63 64 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 67 72 61 64 65 2d 64 6f 77 6e car.#'cdr)))..(defun.-grade-down
13180 20 28 63 6f 6d 70 61 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 22 47 72 61 64 65 20 65 6c 65 6d .(comparator.list)..."Grade.elem
131a0 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 75 73 69 6e 67 20 43 4f 4d 50 41 52 41 54 4f 52 20 72 65 ents.of.LIST.using.COMPARATOR.re
131c0 6c 61 74 69 6f 6e 2e 0a 54 68 69 73 20 79 69 65 6c 64 73 20 61 20 70 65 72 6d 75 74 61 74 69 6f lation..This.yields.a.permutatio
131e0 6e 20 76 65 63 74 6f 72 20 73 75 63 68 20 74 68 61 74 20 61 70 70 6c 79 69 6e 67 20 74 68 69 73 n.vector.such.that.applying.this
13200 0a 70 65 72 6d 75 74 61 74 69 6f 6e 20 74 6f 20 4c 49 53 54 20 73 6f 72 74 73 20 69 74 20 69 6e .permutation.to.LIST.sorts.it.in
13220 20 64 65 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 .descending.order."...(declare.(
13240 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 3e important-return-value.t))...(->
13260 3e 20 28 2d 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 28 63 6f 6e 73 20 69 74 20 69 74 2d 69 6e 64 >.(--map-indexed.(cons.it.it-ind
13280 65 78 29 20 6c 69 73 74 29 0a 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 6c 61 6d 62 64 61 20 ex).list)........(-sort.(lambda.
132a0 28 69 74 20 6f 74 68 65 72 29 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6d 70 61 72 61 74 6f 72 20 28 (it.other).(funcall.comparator.(
132c0 63 61 72 20 6f 74 68 65 72 29 20 28 63 61 72 20 69 74 29 29 29 29 0a 20 20 20 20 20 20 20 28 6d car.other).(car.it))))........(m
132e0 61 70 63 61 72 20 23 27 63 64 72 29 29 29 0a 0a 28 64 65 66 76 61 72 20 64 61 73 68 2d 2d 73 6f apcar.#'cdr)))..(defvar.dash--so
13300 75 72 63 65 2d 63 6f 75 6e 74 65 72 20 30 0a 20 20 22 4d 6f 6e 6f 74 6f 6e 69 63 20 63 6f 75 6e urce-counter.0..."Monotonic.coun
13320 74 65 72 20 66 6f 72 20 67 65 6e 65 72 61 74 65 64 20 73 79 6d 62 6f 6c 73 2e 22 29 0a 0a 28 64 ter.for.generated.symbols.")..(d
13340 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6d 61 6b 65 2d 73 6f 75 72 63 65 2d 73 79 6d efun.dash--match-make-source-sym
13360 62 6f 6c 20 28 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 6e 65 77 20 64 61 73 68 2d 73 6f bol.()..."Generate.a.new.dash-so
13380 75 72 63 65 20 73 79 6d 62 6f 6c 2e 0a 0a 41 6c 6c 20 72 65 74 75 72 6e 65 64 20 73 79 6d 62 6f urce.symbol...All.returned.symbo
133a0 6c 73 20 61 72 65 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 75 6e 69 71 75 65 2e 22 ls.are.guaranteed.to.be.unique."
133c0 0a 20 20 28 70 72 6f 67 31 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 28 66 6f 72 6d 61 74 20 22 ...(prog1.(make-symbol.(format."
133e0 2d 2d 64 61 73 68 2d 73 6f 75 72 63 65 2d 25 64 2d 2d 22 20 64 61 73 68 2d 2d 73 6f 75 72 63 65 --dash-source-%d--".dash--source
13400 2d 63 6f 75 6e 74 65 72 29 29 0a 20 20 20 20 28 73 65 74 71 20 64 61 73 68 2d 2d 73 6f 75 72 63 -counter)).....(setq.dash--sourc
13420 65 2d 63 6f 75 6e 74 65 72 20 28 31 2b 20 64 61 73 68 2d 2d 73 6f 75 72 63 65 2d 63 6f 75 6e 74 e-counter.(1+.dash--source-count
13440 65 72 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 69 67 6e 6f 72 er))))..(defun.dash--match-ignor
13460 65 2d 70 6c 61 63 65 2d 70 20 28 73 79 6d 62 6f 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e e-place-p.(symbol)..."Return.non
13480 2d 6e 69 6c 20 69 66 20 53 59 4d 42 4f 4c 20 69 73 20 61 20 73 79 6d 62 6f 6c 20 61 6e 64 20 73 -nil.if.SYMBOL.is.a.symbol.and.s
134a0 74 61 72 74 73 20 77 69 74 68 20 5f 2e 22 0a 20 20 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 73 tarts.with._."...(and.(symbolp.s
134c0 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20 20 28 65 71 20 28 61 72 65 66 20 28 73 79 6d 62 6f 6c 2d ymbol)........(eq.(aref.(symbol-
134e0 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 20 30 29 20 3f 5f 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 name.symbol).0).?_)))..(defun.da
13500 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 73 6b 69 70 2d 63 64 72 20 28 73 6b 69 70 2d 63 64 sh--match-cons-skip-cdr.(skip-cd
13520 72 20 73 6f 75 72 63 65 29 0a 20 20 22 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e r.source)..."Helper.function.gen
13540 65 72 61 74 69 6e 67 20 69 64 69 6f 6d 61 74 69 63 20 73 68 69 66 74 69 6e 67 20 63 6f 64 65 2e erating.idiomatic.shifting.code.
13560 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 3d 20 73 6b 69 70 2d 63 64 72 20 30 29 0a 20 20 20 "...(cond....((=.skip-cdr.0)....
13580 20 60 28 70 6f 70 20 2c 73 6f 75 72 63 65 29 29 0a 20 20 20 28 74 0a 20 20 20 20 60 28 70 72 6f .`(pop.,source))....(t.....`(pro
135a0 67 31 20 2c 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 67 65 74 2d 63 61 72 20 73 6b g1.,(dash--match-cons-get-car.sk
135c0 69 70 2d 63 64 72 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 73 6f 75 ip-cdr.source)........(setq.,sou
135e0 72 63 65 20 2c 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 67 65 74 2d 63 64 72 20 28 rce.,(dash--match-cons-get-cdr.(
13600 31 2b 20 73 6b 69 70 2d 63 64 72 29 20 73 6f 75 72 63 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 1+.skip-cdr).source))))))..(defu
13620 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 67 65 74 2d 63 61 72 20 28 73 6b 69 70 n.dash--match-cons-get-car.(skip
13640 2d 63 64 72 20 73 6f 75 72 63 65 29 0a 20 20 22 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 -cdr.source)..."Helper.function.
13660 67 65 6e 65 72 61 74 69 6e 67 20 69 64 69 6f 6d 61 74 69 63 20 63 6f 64 65 20 74 6f 20 67 65 74 generating.idiomatic.code.to.get
13680 20 6e 74 68 20 63 61 72 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 3d 20 73 6b 69 70 2d 63 .nth.car."...(cond....((=.skip-c
136a0 64 72 20 30 29 0a 20 20 20 20 60 28 63 61 72 20 2c 73 6f 75 72 63 65 29 29 0a 20 20 20 28 28 3d dr.0).....`(car.,source))....((=
136c0 20 73 6b 69 70 2d 63 64 72 20 31 29 0a 20 20 20 20 60 28 63 61 64 72 20 2c 73 6f 75 72 63 65 29 .skip-cdr.1).....`(cadr.,source)
136e0 29 0a 20 20 20 28 74 0a 20 20 20 20 60 28 6e 74 68 20 2c 73 6b 69 70 2d 63 64 72 20 2c 73 6f 75 )....(t.....`(nth.,skip-cdr.,sou
13700 72 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 rce))))..(defun.dash--match-cons
13720 2d 67 65 74 2d 63 64 72 20 28 73 6b 69 70 2d 63 64 72 20 73 6f 75 72 63 65 29 0a 20 20 22 48 65 -get-cdr.(skip-cdr.source)..."He
13740 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 69 6e 67 20 69 64 69 6f 6d 61 74 lper.function.generating.idiomat
13760 69 63 20 63 6f 64 65 20 74 6f 20 67 65 74 20 6e 74 68 20 63 64 72 2e 22 0a 20 20 28 63 6f 6e 64 ic.code.to.get.nth.cdr."...(cond
13780 0a 20 20 20 28 28 3d 20 73 6b 69 70 2d 63 64 72 20 30 29 0a 20 20 20 20 73 6f 75 72 63 65 29 0a ....((=.skip-cdr.0).....source).
137a0 20 20 20 28 28 3d 20 73 6b 69 70 2d 63 64 72 20 31 29 0a 20 20 20 20 60 28 63 64 72 20 2c 73 6f ...((=.skip-cdr.1).....`(cdr.,so
137c0 75 72 63 65 29 29 0a 20 20 20 28 74 0a 20 20 20 20 60 28 6e 74 68 63 64 72 20 2c 73 6b 69 70 2d urce))....(t.....`(nthcdr.,skip-
137e0 63 64 72 20 2c 73 6f 75 72 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 cdr.,source))))..(defun.dash--ma
13800 74 63 68 2d 63 6f 6e 73 20 28 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 0a 20 20 22 tch-cons.(match-form.source)..."
13820 53 65 74 75 70 20 61 20 63 6f 6e 73 20 6d 61 74 63 68 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e Setup.a.cons.matching.environmen
13840 74 20 61 6e 64 20 63 61 6c 6c 20 74 68 65 20 72 65 61 6c 20 6d 61 74 63 68 65 72 2e 22 0a 20 20 t.and.call.the.real.matcher."...
13860 28 6c 65 74 20 28 28 73 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6d 61 6b 65 2d 73 6f 75 72 63 (let.((s.(dash--match-make-sourc
13880 65 2d 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 6e 20 30 29 0a 20 20 20 20 20 20 20 e-symbol)).........(n.0)........
138a0 20 28 6d 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 .(m.match-form)).....(while.(and
138c0 20 28 63 6f 6e 73 70 20 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 73 68 .(consp.m).................(dash
138e0 2d 2d 6d 61 74 63 68 2d 69 67 6e 6f 72 65 2d 70 6c 61 63 65 2d 70 20 28 63 61 72 20 6d 29 29 29 --match-ignore-place-p.(car.m)))
13900 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 20 28 31 2b 20 6e 29 29 20 28 21 63 64 72 20 6d 29 29 .......(setq.n.(1+.n)).(!cdr.m))
13920 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 77 68 65 6e 20 77 65 20 6f 6e 6c 79 20 .....(cond......;;.when.we.only.
13940 68 61 76 65 20 6f 6e 65 20 70 61 74 74 65 72 6e 20 69 6e 20 74 68 65 20 6c 69 73 74 2c 20 77 65 have.one.pattern.in.the.list,.we
13960 20 64 6f 6e 27 74 20 68 61 76 65 20 74 6f 0a 20 20 20 20 20 3b 3b 20 63 72 65 61 74 65 20 61 20 .don't.have.to......;;.create.a.
13980 74 65 6d 70 6f 72 61 72 79 20 62 69 6e 64 69 6e 67 20 28 2d 2d 64 61 73 68 2d 73 6f 75 72 63 65 temporary.binding.(--dash-source
139a0 2d 2d 29 20 66 6f 72 20 74 68 65 20 73 6f 75 72 63 65 0a 20 20 20 20 20 3b 3b 20 61 6e 64 20 6a --).for.the.source......;;.and.j
139c0 75 73 74 20 75 73 65 20 74 68 65 20 69 6e 70 75 74 20 64 69 72 65 63 74 6c 79 0a 20 20 20 20 20 ust.use.the.input.directly......
139e0 28 28 61 6e 64 20 28 63 6f 6e 73 70 20 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 ((and.(consp.m)............(not.
13a00 28 63 64 72 20 6d 29 29 29 0a 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 63 61 (cdr.m))).......(dash--match.(ca
13a20 72 20 6d 29 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 67 65 74 2d 63 61 72 20 6e r.m).(dash--match-cons-get-car.n
13a40 20 73 6f 75 72 63 65 29 29 29 0a 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 20 6f 74 68 65 72 20 .source)))......;;.handle.other.
13a60 73 70 65 63 69 61 6c 20 74 79 70 65 73 0a 20 20 20 20 20 28 28 3e 20 6e 20 30 29 0a 20 20 20 20 special.types......((>.n.0).....
13a80 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 6d 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f ..(dash--match.m.(dash--match-co
13aa0 6e 73 2d 67 65 74 2d 63 64 72 20 6e 20 73 6f 75 72 63 65 29 29 29 0a 20 20 20 20 20 3b 3b 20 74 ns-get-cdr.n.source)))......;;.t
13ac0 68 69 73 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 65 6e 74 72 79 2d 70 6f 69 6e 74 20 66 6f 72 20 his.is.the.only.entry-point.for.
13ae0 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 31 2c 20 74 68 61 74 27 73 0a 20 20 20 20 20 dash--match-cons-1,.that's......
13b00 3b 3b 20 77 68 79 20 77 65 20 63 61 6e 27 74 20 73 69 6d 70 6c 79 20 75 73 65 20 74 68 65 20 61 ;;.why.we.can't.simply.use.the.a
13b20 62 6f 76 65 20 62 72 61 6e 63 68 2c 20 69 74 20 77 6f 75 6c 64 20 70 72 6f 64 75 63 65 0a 20 20 bove.branch,.it.would.produce...
13b40 20 20 20 3b 3b 20 69 6e 66 69 6e 69 74 65 20 72 65 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 28 74 ...;;.infinite.recursion......(t
13b60 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 73 20 73 6f 75 72 63 65 29 20 28 64 61 .......(cons.(list.s.source).(da
13b80 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 31 20 6d 61 74 63 68 2d 66 6f 72 6d 20 73 29 29 29 sh--match-cons-1.match-form.s)))
13ba0 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 67 65 74 2d 65 78 70 61 6e 64 2d 66 75 6e )))..(defun.dash--get-expand-fun
13bc0 63 74 69 6f 6e 20 28 74 79 70 65 29 0a 20 20 22 47 65 74 20 65 78 70 61 6e 64 20 66 75 6e 63 74 ction.(type)..."Get.expand.funct
13be0 69 6f 6e 20 6e 61 6d 65 20 66 6f 72 20 54 59 50 45 2e 22 0a 20 20 28 69 6e 74 65 72 6e 2d 73 6f ion.name.for.TYPE."...(intern-so
13c00 66 74 20 28 66 6f 72 6d 61 74 20 22 64 61 73 68 2d 65 78 70 61 6e 64 3a 25 73 22 20 74 79 70 65 ft.(format."dash-expand:%s".type
13c20 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 31 20 28 )))..(defun.dash--match-cons-1.(
13c40 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 20 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 70 match-form.source.&optional.prop
13c60 73 29 0a 20 20 22 4d 61 74 63 68 20 4d 41 54 43 48 2d 46 4f 52 4d 20 61 67 61 69 6e 73 74 20 53 s)..."Match.MATCH-FORM.against.S
13c80 4f 55 52 43 45 2e 0a 0a 4d 41 54 43 48 2d 46 4f 52 4d 20 69 73 20 61 20 70 72 6f 70 65 72 20 6f OURCE...MATCH-FORM.is.a.proper.o
13ca0 72 20 69 6d 70 72 6f 70 65 72 20 6c 69 73 74 2e 20 20 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f r.improper.list...Each.element.o
13cc0 66 0a 4d 41 54 43 48 2d 46 4f 52 4d 20 69 73 20 65 69 74 68 65 72 20 61 20 73 79 6d 62 6f 6c 2c f.MATCH-FORM.is.either.a.symbol,
13ce0 20 77 68 69 63 68 20 67 65 74 73 20 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 72 65 73 70 65 63 74 .which.gets.bound.to.the.respect
13d00 69 76 65 0a 76 61 6c 75 65 20 69 6e 20 73 6f 75 72 63 65 20 6f 72 20 61 6e 6f 74 68 65 72 20 6d ive.value.in.source.or.another.m
13d20 61 74 63 68 20 66 6f 72 6d 20 77 68 69 63 68 20 67 65 74 73 20 64 65 73 74 72 75 63 74 75 72 65 atch.form.which.gets.destructure
13d40 64 0a 72 65 63 75 72 73 69 76 65 6c 79 2e 0a 0a 49 66 20 74 68 65 20 63 64 72 20 6f 66 20 6c 61 d.recursively...If.the.cdr.of.la
13d60 73 74 20 63 6f 6e 73 20 63 65 6c 6c 20 69 6e 20 74 68 65 20 6c 69 73 74 20 69 73 20 6e 69 6c 2c st.cons.cell.in.the.list.is.nil,
13d80 20 6d 61 74 63 68 69 6e 67 20 73 74 6f 70 73 0a 74 68 65 72 65 2e 0a 0a 53 4f 55 52 43 45 20 69 .matching.stops.there...SOURCE.i
13da0 73 20 61 20 70 72 6f 70 65 72 20 6f 72 20 69 6d 70 72 6f 70 65 72 20 6c 69 73 74 2e 22 0a 20 20 s.a.proper.or.improper.list."...
13dc0 28 6c 65 74 20 28 28 73 6b 69 70 2d 63 64 72 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 70 (let.((skip-cdr.(or.(plist-get.p
13de0 72 6f 70 73 20 3a 73 6b 69 70 2d 63 64 72 29 20 30 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 rops.:skip-cdr).0))).....(cond..
13e00 20 20 20 20 28 28 63 6f 6e 73 70 20 6d 61 74 63 68 2d 66 6f 72 6d 29 0a 20 20 20 20 20 20 28 63 ....((consp.match-form).......(c
13e20 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 63 64 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 0a 20 20 20 ond........((cdr.match-form)....
13e40 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 79 6d 62 6f .....(cond..........((and.(symbo
13e60 6c 70 20 28 63 61 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 lp.(car.match-form))............
13e80 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 70 20 28 64 61 73 68 2d 2d 67 65 74 2d 65 78 70 61 6e 64 ....(functionp.(dash--get-expand
13ea0 2d 66 75 6e 63 74 69 6f 6e 20 28 63 61 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 29 29 0a 20 20 -function.(car.match-form))))...
13ec0 20 20 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 20 28 64 61 73 68 2d 2d 6d ........(dash--match-kv.(dash--m
13ee0 61 74 63 68 2d 6b 76 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 61 74 63 68 2d 66 6f 72 6d 20 6d 61 74 atch-kv-normalize-match-form.mat
13f00 63 68 2d 66 6f 72 6d 29 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 67 65 74 2d 63 ch-form).(dash--match-cons-get-c
13f20 64 72 20 73 6b 69 70 2d 63 64 72 20 73 6f 75 72 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 dr.skip-cdr.source)))..........(
13f40 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 69 67 6e 6f 72 65 2d 70 6c 61 63 65 2d 70 20 28 63 61 72 (dash--match-ignore-place-p.(car
13f60 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d .match-form))...........(dash--m
13f80 61 74 63 68 2d 63 6f 6e 73 2d 31 20 28 63 64 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 73 6f 75 atch-cons-1.(cdr.match-form).sou
13fa0 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rce.............................
13fc0 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 70 73 20 3a 73 6b 69 70 2d 63 64 72 20 28 31 2b ..(plist-put.props.:skip-cdr.(1+
13fe0 20 73 6b 69 70 2d 63 64 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 .skip-cdr))))..........(t.......
14000 20 20 20 20 28 2d 63 6f 6e 63 61 74 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 63 61 72 20 6d ....(-concat.(dash--match.(car.m
14020 61 74 63 68 2d 66 6f 72 6d 29 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 73 6b 69 atch-form).(dash--match-cons-ski
14040 70 2d 63 64 72 20 73 6b 69 70 2d 63 64 72 20 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 p-cdr.skip-cdr.source)).........
14060 20 20 20 20 20 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 2d 31 20 28 ...........(dash--match-cons-1.(
14080 63 64 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 73 6f 75 72 63 65 29 29 29 29 29 0a 20 20 20 20 cdr.match-form).source))))).....
140a0 20 20 20 28 74 20 3b 3b 20 4c 61 73 74 20 6d 61 74 63 68 69 6e 67 20 70 6c 61 63 65 2c 20 6e 6f ...(t.;;.Last.matching.place,.no
140c0 20 6e 65 65 64 20 66 6f 72 20 73 68 69 66 74 0a 20 20 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d .need.for.shift.........(dash--m
140e0 61 74 63 68 20 28 63 61 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 28 64 61 73 68 2d 2d 6d 61 74 atch.(car.match-form).(dash--mat
14100 63 68 2d 63 6f 6e 73 2d 67 65 74 2d 63 61 72 20 73 6b 69 70 2d 63 64 72 20 73 6f 75 72 63 65 29 ch-cons-get-car.skip-cdr.source)
14120 29 29 29 29 0a 20 20 20 20 20 28 28 65 71 20 6d 61 74 63 68 2d 66 6f 72 6d 20 6e 69 6c 29 0a 20 ))))......((eq.match-form.nil)..
14140 20 20 20 20 20 6e 69 6c 29 0a 20 20 20 20 20 28 74 20 3b 3b 20 48 61 6e 64 6c 65 20 69 6d 70 72 .....nil)......(t.;;.Handle.impr
14160 6f 70 65 72 20 6c 69 73 74 73 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 69 6e 67 20 70 6c 61 63 65 oper.lists...Last.matching.place
14180 2c 20 6e 6f 20 6e 65 65 64 20 66 6f 72 20 73 68 69 66 74 0a 20 20 20 20 20 20 28 64 61 73 68 2d ,.no.need.for.shift.......(dash-
141a0 2d 6d 61 74 63 68 20 6d 61 74 63 68 2d 66 6f 72 6d 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 -match.match-form.(dash--match-c
141c0 6f 6e 73 2d 67 65 74 2d 63 64 72 20 73 6b 69 70 2d 63 64 72 20 73 6f 75 72 63 65 29 29 29 29 29 ons-get-cdr.skip-cdr.source)))))
141e0 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 76 65 63 74 6f 72 20 28 6d 61 )..(defun.dash--match-vector.(ma
14200 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 0a 20 20 22 53 65 74 75 70 20 61 20 76 65 63 74 tch-form.source)..."Setup.a.vect
14220 6f 72 20 6d 61 74 63 68 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 61 6e 64 20 63 61 6c 6c or.matching.environment.and.call
14240 20 74 68 65 20 72 65 61 6c 20 6d 61 74 63 68 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 20 28 .the.real.matcher."...(let.((s.(
14260 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6d 61 6b 65 2d 73 6f 75 72 63 65 2d 73 79 6d 62 6f 6c 29 29 dash--match-make-source-symbol))
14280 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 62 69 6e 64 20 60 ).....(cond......;;.don't.bind.`
142a0 73 27 20 69 66 20 77 65 20 6f 6e 6c 79 20 68 61 76 65 20 6f 6e 65 20 73 75 62 2d 70 61 74 74 65 s'.if.we.only.have.one.sub-patte
142c0 72 6e 0a 20 20 20 20 20 28 28 3d 20 28 6c 65 6e 67 74 68 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 rn......((=.(length.match-form).
142e0 31 29 0a 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 61 72 65 66 20 6d 61 74 63 1).......(dash--match.(aref.matc
14300 68 2d 66 6f 72 6d 20 30 29 20 60 28 61 72 65 66 20 2c 73 6f 75 72 63 65 20 30 29 29 29 0a 20 20 h-form.0).`(aref.,source.0)))...
14320 20 20 20 3b 3b 20 69 66 20 74 68 65 20 73 6f 75 72 63 65 20 69 73 20 61 20 73 79 6d 62 6f 6c 2c ...;;.if.the.source.is.a.symbol,
14340 20 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 72 65 2d 62 69 6e 64 20 69 74 0a 20 20 20 .we.don't.need.to.re-bind.it....
14360 20 20 28 28 73 79 6d 62 6f 6c 70 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 28 64 61 73 68 2d ..((symbolp.source).......(dash-
14380 2d 6d 61 74 63 68 2d 76 65 63 74 6f 72 2d 31 20 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 -match-vector-1.match-form.sourc
143a0 65 29 29 0a 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 62 69 6e 64 20 60 73 27 20 69 66 20 77 65 e))......;;.don't.bind.`s'.if.we
143c0 20 6f 6e 6c 79 20 68 61 76 65 20 6f 6e 65 20 73 75 62 2d 70 61 74 74 65 72 6e 20 77 68 69 63 68 .only.have.one.sub-pattern.which
143e0 20 69 73 20 6e 6f 74 20 69 67 6e 6f 72 65 64 0a 20 20 20 20 20 28 28 6c 65 74 2a 20 28 28 69 67 .is.not.ignored......((let*.((ig
14400 6e 6f 72 65 64 2d 70 6c 61 63 65 73 20 28 6d 61 70 63 61 72 20 27 64 61 73 68 2d 2d 6d 61 74 63 nored-places.(mapcar.'dash--matc
14420 68 2d 69 67 6e 6f 72 65 2d 70 6c 61 63 65 2d 70 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 0a 20 20 h-ignore-place-p.match-form))...
14440 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 64 2d 70 6c 61 63 65 73 2d 6e 20 28 6c 65 ...........(ignored-places-n.(le
14460 6e 67 74 68 20 28 2d 72 65 6d 6f 76 65 20 27 6e 75 6c 6c 20 69 67 6e 6f 72 65 64 2d 70 6c 61 63 ngth.(-remove.'null.ignored-plac
14480 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 69 67 6e 6f 72 65 64 2d es)))).........(when.(=.ignored-
144a0 70 6c 61 63 65 73 2d 6e 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 6d 61 74 63 68 2d 66 6f 72 6d 29 places-n.(1-.(length.match-form)
144c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 20 28 2d 66 69 6e 64 2d 69 6e 64 ))...........(let.((n.(-find-ind
144e0 65 78 20 27 6e 75 6c 6c 20 69 67 6e 6f 72 65 64 2d 70 6c 61 63 65 73 29 29 29 0a 20 20 20 20 20 ex.'null.ignored-places)))......
14500 20 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 61 72 65 66 20 6d 61 74 63 68 2d .......(dash--match.(aref.match-
14520 66 6f 72 6d 20 6e 29 20 60 28 61 72 65 66 20 2c 73 6f 75 72 63 65 20 2c 6e 29 29 29 29 29 29 0a form.n).`(aref.,source.,n)))))).
14540 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 73 20 73 6f 75 72 .....(t.......(cons.(list.s.sour
14560 63 65 29 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 76 65 63 74 6f 72 2d 31 20 6d 61 74 63 68 2d ce).(dash--match-vector-1.match-
14580 66 6f 72 6d 20 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 form.s))))))..(defun.dash--match
145a0 2d 76 65 63 74 6f 72 2d 31 20 28 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 0a 20 20 -vector-1.(match-form.source)...
145c0 22 4d 61 74 63 68 20 4d 41 54 43 48 2d 46 4f 52 4d 20 61 67 61 69 6e 73 74 20 53 4f 55 52 43 45 "Match.MATCH-FORM.against.SOURCE
145e0 2e 0a 0a 4d 41 54 43 48 2d 46 4f 52 4d 20 69 73 20 61 20 76 65 63 74 6f 72 2e 20 20 45 61 63 68 ...MATCH-FORM.is.a.vector...Each
14600 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4d 41 54 43 48 2d 46 4f 52 4d 20 69 73 20 65 69 74 68 65 72 .element.of.MATCH-FORM.is.either
14620 20 61 0a 73 79 6d 62 6f 6c 2c 20 77 68 69 63 68 20 67 65 74 73 20 62 6f 75 6e 64 20 74 6f 20 74 .a.symbol,.which.gets.bound.to.t
14640 68 65 20 72 65 73 70 65 63 74 69 76 65 20 76 61 6c 75 65 20 69 6e 20 73 6f 75 72 63 65 20 6f 72 he.respective.value.in.source.or
14660 0a 61 6e 6f 74 68 65 72 20 6d 61 74 63 68 20 66 6f 72 6d 20 77 68 69 63 68 20 67 65 74 73 20 64 .another.match.form.which.gets.d
14680 65 73 74 72 75 63 74 75 72 65 64 20 72 65 63 75 72 73 69 76 65 6c 79 2e 0a 0a 49 66 20 73 65 63 estructured.recursively...If.sec
146a0 6f 6e 64 2d 66 72 6f 6d 2d 6c 61 73 74 20 70 6c 61 63 65 20 69 6e 20 4d 41 54 43 48 2d 46 4f 52 ond-from-last.place.in.MATCH-FOR
146c0 4d 20 69 73 20 74 68 65 20 73 79 6d 62 6f 6c 20 26 72 65 73 74 2c 20 74 68 65 0a 6e 65 78 74 20 M.is.the.symbol.&rest,.the.next.
146e0 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 4d 41 54 43 48 2d 46 4f 52 4d 20 69 73 20 6d 61 74 element.of.the.MATCH-FORM.is.mat
14700 63 68 65 64 20 61 67 61 69 6e 73 74 20 74 68 65 20 74 61 69 6c 20 6f 66 0a 53 4f 55 52 43 45 2c ched.against.the.tail.of.SOURCE,
14720 20 73 74 61 72 74 69 6e 67 20 61 74 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 26 72 65 73 74 20 .starting.at.index.of.the.&rest.
14740 73 79 6d 62 6f 6c 2e 20 20 54 68 69 73 20 69 73 0a 63 6f 6e 63 65 70 74 75 61 6c 6c 79 20 74 68 symbol...This.is.conceptually.th
14760 65 20 73 61 6d 65 20 61 73 20 74 68 65 20 28 68 65 61 64 20 2e 20 74 61 69 6c 29 20 6d 61 74 63 e.same.as.the.(head...tail).matc
14780 68 20 66 6f 72 20 69 6d 70 72 6f 70 65 72 0a 6c 69 73 74 73 2c 20 77 68 65 72 65 20 64 6f 74 20 h.for.improper.lists,.where.dot.
147a0 70 6c 61 79 73 20 74 68 65 20 72 6f 6c 65 20 6f 66 20 26 72 65 73 74 2e 0a 0a 53 4f 55 52 43 45 plays.the.role.of.&rest...SOURCE
147c0 20 69 73 20 61 20 76 65 63 74 6f 72 2e 0a 0a 49 66 20 74 68 65 20 4d 41 54 43 48 2d 46 4f 52 4d .is.a.vector...If.the.MATCH-FORM
147e0 20 76 65 63 74 6f 72 20 69 73 20 73 68 6f 72 74 65 72 20 74 68 61 6e 20 53 4f 55 52 43 45 20 76 .vector.is.shorter.than.SOURCE.v
14800 65 63 74 6f 72 2c 20 6f 6e 6c 79 0a 74 68 65 20 28 6c 65 6e 67 74 68 20 4d 41 54 43 48 2d 46 4f ector,.only.the.(length.MATCH-FO
14820 52 4d 29 20 70 6c 61 63 65 73 20 61 72 65 20 62 6f 75 6e 64 2c 20 74 68 65 20 72 65 73 74 20 6f RM).places.are.bound,.the.rest.o
14840 66 20 74 68 65 20 53 4f 55 52 43 45 0a 69 73 20 64 69 73 63 61 72 64 65 64 2e 22 0a 20 20 28 6c f.the.SOURCE.is.discarded."...(l
14860 65 74 20 28 28 69 20 30 29 0a 20 20 20 20 20 20 20 20 28 6c 20 28 6c 65 6e 67 74 68 20 6d 61 74 et.((i.0).........(l.(length.mat
14880 63 68 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 29 29 0a 20 20 20 20 28 77 68 69 ch-form)).........(re)).....(whi
148a0 6c 65 20 28 3c 20 69 20 6c 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 20 28 61 72 65 66 20 le.(<.i.l).......(let.((m.(aref.
148c0 6d 61 74 63 68 2d 66 6f 72 6d 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 match-form.i))).........(push.(c
148e0 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 79 6d 62 6f 6c ond................((and.(symbol
14900 70 20 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 6d 20 p.m)......................(eq.m.
14920 27 26 72 65 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 '&rest)).................(prog1.
14940 28 64 61 73 68 2d 2d 6d 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (dash--match....................
14960 20 20 20 20 20 28 61 72 65 66 20 6d 61 74 63 68 2d 66 6f 72 6d 20 28 31 2b 20 69 29 29 0a 20 20 .....(aref.match-form.(1+.i))...
14980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 73 75 62 73 74 72 69 6e ......................`(substrin
149a0 67 20 2c 73 6f 75 72 63 65 20 2c 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g.,source.,i))..................
149c0 20 28 73 65 74 71 20 69 20 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 .(setq.i.l)))................((a
149e0 6e 64 20 28 73 79 6d 62 6f 6c 70 20 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.(symbolp.m)..................
14a00 20 20 20 20 3b 3b 20 64 6f 20 6e 6f 74 20 6d 61 74 63 68 20 73 79 6d 62 6f 6c 73 20 73 74 61 72 ....;;.do.not.match.symbols.star
14a20 74 69 6e 67 20 77 69 74 68 20 5f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ting.with._.....................
14a40 20 28 6e 6f 74 20 28 65 71 20 28 61 72 65 66 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6d 29 20 .(not.(eq.(aref.(symbol-name.m).
14a60 30 29 20 3f 5f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 0).?_))).................(list.(
14a80 6c 69 73 74 20 6d 20 60 28 61 72 65 66 20 2c 73 6f 75 72 63 65 20 2c 69 29 29 29 29 0a 20 20 20 list.m.`(aref.,source.,i))))....
14aa0 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 79 6d 62 6f 6c 70 20 6d 29 29 0a 20 ............((not.(symbolp.m))..
14ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 6d 20 60 28 ...............(dash--match.m.`(
14ae0 61 72 65 66 20 2c 73 6f 75 72 63 65 20 2c 69 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 aref.,source.,i)))).............
14b00 20 20 72 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 31 2b 20 69 29 29 29 29 0a ..re).........(setq.i.(1+.i)))).
14b20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 2d 6e 20 31 20 28 6e 72 65 76 65 72 73 65 20 72 65 29 29 ....(-flatten-n.1.(nreverse.re))
14b40 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 2d 6e 6f 72 6d 61 6c ))..(defun.dash--match-kv-normal
14b60 69 7a 65 2d 6d 61 74 63 68 2d 66 6f 72 6d 20 28 70 61 74 74 65 72 6e 29 0a 20 20 22 4e 6f 72 6d ize-match-form.(pattern)..."Norm
14b80 61 6c 69 7a 65 20 6b 76 20 50 41 54 54 45 52 4e 2e 0a 0a 54 68 69 73 20 6d 65 74 68 6f 64 20 6e alize.kv.PATTERN...This.method.n
14ba0 6f 72 6d 61 6c 69 7a 65 73 20 50 41 54 54 45 52 4e 20 74 6f 20 74 68 65 20 66 6f 72 6d 61 74 20 ormalizes.PATTERN.to.the.format.
14bc0 65 78 70 65 63 74 65 64 20 62 79 0a 60 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 27 2e 20 20 53 expected.by.`dash--match-kv'...S
14be0 65 65 20 60 2d 6c 65 74 27 20 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 2e ee.`-let'.for.the.specification.
14c00 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 72 6d 61 6c 69 7a 65 64 20 28 6c 69 73 74 20 28 63 61 72 "...(let.((normalized.(list.(car
14c20 20 70 61 74 74 65 72 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 6b 69 70 20 6e 69 6c 29 0a 20 .pattern))).........(skip.nil)..
14c40 20 20 20 20 20 20 20 28 66 69 6c 6c 2d 70 6c 61 63 65 68 6f 6c 64 65 72 20 28 6d 61 6b 65 2d 73 .......(fill-placeholder.(make-s
14c60 79 6d 62 6f 6c 20 22 2d 2d 64 61 73 68 2d 66 69 6c 6c 2d 70 6c 61 63 65 68 6f 6c 64 65 72 2d 2d ymbol."--dash-fill-placeholder--
14c80 22 29 29 29 0a 20 20 20 20 28 2d 65 61 63 68 20 28 2d 7a 69 70 2d 66 69 6c 6c 20 66 69 6c 6c 2d "))).....(-each.(-zip-fill.fill-
14ca0 70 6c 61 63 65 68 6f 6c 64 65 72 20 28 63 64 72 20 70 61 74 74 65 72 6e 29 20 28 63 64 64 72 20 placeholder.(cdr.pattern).(cddr.
14cc0 70 61 74 74 65 72 6e 29 29 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 0a 20 pattern)).......(lambda.(pair)..
14ce0 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 75 72 72 65 6e 74 20 28 63 61 72 20 70 61 69 72 29 .......(let.((current.(car.pair)
14d00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 78 74 20 28 63 64 72 20 70 61 69 72 29 )...............(next.(cdr.pair)
14d20 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 73 6b 69 70 0a 20 20 20 20 20 20 20 20 20 20 ))...........(if.skip...........
14d40 20 20 20 20 28 73 65 74 71 20 73 6b 69 70 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....(setq.skip.nil).............
14d60 28 69 66 20 28 6f 72 20 28 65 71 20 66 69 6c 6c 2d 70 6c 61 63 65 68 6f 6c 64 65 72 20 6e 65 78 (if.(or.(eq.fill-placeholder.nex
14d80 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6f 72 20 t).....................(not.(or.
14da0 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (and.(symbolp.next).............
14dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6b 65 79 77 ......................(not.(keyw
14de0 6f 72 64 70 20 6e 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ordp.next)).....................
14e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 6e 65 78 74 20 74 29 29 0a ..............(not.(eq.next.t)).
14e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
14e40 20 20 28 6e 6f 74 20 28 65 71 20 6e 65 78 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 ..(not.(eq.next.nil)))..........
14e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 ....................(and.(consp.
14e80 6e 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 next)...........................
14ea0 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 61 72 20 6e 65 78 74 29 20 27 71 75 6f ........(not.(eq.(car.next).'quo
14ec0 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te)))...........................
14ee0 20 20 20 28 76 65 63 74 6f 72 70 20 6e 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...(vectorp.next))))............
14f00 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 .....(progn...................(c
14f20 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6b 65 79 77 6f 72 64 ond....................((keyword
14f40 70 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 p.current).....................(
14f60 70 75 73 68 20 63 75 72 72 65 6e 74 20 6e 6f 72 6d 61 6c 69 7a 65 64 29 0a 20 20 20 20 20 20 20 push.current.normalized)........
14f80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 69 6e 74 65 72 6e 20 28 73 75 62 73 .............(push.(intern.(subs
14fa0 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 63 75 72 72 65 6e 74 29 20 31 29 29 20 tring.(symbol-name.current).1)).
14fc0 6e 6f 72 6d 61 6c 69 7a 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 normalized))....................
14fe0 28 28 73 74 72 69 6e 67 70 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ((stringp.current)..............
15000 20 20 20 20 20 20 20 28 70 75 73 68 20 63 75 72 72 65 6e 74 20 6e 6f 72 6d 61 6c 69 7a 65 64 29 .......(push.current.normalized)
15020 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 69 6e 74 65 .....................(push.(inte
15040 72 6e 20 63 75 72 72 65 6e 74 29 20 6e 6f 72 6d 61 6c 69 7a 65 64 29 29 0a 20 20 20 20 20 20 20 rn.current).normalized))........
15060 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 63 6f 6e 73 70 20 63 75 72 72 65 6e 74 ............((and.(consp.current
15080 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 )..........................(eq.(
150a0 63 61 72 20 63 75 72 72 65 6e 74 29 20 27 71 75 6f 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 car.current).'quote))...........
150c0 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 75 72 72 65 6e 74 20 6e 6f 72 6d 61 6c 69 7a ..........(push.current.normaliz
150e0 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 ed).....................(push.(c
15100 61 64 72 20 63 75 72 72 65 6e 74 29 20 6e 6f 72 6d 61 6c 69 7a 65 64 29 29 0a 20 20 20 20 20 20 adr.current).normalized)).......
15120 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 2d 6c 65 74 3a 20 66 6f .............(t.(error."-let:.fo
15140 75 6e 64 20 6b 65 79 20 60 25 73 27 20 69 6e 20 6b 76 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 und.key.`%s'.in.kv.destructuring
15160 20 62 75 74 20 69 74 73 20 70 61 74 74 65 72 6e 20 60 25 73 27 20 69 73 20 69 6e 76 61 6c 69 64 .but.its.pattern.`%s'.is.invalid
15180 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 68 65 .and.can.not.be.derived.from.the
151a0 20 6b 65 79 22 20 63 75 72 72 65 6e 74 20 6e 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .key".current.next)))...........
151c0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6b 69 70 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 ........(setq.skip.nil))........
151e0 20 20 20 20 20 20 20 28 70 75 73 68 20 63 75 72 72 65 6e 74 20 6e 6f 72 6d 61 6c 69 7a 65 64 29 .......(push.current.normalized)
15200 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 65 78 74 20 6e 6f 72 6d 61 6c ...............(push.next.normal
15220 69 7a 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 6b 69 70 20 74 ized)...............(setq.skip.t
15240 29 29 29 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 6e 6f 72 6d 61 6c 69 7a 65 64 29 )))))).....(nreverse.normalized)
15260 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 20 28 6d 61 74 63 68 ))..(defun.dash--match-kv.(match
15280 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 0a 20 20 22 53 65 74 75 70 20 61 20 6b 76 20 6d 61 74 63 -form.source)..."Setup.a.kv.matc
152a0 68 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 61 6e 64 20 63 61 6c 6c 20 74 68 65 20 72 65 hing.environment.and.call.the.re
152c0 61 6c 20 6d 61 74 63 68 65 72 2e 0a 0a 6b 76 20 63 61 6e 20 62 65 20 61 6e 79 20 6b 65 79 2d 76 al.matcher...kv.can.be.any.key-v
152e0 61 6c 75 65 20 73 74 6f 72 65 2c 20 73 75 63 68 20 61 73 20 70 6c 69 73 74 2c 20 61 6c 69 73 74 alue.store,.such.as.plist,.alist
15300 20 6f 72 20 68 61 73 68 2d 74 61 62 6c 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 20 28 64 61 73 .or.hash-table."...(let.((s.(das
15320 68 2d 2d 6d 61 74 63 68 2d 6d 61 6b 65 2d 73 6f 75 72 63 65 2d 73 79 6d 62 6f 6c 29 29 29 0a 20 h--match-make-source-symbol)))..
15340 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 62 69 6e 64 20 60 73 27 20 ...(cond......;;.don't.bind.`s'.
15360 69 66 20 77 65 20 6f 6e 6c 79 20 68 61 76 65 20 6f 6e 65 20 73 75 62 2d 70 61 74 74 65 72 6e 20 if.we.only.have.one.sub-pattern.
15380 28 26 74 79 70 65 20 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 20 28 28 3d 20 28 6c 65 6e 67 74 68 (&type.key.val)......((=.(length
153a0 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 33 29 0a 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 .match-form).3).......(dash--mat
153c0 63 68 2d 6b 76 2d 31 20 28 63 64 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 73 6f 75 72 63 65 20 ch-kv-1.(cdr.match-form).source.
153e0 28 63 61 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 3b 3b 20 69 66 20 74 68 (car.match-form)))......;;.if.th
15400 65 20 73 6f 75 72 63 65 20 69 73 20 61 20 73 79 6d 62 6f 6c 2c 20 77 65 20 64 6f 6e 27 74 20 6e e.source.is.a.symbol,.we.don't.n
15420 65 65 64 20 74 6f 20 72 65 2d 62 69 6e 64 20 69 74 0a 20 20 20 20 20 28 28 73 79 6d 62 6f 6c 70 eed.to.re-bind.it......((symbolp
15440 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 2d 31 .source).......(dash--match-kv-1
15460 20 28 63 64 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 73 6f 75 72 63 65 20 28 63 61 72 20 6d 61 .(cdr.match-form).source.(car.ma
15480 74 63 68 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 tch-form)))......(t.......(cons.
154a0 28 6c 69 73 74 20 73 20 73 6f 75 72 63 65 29 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 2d (list.s.source).(dash--match-kv-
154c0 31 20 28 63 64 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 73 20 28 63 61 72 20 6d 61 74 63 68 2d 1.(cdr.match-form).s.(car.match-
154e0 66 6f 72 6d 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 65 78 70 61 6e 64 3a form)))))))..(defun.dash-expand:
15500 26 68 61 73 68 20 28 6b 65 79 20 73 6f 75 72 63 65 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 65 &hash.(key.source)..."Generate.e
15520 78 74 72 61 63 74 69 6e 67 20 4b 45 59 20 66 72 6f 6d 20 53 4f 55 52 43 45 20 66 6f 72 20 26 68 xtracting.KEY.from.SOURCE.for.&h
15540 61 73 68 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2e 22 0a 20 20 60 28 67 65 74 68 61 73 68 20 ash.destructuring."...`(gethash.
15560 2c 6b 65 79 20 2c 73 6f 75 72 63 65 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 65 78 70 61 ,key.,source))..(defun.dash-expa
15580 6e 64 3a 26 70 6c 69 73 74 20 28 6b 65 79 20 73 6f 75 72 63 65 29 0a 20 20 22 47 65 6e 65 72 61 nd:&plist.(key.source)..."Genera
155a0 74 65 20 65 78 74 72 61 63 74 69 6e 67 20 4b 45 59 20 66 72 6f 6d 20 53 4f 55 52 43 45 20 66 6f te.extracting.KEY.from.SOURCE.fo
155c0 72 20 26 70 6c 69 73 74 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2e 22 0a 20 20 60 28 70 6c 69 r.&plist.destructuring."...`(pli
155e0 73 74 2d 67 65 74 20 2c 73 6f 75 72 63 65 20 2c 6b 65 79 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 st-get.,source.,key))..(defun.da
15600 73 68 2d 65 78 70 61 6e 64 3a 26 61 6c 69 73 74 20 28 6b 65 79 20 73 6f 75 72 63 65 29 0a 20 20 sh-expand:&alist.(key.source)...
15620 22 47 65 6e 65 72 61 74 65 20 65 78 74 72 61 63 74 69 6e 67 20 4b 45 59 20 66 72 6f 6d 20 53 4f "Generate.extracting.KEY.from.SO
15640 55 52 43 45 20 66 6f 72 20 26 61 6c 69 73 74 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2e 22 0a URCE.for.&alist.destructuring.".
15660 20 20 60 28 63 64 72 20 28 61 73 73 6f 63 20 2c 6b 65 79 20 2c 73 6f 75 72 63 65 29 29 29 0a 0a ..`(cdr.(assoc.,key.,source)))..
15680 28 64 65 66 75 6e 20 64 61 73 68 2d 65 78 70 61 6e 64 3a 26 68 61 73 68 3f 20 28 6b 65 79 20 73 (defun.dash-expand:&hash?.(key.s
156a0 6f 75 72 63 65 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 65 78 74 72 61 63 74 69 6e 67 20 4b 45 ource)..."Generate.extracting.KE
156c0 59 20 66 72 6f 6d 20 53 4f 55 52 43 45 20 66 6f 72 20 26 68 61 73 68 3f 20 64 65 73 74 72 75 63 Y.from.SOURCE.for.&hash?.destruc
156e0 74 75 72 69 6e 67 2e 0a 53 69 6d 69 6c 61 72 20 74 6f 20 26 68 61 73 68 20 62 75 74 20 63 68 65 turing..Similar.to.&hash.but.che
15700 63 6b 20 77 68 65 74 68 65 72 20 74 68 65 20 6d 61 70 20 69 73 20 6e 6f 74 20 6e 69 6c 2e 22 0a ck.whether.the.map.is.not.nil.".
15720 20 20 28 6c 65 74 20 28 28 73 72 63 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 73 72 63 22 29 ..(let.((src.(make-symbol."src")
15740 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c 73 72 63 20 2c 73 6f 75 72 63 65 29 29 0a 20 20 )).....`(let.((,src.,source))...
15760 20 20 20 20 20 28 77 68 65 6e 20 2c 73 72 63 20 28 67 65 74 68 61 73 68 20 2c 6b 65 79 20 2c 73 .....(when.,src.(gethash.,key.,s
15780 72 63 29 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 64 61 73 68 2d 65 78 70 61 6e 64 3a rc)))))..(defalias.'dash-expand:
157a0 26 6b 65 79 73 20 27 64 61 73 68 2d 65 78 70 61 6e 64 3a 26 70 6c 69 73 74 29 0a 0a 28 64 65 66 &keys.'dash-expand:&plist)..(def
157c0 75 6e 20 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 2d 31 20 28 6d 61 74 63 68 2d 66 6f 72 6d 20 un.dash--match-kv-1.(match-form.
157e0 73 6f 75 72 63 65 20 74 79 70 65 29 0a 20 20 22 4d 61 74 63 68 20 4d 41 54 43 48 2d 46 4f 52 4d source.type)..."Match.MATCH-FORM
15800 20 61 67 61 69 6e 73 74 20 53 4f 55 52 43 45 20 6f 66 20 74 79 70 65 20 54 59 50 45 2e 0a 0a 4d .against.SOURCE.of.type.TYPE...M
15820 41 54 43 48 2d 46 4f 52 4d 20 69 73 20 61 20 70 72 6f 70 65 72 20 6c 69 73 74 20 6f 66 20 74 68 ATCH-FORM.is.a.proper.list.of.th
15840 65 20 66 6f 72 6d 20 28 6b 65 79 31 20 70 6c 61 63 65 31 20 2e 2e 2e 20 6b 65 79 4e 0a 70 6c 61 e.form.(key1.place1.....keyN.pla
15860 63 65 4e 29 2e 20 20 45 61 63 68 20 70 6c 61 63 65 4b 20 69 73 20 65 69 74 68 65 72 20 61 20 73 ceN)...Each.placeK.is.either.a.s
15880 79 6d 62 6f 6c 2c 20 77 68 69 63 68 20 67 65 74 73 20 62 6f 75 6e 64 20 74 6f 20 74 68 65 0a 76 ymbol,.which.gets.bound.to.the.v
158a0 61 6c 75 65 20 6f 66 20 6b 65 79 4b 20 72 65 74 72 69 65 76 65 64 20 66 72 6f 6d 20 74 68 65 20 alue.of.keyK.retrieved.from.the.
158c0 6b 65 79 2d 76 61 6c 75 65 20 73 74 6f 72 65 2c 20 6f 72 20 61 6e 6f 74 68 65 72 0a 6d 61 74 63 key-value.store,.or.another.matc
158e0 68 20 66 6f 72 6d 20 77 68 69 63 68 20 67 65 74 73 20 64 65 73 74 72 75 63 74 75 72 65 64 20 72 h.form.which.gets.destructured.r
15900 65 63 75 72 73 69 76 65 6c 79 2e 0a 0a 53 4f 55 52 43 45 20 69 73 20 61 20 6b 65 79 2d 76 61 6c ecursively...SOURCE.is.a.key-val
15920 75 65 20 73 74 6f 72 65 20 6f 66 20 74 79 70 65 20 54 59 50 45 2c 20 77 68 69 63 68 20 63 61 6e ue.store.of.type.TYPE,.which.can
15940 20 62 65 20 61 20 70 6c 69 73 74 2c 0a 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 68 61 73 68 20 .be.a.plist,.an.alist.or.a.hash.
15960 74 61 62 6c 65 2e 0a 0a 54 59 50 45 20 69 73 20 61 20 74 6f 6b 65 6e 20 73 70 65 63 69 66 79 69 table...TYPE.is.a.token.specifyi
15980 6e 67 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 6b 65 79 2d 76 61 6c 75 65 20 73 74 6f ng.the.type.of.the.key-value.sto
159a0 72 65 2e 0a 56 61 6c 69 64 20 76 61 6c 75 65 73 20 61 72 65 20 26 70 6c 69 73 74 2c 20 26 61 6c re..Valid.values.are.&plist,.&al
159c0 69 73 74 20 61 6e 64 20 26 68 61 73 68 2e 22 0a 20 20 28 2d 66 6c 61 74 74 65 6e 2d 6e 20 31 20 ist.and.&hash."...(-flatten-n.1.
159e0 28 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 (-map..................(lambda.(
15a00 6b 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6b kv)....................(let*.((k
15a20 20 28 63 61 72 20 6b 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(car.kv))......................
15a40 20 20 20 20 20 28 76 20 28 63 61 64 72 20 6b 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(v.(cadr.kv))..............
15a60 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 .............(getter............
15a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 64 61 73 68 2d 2d ................(funcall.(dash--
15aa0 67 65 74 2d 65 78 70 61 6e 64 2d 66 75 6e 63 74 69 6f 6e 20 74 79 70 65 29 20 6b 20 73 6f 75 72 get-expand-function.type).k.sour
15ac0 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 ce)))......................(cond
15ae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 79 6d 62 6f 6c 70 .......................((symbolp
15b00 20 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 .v)........................(list
15b20 20 28 6c 69 73 74 20 76 20 67 65 74 74 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(list.v.getter)))..............
15b40 20 20 20 20 20 20 20 20 20 28 74 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 76 20 67 65 74 74 65 .........(t.(dash--match.v.gette
15b60 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 r)))))..................(-partit
15b80 69 6f 6e 20 32 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 ion.2.match-form))))..(defun.das
15ba0 68 2d 2d 6d 61 74 63 68 2d 73 79 6d 62 6f 6c 20 28 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 h--match-symbol.(match-form.sour
15bc0 63 65 29 0a 20 20 22 42 69 6e 64 20 61 20 73 79 6d 62 6f 6c 2e 0a 0a 54 68 69 73 20 77 6f 72 6b ce)..."Bind.a.symbol...This.work
15be0 73 20 6a 75 73 74 20 6c 69 6b 65 20 60 6c 65 74 27 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 64 s.just.like.`let',.there.is.no.d
15c00 65 73 74 72 75 63 74 75 72 69 6e 67 2e 22 0a 20 20 28 6c 69 73 74 20 28 6c 69 73 74 20 6d 61 74 estructuring."...(list.(list.mat
15c20 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d ch-form.source)))..(defun.dash--
15c40 6d 61 74 63 68 20 28 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 0a 20 20 22 4d 61 74 match.(match-form.source)..."Mat
15c60 63 68 20 4d 41 54 43 48 2d 46 4f 52 4d 20 61 67 61 69 6e 73 74 20 53 4f 55 52 43 45 2e 0a 0a 54 ch.MATCH-FORM.against.SOURCE...T
15c80 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 73 20 74 68 65 20 4d 41 54 43 48 2d 46 4f 52 his.function.tests.the.MATCH-FOR
15ca0 4d 20 61 6e 64 20 64 69 73 70 61 74 63 68 65 73 20 74 6f 20 73 70 65 63 69 66 69 63 0a 6d 61 74 M.and.dispatches.to.specific.mat
15cc0 63 68 65 72 73 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 65 chers.based.on.the.type.of.the.e
15ce0 78 70 72 65 73 73 69 6f 6e 2e 0a 0a 4b 65 79 2d 76 61 6c 75 65 20 73 74 6f 72 65 73 20 61 72 65 xpression...Key-value.stores.are
15d00 20 64 69 73 61 6d 62 69 67 75 61 74 65 64 20 62 79 20 70 6c 61 63 69 6e 67 20 61 20 74 6f 6b 65 .disambiguated.by.placing.a.toke
15d20 6e 20 26 70 6c 69 73 74 2c 0a 26 61 6c 69 73 74 20 6f 72 20 26 68 61 73 68 20 61 73 20 61 20 66 n.&plist,.&alist.or.&hash.as.a.f
15d40 69 72 73 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 4d 41 54 43 48 2d 46 4f 52 4d 2e 22 0a 20 20 irst.item.in.the.MATCH-FORM."...
15d60 28 63 6f 6e 64 0a 20 20 20 28 28 61 6e 64 20 28 73 79 6d 62 6f 6c 70 20 6d 61 74 63 68 2d 66 6f (cond....((and.(symbolp.match-fo
15d80 72 6d 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 62 69 6e 64 20 74 68 69 6e 67 rm)..........;;.Don't.bind.thing
15da0 73 20 6c 69 6b 65 20 26 6b 65 79 73 20 61 73 20 69 66 20 74 68 65 79 20 77 65 72 65 20 76 61 72 s.like.&keys.as.if.they.were.var
15dc0 73 20 28 23 33 39 35 29 2e 0a 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 75 6e 63 74 69 6f s.(#395)...........(not.(functio
15de0 6e 70 20 28 64 61 73 68 2d 2d 67 65 74 2d 65 78 70 61 6e 64 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 np.(dash--get-expand-function.ma
15e00 74 63 68 2d 66 6f 72 6d 29 29 29 29 0a 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 73 79 tch-form)))).....(dash--match-sy
15e20 6d 62 6f 6c 20 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 29 0a 20 20 20 28 28 63 6f mbol.match-form.source))....((co
15e40 6e 73 70 20 6d 61 74 63 68 2d 66 6f 72 6d 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 3b nsp.match-form).....(cond......;
15e60 3b 20 48 61 6e 64 6c 65 20 74 68 65 20 22 78 20 26 61 73 22 20 62 69 6e 64 69 6e 67 73 20 66 69 ;.Handle.the."x.&as".bindings.fi
15e80 72 73 74 2e 0a 20 20 20 20 20 28 28 61 6e 64 20 28 63 6f 6e 73 70 20 28 63 64 72 20 6d 61 74 63 rst.......((and.(consp.(cdr.matc
15ea0 68 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 h-form))............(symbolp.(ca
15ec0 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 27 26 r.match-form))............(eq.'&
15ee0 61 73 20 28 63 61 64 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 28 6c 65 as.(cadr.match-form))).......(le
15f00 74 20 28 28 73 20 28 63 61 72 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 t.((s.(car.match-form)))........
15f20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 73 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 .(cons.(list.s.source)..........
15f40 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 63 64 64 72 20 6d 61 74 63 68 2d 66 6f .....(dash--match.(cddr.match-fo
15f60 72 6d 29 20 73 29 29 29 29 0a 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 28 64 61 73 68 rm).s))))......((functionp.(dash
15f80 2d 2d 67 65 74 2d 65 78 70 61 6e 64 2d 66 75 6e 63 74 69 6f 6e 20 28 63 61 72 20 6d 61 74 63 68 --get-expand-function.(car.match
15fa0 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 20 28 -form))).......(dash--match-kv.(
15fc0 64 61 73 68 2d 2d 6d 61 74 63 68 2d 6b 76 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 61 74 63 68 2d 66 dash--match-kv-normalize-match-f
15fe0 6f 72 6d 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 28 74 orm.match-form).source))......(t
16000 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 2d 63 6f 6e 73 20 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f .(dash--match-cons.match-form.so
16020 75 72 63 65 29 29 29 29 0a 20 20 20 28 28 76 65 63 74 6f 72 70 20 6d 61 74 63 68 2d 66 6f 72 6d urce))))....((vectorp.match-form
16040 29 0a 20 20 20 20 3b 3b 20 57 65 20 73 75 70 70 6f 72 74 20 74 68 65 20 26 61 73 20 62 69 6e 64 ).....;;.We.support.the.&as.bind
16060 69 6e 67 20 69 6e 20 76 65 63 74 6f 72 73 20 74 6f 6f 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 ing.in.vectors.too.....(cond....
16080 20 20 28 28 61 6e 64 20 28 3e 20 28 6c 65 6e 67 74 68 20 6d 61 74 63 68 2d 66 6f 72 6d 29 20 32 ..((and.(>.(length.match-form).2
160a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 70 20 28 61 72 65 66 20 6d 61 74 63 )............(symbolp.(aref.matc
160c0 68 2d 66 6f 72 6d 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 27 26 61 73 20 28 h-form.0))............(eq.'&as.(
160e0 61 72 65 66 20 6d 61 74 63 68 2d 66 6f 72 6d 20 31 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 aref.match-form.1))).......(let.
16100 28 28 73 20 28 61 72 65 66 20 6d 61 74 63 68 2d 66 6f 72 6d 20 30 29 29 29 0a 20 20 20 20 20 20 ((s.(aref.match-form.0))).......
16120 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 73 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 ..(cons.(list.s.source).........
16140 20 20 20 20 20 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 73 75 62 73 74 72 69 6e 67 20 6d 61 ......(dash--match.(substring.ma
16160 74 63 68 2d 66 6f 72 6d 20 32 29 20 73 29 29 29 29 0a 20 20 20 20 20 28 74 20 28 64 61 73 68 2d tch-form.2).s))))......(t.(dash-
16180 2d 6d 61 74 63 68 2d 76 65 63 74 6f 72 20 6d 61 74 63 68 2d 66 6f 72 6d 20 73 6f 75 72 63 65 29 -match-vector.match-form.source)
161a0 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6c 65 )))))..(defun.dash--normalize-le
161c0 74 2d 76 61 72 6c 69 73 74 20 28 76 61 72 6c 69 73 74 29 0a 20 20 22 4e 6f 72 6d 61 6c 69 7a 65 t-varlist.(varlist)..."Normalize
161e0 20 56 41 52 4c 49 53 54 20 73 6f 20 74 68 61 74 20 65 76 65 72 79 20 62 69 6e 64 69 6e 67 20 69 .VARLIST.so.that.every.binding.i
16200 73 20 61 20 6c 69 73 74 2e 0a 0a 60 6c 65 74 27 20 61 6c 6c 6f 77 73 20 73 70 65 63 69 66 79 69 s.a.list...`let'.allows.specifyi
16220 6e 67 20 61 20 62 69 6e 64 69 6e 67 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 ng.a.binding.which.is.not.a.list
16240 20 62 75 74 20 73 69 6d 70 6c 79 0a 74 68 65 20 70 6c 61 63 65 20 77 68 69 63 68 20 69 73 20 74 .but.simply.the.place.which.is.t
16260 68 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 6f 75 6e 64 20 74 6f 20 6e 69 6c 2c 20 hen.automatically.bound.to.nil,.
16280 73 75 63 68 20 74 68 61 74 20 61 6c 6c 0a 74 68 72 65 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f such.that.all.three.of.the.follo
162a0 77 69 6e 67 20 61 72 65 20 69 64 65 6e 74 69 63 61 6c 20 61 6e 64 20 65 76 61 6c 75 61 74 65 20 wing.are.identical.and.evaluate.
162c0 74 6f 20 6e 69 6c 2e 0a 0a 20 20 28 6c 65 74 20 28 61 29 20 61 29 0a 20 20 28 6c 65 74 20 28 28 to.nil.....(let.(a).a)...(let.((
162e0 61 29 29 20 61 29 0a 20 20 28 6c 65 74 20 28 28 61 20 6e 69 6c 29 29 20 61 29 0a 0a 54 68 69 73 a)).a)...(let.((a.nil)).a)..This
16300 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 73 20 61 6c 6c 20 6f 66 20 74 68 65 73 .function.normalizes.all.of.thes
16320 65 20 74 6f 20 74 68 65 20 6c 61 73 74 20 66 6f 72 6d 2e 22 0a 20 20 28 2d 2d 6d 61 70 20 28 69 e.to.the.last.form."...(--map.(i
16340 66 20 28 63 6f 6e 73 70 20 69 74 29 20 69 74 20 28 6c 69 73 74 20 69 74 20 6e 69 6c 29 29 20 76 f.(consp.it).it.(list.it.nil)).v
16360 61 72 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 6c 65 74 2a 20 28 76 61 72 6c 69 arlist))..(defmacro.-let*.(varli
16380 73 74 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 42 69 6e 64 20 76 61 72 69 61 62 6c 65 73 st.&rest.body)..."Bind.variables
163a0 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 56 41 52 4c 49 53 54 20 74 68 65 6e 20 65 76 61 6c 20 .according.to.VARLIST.then.eval.
163c0 42 4f 44 59 2e 0a 0a 56 41 52 4c 49 53 54 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 BODY...VARLIST.is.a.list.of.list
163e0 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 45 29 2e 20 s.of.the.form.(PATTERN.SOURCE)..
16400 20 45 61 63 68 0a 50 41 54 54 45 52 4e 20 69 73 20 6d 61 74 63 68 65 64 20 61 67 61 69 6e 73 74 .Each.PATTERN.is.matched.against
16420 20 74 68 65 20 53 4f 55 52 43 45 20 73 74 72 75 63 74 75 72 61 6c 6c 79 2e 20 20 53 4f 55 52 43 .the.SOURCE.structurally...SOURC
16440 45 20 69 73 0a 6f 6e 6c 79 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 63 65 20 66 6f 72 20 65 61 63 E.is.only.evaluated.once.for.eac
16460 68 20 50 41 54 54 45 52 4e 2e 0a 0a 45 61 63 68 20 53 4f 55 52 43 45 20 63 61 6e 20 72 65 66 65 h.PATTERN...Each.SOURCE.can.refe
16480 72 20 74 6f 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 61 6c 72 65 61 64 79 20 62 6f 75 6e 64 20 62 r.to.the.symbols.already.bound.b
164a0 79 20 74 68 69 73 0a 56 41 52 4c 49 53 54 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 y.this.VARLIST...This.is.useful.
164c0 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 65 73 74 72 75 63 74 75 72 65 20 53 4f 55 52 43 if.you.want.to.destructure.SOURC
164e0 45 0a 72 65 63 75 72 73 69 76 65 6c 79 20 62 75 74 20 61 6c 73 6f 20 77 61 6e 74 20 74 6f 20 6e E.recursively.but.also.want.to.n
16500 61 6d 65 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 73 74 72 75 63 74 75 72 65 73 2e ame.the.intermediate.structures.
16520 0a 0a 53 65 65 20 60 2d 6c 65 74 27 20 66 6f 72 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c ..See.`-let'.for.the.list.of.all
16540 20 70 6f 73 73 69 62 6c 65 20 70 61 74 74 65 72 6e 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 .possible.patterns."...(declare.
16560 28 64 65 62 75 67 20 28 28 26 72 65 73 74 20 5b 26 6f 72 20 28 73 65 78 70 20 66 6f 72 6d 29 20 (debug.((&rest.[&or.(sexp.form).
16580 73 65 78 70 5d 29 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 sexp]).body))............(indent
165a0 20 31 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 76 61 72 6c 69 73 74 20 28 64 61 73 68 2d 2d 6e 6f .1))...(let*.((varlist.(dash--no
165c0 72 6d 61 6c 69 7a 65 2d 6c 65 74 2d 76 61 72 6c 69 73 74 20 76 61 72 6c 69 73 74 29 29 0a 20 20 rmalize-let-varlist.varlist))...
165e0 20 20 20 20 20 20 20 28 62 69 6e 64 69 6e 67 73 20 28 2d 2d 6d 61 70 63 61 74 20 28 64 61 73 68 .......(bindings.(--mapcat.(dash
16600 2d 2d 6d 61 74 63 68 20 28 63 61 72 20 69 74 29 20 28 63 61 64 72 20 69 74 29 29 20 76 61 72 6c --match.(car.it).(cadr.it)).varl
16620 69 73 74 29 29 29 0a 20 20 20 20 60 28 6c 65 74 2a 20 2c 62 69 6e 64 69 6e 67 73 0a 20 20 20 20 ist))).....`(let*.,bindings.....
16640 20 20 20 2c 40 62 6f 64 79 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 6c 65 74 20 28 76 61 ...,@body)))..(defmacro.-let.(va
16660 72 6c 69 73 74 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 42 69 6e 64 20 76 61 72 69 61 62 rlist.&rest.body)..."Bind.variab
16680 6c 65 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 56 41 52 4c 49 53 54 20 74 68 65 6e 20 65 76 les.according.to.VARLIST.then.ev
166a0 61 6c 20 42 4f 44 59 2e 0a 0a 56 41 52 4c 49 53 54 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c al.BODY...VARLIST.is.a.list.of.l
166c0 69 73 74 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 45 ists.of.the.form.(PATTERN.SOURCE
166e0 29 2e 20 20 45 61 63 68 0a 50 41 54 54 45 52 4e 20 69 73 20 6d 61 74 63 68 65 64 20 61 67 61 69 )...Each.PATTERN.is.matched.agai
16700 6e 73 74 20 74 68 65 20 53 4f 55 52 43 45 20 5c 22 73 74 72 75 63 74 75 72 61 6c 6c 79 5c 22 2e nst.the.SOURCE.\"structurally\".
16720 20 20 53 4f 55 52 43 45 0a 69 73 20 6f 6e 6c 79 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 63 65 20 ..SOURCE.is.only.evaluated.once.
16740 66 6f 72 20 65 61 63 68 20 50 41 54 54 45 52 4e 2e 20 20 45 61 63 68 20 50 41 54 54 45 52 4e 20 for.each.PATTERN...Each.PATTERN.
16760 69 73 20 6d 61 74 63 68 65 64 0a 72 65 63 75 72 73 69 76 65 6c 79 2c 20 61 6e 64 20 63 61 6e 20 is.matched.recursively,.and.can.
16780 74 68 65 72 65 66 6f 72 65 20 63 6f 6e 74 61 69 6e 20 73 75 62 2d 70 61 74 74 65 72 6e 73 20 77 therefore.contain.sub-patterns.w
167a0 68 69 63 68 20 61 72 65 0a 6d 61 74 63 68 65 64 20 61 67 61 69 6e 73 74 20 63 6f 72 72 65 73 70 hich.are.matched.against.corresp
167c0 6f 6e 64 69 6e 67 20 73 75 62 2d 65 78 70 72 65 73 73 69 6f 6e 73 20 6f 66 20 53 4f 55 52 43 45 onding.sub-expressions.of.SOURCE
167e0 2e 0a 0a 41 6c 6c 20 74 68 65 20 53 4f 55 52 43 45 73 20 61 72 65 20 65 76 61 6c 6c 65 64 20 62 ...All.the.SOURCEs.are.evalled.b
16800 65 66 6f 72 65 20 61 6e 79 20 73 79 6d 62 6f 6c 73 20 61 72 65 0a 62 6f 75 6e 64 20 28 69 2e 65 efore.any.symbols.are.bound.(i.e
16820 2e 20 5c 22 69 6e 20 70 61 72 61 6c 6c 65 6c 5c 22 29 2e 0a 0a 49 66 20 56 41 52 4c 49 53 54 20 ..\"in.parallel\")...If.VARLIST.
16840 6f 6e 6c 79 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 only.contains.one.(PATTERN.SOURC
16860 45 29 20 65 6c 65 6d 65 6e 74 2c 20 79 6f 75 20 63 61 6e 0a 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 E).element,.you.can.optionally.s
16880 70 65 63 69 66 79 20 69 74 20 75 73 69 6e 67 20 61 20 76 65 63 74 6f 72 20 61 6e 64 20 64 69 73 pecify.it.using.a.vector.and.dis
168a0 63 61 72 64 69 6e 67 20 74 68 65 0a 6f 75 74 65 72 2d 6d 6f 73 74 20 70 61 72 65 6e 73 2e 20 20 carding.the.outer-most.parens...
168c0 54 68 75 73 0a 0a 20 20 28 2d 6c 65 74 20 28 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 45 29 29 Thus....(-let.((PATTERN.SOURCE))
168e0 20 2e 2e 2e 29 0a 0a 62 65 63 6f 6d 65 73 0a 0a 20 20 28 2d 6c 65 74 20 5b 50 41 54 54 45 52 4e ....)..becomes....(-let.[PATTERN
16900 20 53 4f 55 52 43 45 5d 20 2e 2e 2e 29 2e 0a 0a 60 2d 6c 65 74 27 20 75 73 65 73 20 61 20 63 6f .SOURCE]....)...`-let'.uses.a.co
16920 6e 76 65 6e 74 69 6f 6e 20 6f 66 20 6e 6f 74 20 62 69 6e 64 69 6e 67 20 70 6c 61 63 65 73 20 28 nvention.of.not.binding.places.(
16940 73 79 6d 62 6f 6c 73 29 20 73 74 61 72 74 69 6e 67 0a 77 69 74 68 20 5f 20 77 68 65 6e 65 76 65 symbols).starting.with._.wheneve
16960 72 20 69 74 27 73 20 70 6f 73 73 69 62 6c 65 2e 20 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 r.it's.possible...You.can.use.th
16980 69 73 20 74 6f 20 73 6b 69 70 20 6f 76 65 72 0a 65 6e 74 72 69 65 73 20 79 6f 75 20 64 6f 6e 27 is.to.skip.over.entries.you.don'
169a0 74 20 63 61 72 65 20 61 62 6f 75 74 2e 20 20 48 6f 77 65 76 65 72 2c 20 74 68 69 73 20 69 73 20 t.care.about...However,.this.is.
169c0 6e 6f 74 20 2a 61 6c 77 61 79 73 2a 0a 70 6f 73 73 69 62 6c 65 20 28 61 73 20 61 20 72 65 73 75 not.*always*.possible.(as.a.resu
169e0 6c 74 20 6f 66 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 29 20 61 6e 64 20 74 68 65 73 65 20 lt.of.implementation).and.these.
16a00 73 79 6d 62 6f 6c 73 20 6d 69 67 68 74 0a 67 65 74 20 62 6f 75 6e 64 20 74 6f 20 75 6e 64 65 66 symbols.might.get.bound.to.undef
16a20 69 6e 65 64 20 76 61 6c 75 65 73 2e 0a 0a 46 6f 6c 6c 6f 77 69 6e 67 20 69 73 20 74 68 65 20 6f ined.values...Following.is.the.o
16a40 76 65 72 76 69 65 77 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 70 61 74 74 65 72 6e 73 2e 20 20 verview.of.supported.patterns...
16a60 52 65 6d 65 6d 62 65 72 20 74 68 61 74 0a 70 61 74 74 65 72 6e 73 20 63 61 6e 20 62 65 20 6d 61 Remember.that.patterns.can.be.ma
16a80 74 63 68 65 64 20 72 65 63 75 72 73 69 76 65 6c 79 2c 20 73 6f 20 65 76 65 72 79 20 61 2c 20 62 tched.recursively,.so.every.a,.b
16aa0 2c 20 61 4b 20 69 6e 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6e 20 62 65 20 61 20 6d ,.aK.in.the.following.can.be.a.m
16ac0 61 74 63 68 69 6e 67 20 63 6f 6e 73 74 72 75 63 74 20 61 6e 64 20 6e 6f 74 20 6e 65 63 65 73 73 atching.construct.and.not.necess
16ae0 61 72 69 6c 79 20 61 0a 73 79 6d 62 6f 6c 2f 76 61 72 69 61 62 6c 65 2e 0a 0a 53 79 6d 62 6f 6c arily.a.symbol/variable...Symbol
16b00 3a 0a 0a 20 20 61 20 2d 20 62 69 6e 64 20 74 68 65 20 53 4f 55 52 43 45 20 74 6f 20 41 2e 20 20 :....a.-.bind.the.SOURCE.to.A...
16b20 54 68 69 73 20 69 73 20 6a 75 73 74 20 6c 69 6b 65 20 72 65 67 75 6c 61 72 20 60 6c 65 74 27 2e This.is.just.like.regular.`let'.
16b40 0a 0a 43 6f 6e 73 65 73 20 61 6e 64 20 6c 69 73 74 73 3a 0a 0a 20 20 28 61 29 20 2d 20 62 69 6e ..Conses.and.lists:....(a).-.bin
16b60 64 20 60 63 61 72 27 20 6f 66 20 63 6f 6e 73 2f 6c 69 73 74 20 74 6f 20 41 0a 0a 20 20 28 61 20 d.`car'.of.cons/list.to.A....(a.
16b80 2e 20 62 29 20 2d 20 62 69 6e 64 20 63 61 72 20 6f 66 20 63 6f 6e 73 20 74 6f 20 41 20 61 6e 64 ..b).-.bind.car.of.cons.to.A.and
16ba0 20 60 63 64 72 27 20 74 6f 20 42 0a 0a 20 20 28 61 20 62 29 20 2d 20 62 69 6e 64 20 63 61 72 20 .`cdr'.to.B....(a.b).-.bind.car.
16bc0 6f 66 20 6c 69 73 74 20 74 6f 20 41 20 61 6e 64 20 60 63 61 64 72 27 20 74 6f 20 42 0a 0a 20 20 of.list.to.A.and.`cadr'.to.B....
16be0 28 61 31 20 61 32 20 61 33 20 2e 2e 2e 29 20 2d 20 62 69 6e 64 20 30 74 68 20 63 61 72 20 6f 66 (a1.a2.a3....).-.bind.0th.car.of
16c00 20 6c 69 73 74 20 74 6f 20 41 31 2c 20 31 73 74 20 74 6f 20 41 32 2c 20 32 6e 64 20 74 6f 20 41 .list.to.A1,.1st.to.A2,.2nd.to.A
16c20 33 2e 2e 2e 0a 0a 20 20 28 61 31 20 61 32 20 61 33 20 2e 2e 2e 20 61 4e 20 2e 20 72 65 73 74 29 3.......(a1.a2.a3.....aN...rest)
16c40 20 2d 20 61 73 20 61 62 6f 76 65 2c 20 62 75 74 20 62 69 6e 64 20 74 68 65 20 4e 74 68 20 63 64 .-.as.above,.but.bind.the.Nth.cd
16c60 72 20 74 6f 20 52 45 53 54 2e 0a 0a 56 65 63 74 6f 72 73 3a 0a 0a 20 20 5b 61 5d 20 2d 20 62 69 r.to.REST...Vectors:....[a].-.bi
16c80 6e 64 20 30 74 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 61 20 6e 6f 6e 2d 6c 69 73 74 20 73 65 71 nd.0th.element.of.a.non-list.seq
16ca0 75 65 6e 63 65 20 74 6f 20 41 20 28 77 6f 72 6b 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 76 uence.to.A.(works.with.........v
16cc0 65 63 74 6f 72 73 2c 20 73 74 72 69 6e 67 73 2c 20 62 69 74 20 61 72 72 61 79 73 2e 2e 2e 29 0a ectors,.strings,.bit.arrays...).
16ce0 0a 20 20 5b 61 31 20 61 32 20 61 33 20 2e 2e 2e 5d 20 2d 20 62 69 6e 64 20 30 74 68 20 65 6c 65 ...[a1.a2.a3....].-.bind.0th.ele
16d00 6d 65 6e 74 20 6f 66 20 6e 6f 6e 2d 6c 69 73 74 20 73 65 71 75 65 6e 63 65 20 74 6f 20 41 30 2c ment.of.non-list.sequence.to.A0,
16d20 20 31 73 74 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 31 2c 20 32 .1st.to....................A1,.2
16d40 6e 64 20 74 6f 20 41 32 2c 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.to.A2,.......................
16d60 20 49 66 20 74 68 65 20 50 41 54 54 45 52 4e 20 69 73 20 73 68 6f 72 74 65 72 20 74 68 61 6e 20 .If.the.PATTERN.is.shorter.than.
16d80 53 4f 55 52 43 45 2c 20 74 68 65 20 76 61 6c 75 65 73 20 61 74 0a 20 20 20 20 20 20 20 20 20 20 SOURCE,.the.values.at...........
16da0 20 20 20 20 20 20 20 20 20 70 6c 61 63 65 73 20 6e 6f 74 20 69 6e 20 50 41 54 54 45 52 4e 20 61 .........places.not.in.PATTERN.a
16dc0 72 65 20 69 67 6e 6f 72 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 re.ignored.....................I
16de0 66 20 74 68 65 20 50 41 54 54 45 52 4e 20 69 73 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 53 4f 55 f.the.PATTERN.is.longer.than.SOU
16e00 52 43 45 2c 20 61 6e 20 60 65 72 72 6f 72 27 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 RCE,.an.`error'.is..............
16e20 20 20 20 20 20 20 74 68 72 6f 77 6e 2e 0a 0a 20 20 5b 61 31 20 61 32 20 61 33 20 2e 2e 2e 20 26 ......thrown.....[a1.a2.a3.....&
16e40 72 65 73 74 20 72 65 73 74 5d 20 2d 20 61 73 20 61 62 6f 76 65 2c 20 62 75 74 20 62 69 6e 64 20 rest.rest].-.as.above,.but.bind.
16e60 74 68 65 20 72 65 73 74 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 the.rest.of.....................
16e80 20 20 20 20 20 20 20 20 20 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 74 6f 20 52 45 53 54 2e 20 ..........the.sequence.to.REST..
16ea0 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .This.is........................
16ec0 20 20 20 20 20 20 20 63 6f 6e 63 65 70 74 75 61 6c 6c 79 20 74 68 65 20 73 61 6d 65 20 61 73 20 .......conceptually.the.same.as.
16ee0 69 6d 70 72 6f 70 65 72 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 improper.list...................
16f00 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 63 68 69 6e 67 20 28 61 31 20 61 32 20 2e 2e 2e 20 ............matching.(a1.a2.....
16f20 61 4e 20 2e 20 72 65 73 74 29 0a 0a 4b 65 79 2f 76 61 6c 75 65 20 73 74 6f 72 65 73 3a 0a 0a 20 aN...rest)..Key/value.stores:...
16f40 20 28 26 70 6c 69 73 74 20 6b 65 79 30 20 61 30 20 2e 2e 2e 20 6b 65 79 4e 20 61 4e 29 20 2d 20 .(&plist.key0.a0.....keyN.aN).-.
16f60 62 69 6e 64 20 76 61 6c 75 65 20 6d 61 70 70 65 64 20 62 79 20 6b 65 79 4b 20 69 6e 20 74 68 65 bind.value.mapped.by.keyK.in.the
16f80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16fa0 20 20 53 4f 55 52 43 45 20 70 6c 69 73 74 20 74 6f 20 61 4b 2e 20 20 49 66 20 74 68 65 0a 20 20 ..SOURCE.plist.to.aK...If.the...
16fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 ...............................v
16fe0 61 6c 75 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 61 4b 20 69 73 20 6e 69 6c 2e 0a 20 20 alue.is.not.found,.aK.is.nil....
17000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 ...............................U
17020 73 65 73 20 60 70 6c 69 73 74 2d 67 65 74 27 20 74 6f 20 66 65 74 63 68 20 76 61 6c 75 65 73 2e ses.`plist-get'.to.fetch.values.
17040 0a 0a 20 20 28 26 61 6c 69 73 74 20 6b 65 79 30 20 61 30 20 2e 2e 2e 20 6b 65 79 4e 20 61 4e 29 ....(&alist.key0.a0.....keyN.aN)
17060 20 2d 20 62 69 6e 64 20 76 61 6c 75 65 20 6d 61 70 70 65 64 20 62 79 20 6b 65 79 4b 20 69 6e 20 .-.bind.value.mapped.by.keyK.in.
17080 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 the.............................
170a0 20 20 20 20 20 53 4f 55 52 43 45 20 61 6c 69 73 74 20 74 6f 20 61 4b 2e 20 20 49 66 20 74 68 65 .....SOURCE.alist.to.aK...If.the
170c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
170e0 20 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 61 4b 20 69 73 20 6e 69 6c 2e ..value.is.not.found,.aK.is.nil.
17100 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17120 20 20 55 73 65 73 20 60 61 73 73 6f 63 27 20 74 6f 20 66 65 74 63 68 20 76 61 6c 75 65 73 2e 0a ..Uses.`assoc'.to.fetch.values..
17140 0a 20 20 28 26 68 61 73 68 20 6b 65 79 30 20 61 30 20 2e 2e 2e 20 6b 65 79 4e 20 61 4e 29 20 2d ...(&hash.key0.a0.....keyN.aN).-
17160 20 62 69 6e 64 20 76 61 6c 75 65 20 6d 61 70 70 65 64 20 62 79 20 6b 65 79 4b 20 69 6e 20 74 68 .bind.value.mapped.by.keyK.in.th
17180 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e...............................
171a0 20 20 53 4f 55 52 43 45 20 68 61 73 68 20 74 61 62 6c 65 20 74 6f 20 61 4b 2e 20 20 49 66 20 74 ..SOURCE.hash.table.to.aK...If.t
171c0 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 he..............................
171e0 20 20 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 61 4b 20 69 73 20 6e 69 6c ...value.is.not.found,.aK.is.nil
17200 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
17220 20 20 55 73 65 73 20 60 67 65 74 68 61 73 68 27 20 74 6f 20 66 65 74 63 68 20 76 61 6c 75 65 73 ..Uses.`gethash'.to.fetch.values
17240 2e 0a 0a 46 75 72 74 68 65 72 2c 20 73 70 65 63 69 61 6c 20 6b 65 79 77 6f 72 64 20 26 6b 65 79 ...Further,.special.keyword.&key
17260 73 20 73 75 70 70 6f 72 74 73 20 5c 22 69 6e 6c 69 6e 65 5c 22 20 6d 61 74 63 68 69 6e 67 20 6f s.supports.\"inline\".matching.o
17280 66 0a 70 6c 69 73 74 2d 6c 69 6b 65 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 2c 20 73 69 f.plist-like.key-value.pairs,.si
172a0 6d 69 6c 61 72 6c 79 20 74 6f 20 26 6b 65 79 73 20 6b 65 79 77 6f 72 64 20 6f 66 0a 60 63 6c 2d milarly.to.&keys.keyword.of.`cl-
172c0 64 65 66 75 6e 27 2e 0a 0a 20 20 28 61 31 20 61 32 20 2e 2e 2e 20 61 4e 20 26 6b 65 79 73 20 6b defun'.....(a1.a2.....aN.&keys.k
172e0 65 79 31 20 62 31 20 2e 2e 2e 20 6b 65 79 4e 20 62 4b 29 0a 0a 54 68 69 73 20 62 69 6e 64 73 20 ey1.b1.....keyN.bK)..This.binds.
17300 4e 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 74 6f 20 61 31 20 2e 2e 2e N.values.from.the.list.to.a1....
17320 20 61 4e 2c 20 74 68 65 6e 20 69 6e 74 65 72 70 72 65 74 73 0a 74 68 65 20 63 64 72 20 61 73 20 .aN,.then.interprets.the.cdr.as.
17340 61 20 70 6c 69 73 74 20 28 73 65 65 20 6b 65 79 2f 76 61 6c 75 65 20 6d 61 74 63 68 69 6e 67 20 a.plist.(see.key/value.matching.
17360 61 62 6f 76 65 29 2e 0a 0a 41 20 73 68 6f 72 74 68 61 6e 64 20 6e 6f 74 61 74 69 6f 6e 20 66 6f above)...A.shorthand.notation.fo
17380 72 20 6b 76 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 65 78 69 73 74 73 20 77 68 69 63 68 20 r.kv-destructuring.exists.which.
173a0 61 6c 6c 6f 77 73 20 74 68 65 0a 70 61 74 74 65 72 6e 73 20 62 65 20 6f 70 74 69 6f 6e 61 6c 6c allows.the.patterns.be.optionall
173c0 79 20 6c 65 66 74 20 6f 75 74 20 61 6e 64 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 y.left.out.and.derived.from.the.
173e0 6b 65 79 20 6e 61 6d 65 20 69 6e 0a 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 61 73 68 69 6f key.name.in.the.following.fashio
17400 6e 3a 0a 0a 2d 20 61 20 6b 65 79 20 3a 66 6f 6f 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 69 6e n:..-.a.key.:foo.is.converted.in
17420 74 6f 20 60 66 6f 6f 27 20 70 61 74 74 65 72 6e 2c 0a 2d 20 61 20 6b 65 79 20 5c 5c 3d 27 62 61 to.`foo'.pattern,.-.a.key.\\='ba
17440 72 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 60 62 61 72 27 20 70 61 74 74 65 72 r.is.converted.into.`bar'.patter
17460 6e 2c 0a 2d 20 61 20 6b 65 79 20 5c 22 62 61 7a 5c 22 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 n,.-.a.key.\"baz\".is.converted.
17480 69 6e 74 6f 20 60 62 61 7a 27 20 70 61 74 74 65 72 6e 2e 0a 0a 54 68 61 74 20 69 73 2c 20 74 68 into.`baz'.pattern...That.is,.th
174a0 65 20 65 6e 74 69 72 65 20 76 61 6c 75 65 20 75 6e 64 65 72 20 74 68 65 20 6b 65 79 20 69 73 20 e.entire.value.under.the.key.is.
174c0 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 64 65 72 69 76 65 64 0a 76 61 72 69 61 62 6c 65 20 77 69 bound.to.the.derived.variable.wi
174e0 74 68 6f 75 74 20 61 6e 79 20 66 75 72 74 68 65 72 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2e thout.any.further.destructuring.
17500 0a 0a 54 68 69 73 20 69 73 20 70 6f 73 73 69 62 6c 65 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 ..This.is.possible.only.when.the
17520 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 6b 65 79 20 69 73 20 6e 6f 74 20 61 .form.following.the.key.is.not.a
17540 0a 76 61 6c 69 64 20 70 61 74 74 65 72 6e 20 28 69 2e 65 2e 20 6e 6f 74 20 61 20 73 79 6d 62 6f .valid.pattern.(i.e..not.a.symbo
17560 6c 2c 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 6f 72 20 61 20 76 65 63 74 6f 72 29 2e 0a 4f 74 68 l,.a.cons.cell.or.a.vector)..Oth
17580 65 72 77 69 73 65 20 74 68 65 20 6d 61 74 63 68 69 6e 67 20 70 72 6f 63 65 65 64 73 20 61 73 20 erwise.the.matching.proceeds.as.
175a0 75 73 75 61 6c 20 61 6e 64 20 69 6e 20 63 61 73 65 20 6f 66 20 61 6e 0a 69 6e 76 61 6c 69 64 20 usual.and.in.case.of.an.invalid.
175c0 73 70 65 63 20 66 61 69 6c 73 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 75 73 20 spec.fails.with.an.error...Thus.
175e0 74 68 65 20 70 61 74 74 65 72 6e 73 20 61 72 65 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 61 73 20 66 the.patterns.are.normalized.as.f
17600 6f 6c 6c 6f 77 73 3a 0a 0a 20 20 20 3b 3b 20 64 65 72 69 76 65 20 61 6c 6c 20 74 68 65 20 6d 69 ollows:.....;;.derive.all.the.mi
17620 73 73 69 6e 67 20 70 61 74 74 65 72 6e 73 0a 20 20 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 5c ssing.patterns....(&plist.:foo.\
17640 5c 3d 27 62 61 72 20 5c 22 62 61 7a 5c 22 29 20 3d 3e 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 \='bar.\"baz\").=>.(&plist.:foo.
17660 66 6f 6f 20 5c 5c 3d 27 62 61 72 20 62 61 72 20 5c 22 62 61 7a 5c 22 20 62 61 7a 29 0a 0a 20 20 foo.\\='bar.bar.\"baz\".baz)....
17680 20 3b 3b 20 77 65 20 63 61 6e 20 73 70 65 63 69 66 79 20 73 6f 6d 65 20 62 75 74 20 6e 6f 74 20 .;;.we.can.specify.some.but.not.
176a0 6f 74 68 65 72 73 0a 20 20 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 5c 5c 3d 27 62 61 72 20 65 others....(&plist.:foo.\\='bar.e
176c0 78 70 6c 69 63 69 74 2d 62 61 72 29 20 3d 3e 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 66 6f 6f xplicit-bar).=>.(&plist.:foo.foo
176e0 20 5c 5c 3d 27 62 61 72 20 65 78 70 6c 69 63 69 74 2d 62 61 72 29 0a 0a 20 20 20 3b 3b 20 6e 6f .\\='bar.explicit-bar).....;;.no
17700 74 68 69 6e 67 20 68 61 70 70 65 6e 73 2c 20 77 65 20 73 74 6f 72 65 20 3a 66 6f 6f 20 69 6e 20 thing.happens,.we.store.:foo.in.
17720 78 0a 20 20 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 78 29 20 3d 3e 20 28 26 70 6c 69 73 74 20 x....(&plist.:foo.x).=>.(&plist.
17740 3a 66 6f 6f 20 78 29 0a 0a 20 20 20 3b 3b 20 6e 6f 74 68 69 6e 67 20 68 61 70 70 65 6e 73 2c 20 :foo.x).....;;.nothing.happens,.
17760 77 65 20 6d 61 74 63 68 20 72 65 63 75 72 73 69 76 65 6c 79 0a 20 20 20 28 26 70 6c 69 73 74 20 we.match.recursively....(&plist.
17780 3a 66 6f 6f 20 28 61 20 62 20 63 29 29 20 3d 3e 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 28 61 :foo.(a.b.c)).=>.(&plist.:foo.(a
177a0 20 62 20 63 29 29 0a 0a 59 6f 75 20 63 61 6e 20 6e 61 6d 65 20 74 68 65 20 73 6f 75 72 63 65 20 .b.c))..You.can.name.the.source.
177c0 75 73 69 6e 67 20 74 68 65 20 73 79 6e 74 61 78 20 53 59 4d 42 4f 4c 20 26 61 73 20 50 41 54 54 using.the.syntax.SYMBOL.&as.PATT
177e0 45 52 4e 2e 0a 54 68 69 73 20 73 79 6e 74 61 78 20 77 6f 72 6b 73 20 77 69 74 68 20 6c 69 73 74 ERN..This.syntax.works.with.list
17800 73 20 28 70 72 6f 70 65 72 20 6f 72 20 69 6d 70 72 6f 70 65 72 29 2c 20 76 65 63 74 6f 72 73 20 s.(proper.or.improper),.vectors.
17820 61 6e 64 0a 61 6c 6c 20 74 79 70 65 73 20 6f 66 20 6d 61 70 73 2e 0a 0a 20 20 28 6c 69 73 74 20 and.all.types.of.maps.....(list.
17840 26 61 73 20 61 20 62 20 63 29 20 28 6c 69 73 74 20 31 20 32 20 33 29 0a 0a 62 69 6e 64 73 20 41 &as.a.b.c).(list.1.2.3)..binds.A
17860 20 74 6f 20 31 2c 20 42 20 74 6f 20 32 2c 20 43 20 74 6f 20 33 20 61 6e 64 20 4c 49 53 54 20 74 .to.1,.B.to.2,.C.to.3.and.LIST.t
17880 6f 20 28 31 20 32 20 33 29 2e 0a 0a 53 69 6d 69 6c 61 72 6c 79 3a 0a 0a 20 20 28 62 6f 75 6e 64 o.(1.2.3)...Similarly:....(bound
178a0 73 20 26 61 73 20 62 65 67 20 2e 20 65 6e 64 29 20 28 63 6f 6e 73 20 31 20 32 29 0a 0a 62 69 6e s.&as.beg...end).(cons.1.2)..bin
178c0 64 73 20 42 45 47 20 74 6f 20 31 2c 20 45 4e 44 20 74 6f 20 32 20 61 6e 64 20 42 4f 55 4e 44 53 ds.BEG.to.1,.END.to.2.and.BOUNDS
178e0 20 74 6f 20 28 31 20 2e 20 32 29 2e 0a 0a 20 20 28 69 74 65 6d 73 20 26 61 73 20 66 69 72 73 74 .to.(1...2).....(items.&as.first
17900 20 2e 20 72 65 73 74 29 20 28 6c 69 73 74 20 31 20 32 20 33 29 0a 0a 62 69 6e 64 73 20 46 49 52 ...rest).(list.1.2.3)..binds.FIR
17920 53 54 20 74 6f 20 31 2c 20 52 45 53 54 20 74 6f 20 28 32 20 33 29 20 61 6e 64 20 49 54 45 4d 53 ST.to.1,.REST.to.(2.3).and.ITEMS
17940 20 74 6f 20 28 31 20 32 20 33 29 0a 0a 20 20 5b 76 65 63 74 20 26 61 73 20 5f 20 62 20 63 5d 20 .to.(1.2.3)....[vect.&as._.b.c].
17960 5b 31 20 32 20 33 5d 0a 0a 62 69 6e 64 73 20 42 20 74 6f 20 32 2c 20 43 20 74 6f 20 33 20 61 6e [1.2.3]..binds.B.to.2,.C.to.3.an
17980 64 20 56 45 43 54 20 74 6f 20 5b 31 20 32 20 33 5d 20 28 5f 20 61 76 6f 69 64 73 20 62 69 6e 64 d.VECT.to.[1.2.3].(_.avoids.bind
179a0 69 6e 67 20 61 73 20 75 73 75 61 6c 29 2e 0a 0a 20 20 28 70 6c 69 73 74 20 26 61 73 20 26 70 6c ing.as.usual).....(plist.&as.&pl
179c0 69 73 74 20 3a 62 20 62 29 20 28 6c 69 73 74 20 3a 61 20 31 20 3a 62 20 32 20 3a 63 20 33 29 0a ist.:b.b).(list.:a.1.:b.2.:c.3).
179e0 0a 62 69 6e 64 73 20 42 20 74 6f 20 32 20 61 6e 64 20 50 4c 49 53 54 20 74 6f 20 28 3a 61 20 31 .binds.B.to.2.and.PLIST.to.(:a.1
17a00 20 3a 62 20 32 20 3a 63 20 33 29 2e 20 20 53 61 6d 65 20 66 6f 72 20 26 61 6c 69 73 74 20 61 6e .:b.2.:c.3)...Same.for.&alist.an
17a20 64 20 26 68 61 73 68 2e 0a 0a 54 68 69 73 20 69 73 20 65 73 70 65 63 69 61 6c 6c 79 20 75 73 65 d.&hash...This.is.especially.use
17a40 66 75 6c 20 77 68 65 6e 20 77 65 20 77 61 6e 74 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 65 20 ful.when.we.want.to.capture.the.
17a60 72 65 73 75 6c 74 20 6f 66 20 61 0a 63 6f 6d 70 75 74 61 74 69 6f 6e 20 61 6e 64 20 64 65 73 74 result.of.a.computation.and.dest
17a80 72 75 63 74 75 72 65 20 61 74 20 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 20 20 43 6f 6e 73 69 ructure.at.the.same.time...Consi
17aa0 64 65 72 20 74 68 65 0a 66 6f 72 6d 20 28 66 75 6e 63 74 69 6f 6e 2d 72 65 74 75 72 6e 69 6e 67 der.the.form.(function-returning
17ac0 2d 63 6f 6d 70 6c 65 78 2d 73 74 72 75 63 74 75 72 65 29 20 72 65 74 75 72 6e 69 6e 67 20 61 20 -complex-structure).returning.a.
17ae0 6c 69 73 74 20 6f 66 0a 74 77 6f 20 76 65 63 74 6f 72 73 20 77 69 74 68 20 74 77 6f 20 69 74 65 list.of.two.vectors.with.two.ite
17b00 6d 73 20 65 61 63 68 2e 20 20 57 65 20 77 61 6e 74 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 69 ms.each...We.want.to.capture.thi
17b20 73 20 65 6e 74 69 72 65 0a 72 65 73 75 6c 74 20 61 6e 64 20 70 61 73 73 20 69 74 20 74 6f 20 61 s.entire.result.and.pass.it.to.a
17b40 6e 6f 74 68 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 2c 20 62 75 74 20 61 74 20 74 68 65 20 73 nother.computation,.but.at.the.s
17b60 61 6d 65 20 74 69 6d 65 0a 77 65 20 77 61 6e 74 20 74 6f 20 67 65 74 20 74 68 65 20 73 65 63 6f ame.time.we.want.to.get.the.seco
17b80 6e 64 20 69 74 65 6d 20 66 72 6f 6d 20 65 61 63 68 20 76 65 63 74 6f 72 2e 20 20 57 65 20 63 61 nd.item.from.each.vector...We.ca
17ba0 6e 20 61 63 68 69 65 76 65 0a 69 74 20 77 69 74 68 20 70 61 74 74 65 72 6e 0a 0a 20 20 28 72 65 n.achieve.it.with.pattern....(re
17bc0 73 75 6c 74 20 26 61 73 20 5b 5f 20 61 5d 20 5b 5f 20 62 5d 29 20 28 66 75 6e 63 74 69 6f 6e 2d sult.&as.[_.a].[_.b]).(function-
17be0 72 65 74 75 72 6e 69 6e 67 2d 63 6f 6d 70 6c 65 78 2d 73 74 72 75 63 74 75 72 65 29 0a 0a 4e 6f returning-complex-structure)..No
17c00 74 65 3a 20 43 6c 6f 6a 75 72 65 20 70 72 6f 67 72 61 6d 6d 65 72 73 20 6d 61 79 20 6b 6e 6f 77 te:.Clojure.programmers.may.know
17c20 20 74 68 69 73 20 66 65 61 74 75 72 65 20 61 73 20 74 68 65 20 5c 22 3a 61 73 0a 62 69 6e 64 69 .this.feature.as.the.\":as.bindi
17c40 6e 67 5c 22 2e 20 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 69 73 20 74 68 61 74 20 77 65 ng\"...The.difference.is.that.we
17c60 20 70 75 74 20 74 68 65 20 26 61 73 20 61 74 20 74 68 65 20 66 72 6f 6e 74 0a 62 65 63 61 75 73 .put.the.&as.at.the.front.becaus
17c80 65 20 77 65 20 6e 65 65 64 20 74 6f 20 73 75 70 70 6f 72 74 20 69 6d 70 72 6f 70 65 72 20 6c 69 e.we.need.to.support.improper.li
17ca0 73 74 20 62 69 6e 64 69 6e 67 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 st.binding."...(declare.(debug.(
17cc0 5b 26 6f 72 20 28 26 72 65 73 74 20 5b 26 6f 72 20 28 73 65 78 70 20 66 6f 72 6d 29 20 73 65 78 [&or.(&rest.[&or.(sexp.form).sex
17ce0 70 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 p]).........................(vec
17d00 74 6f 72 20 5b 26 72 65 73 74 20 5b 73 65 78 70 20 66 6f 72 6d 5d 5d 29 5d 0a 20 20 20 20 20 20 tor.[&rest.[sexp.form]])].......
17d20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 .............body))............(
17d40 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 69 66 20 28 76 65 63 74 6f 72 70 20 76 61 72 6c 69 73 indent.1))...(if.(vectorp.varlis
17d60 74 29 0a 20 20 20 20 20 20 60 28 6c 65 74 2a 20 2c 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 61 t).......`(let*.,(dash--match.(a
17d80 72 65 66 20 76 61 72 6c 69 73 74 20 30 29 20 28 61 72 65 66 20 76 61 72 6c 69 73 74 20 31 29 29 ref.varlist.0).(aref.varlist.1))
17da0 0a 20 20 20 20 20 20 20 20 20 2c 40 62 6f 64 79 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 76 61 ..........,@body).....(let*.((va
17dc0 72 6c 69 73 74 20 28 64 61 73 68 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6c 65 74 2d 76 61 72 6c 69 rlist.(dash--normalize-let-varli
17de0 73 74 20 76 61 72 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 70 75 74 73 20 st.varlist))............(inputs.
17e00 28 2d 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 28 6c 69 73 74 20 28 6d 61 6b 65 2d 73 79 6d 62 6f (--map-indexed.(list.(make-symbo
17e20 6c 20 28 66 6f 72 6d 61 74 20 22 69 6e 70 75 74 25 64 22 20 69 74 2d 69 6e 64 65 78 29 29 20 28 l.(format."input%d".it-index)).(
17e40 63 61 64 72 20 69 74 29 29 20 76 61 72 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 cadr.it)).varlist))............(
17e60 6e 65 77 2d 76 61 72 6c 69 73 74 20 28 2d 2d 7a 69 70 2d 77 69 74 68 20 28 6c 69 73 74 20 28 63 new-varlist.(--zip-with.(list.(c
17e80 61 72 20 69 74 29 20 28 63 61 72 20 6f 74 68 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ar.it).(car.other)).............
17ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 6c 69 73 74 20 ........................varlist.
17ec0 69 6e 70 75 74 73 29 29 29 0a 20 20 20 20 20 20 60 28 6c 65 74 20 2c 69 6e 70 75 74 73 0a 20 20 inputs))).......`(let.,inputs...
17ee0 20 20 20 20 20 20 20 28 2d 6c 65 74 2a 20 2c 6e 65 77 2d 76 61 72 6c 69 73 74 20 2c 40 62 6f 64 .......(-let*.,new-varlist.,@bod
17f00 79 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 6c 61 6d 62 64 61 20 28 6d 61 74 63 68 y)))))..(defmacro.-lambda.(match
17f20 2d 66 6f 72 6d 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 61 -form.&rest.body)..."Return.a.la
17f40 6d 62 64 61 20 77 68 69 63 68 20 64 65 73 74 72 75 63 74 75 72 65 73 20 69 74 73 20 69 6e 70 75 mbda.which.destructures.its.inpu
17f60 74 20 61 73 20 4d 41 54 43 48 2d 46 4f 52 4d 20 61 6e 64 20 65 78 65 63 75 74 65 73 20 42 4f 44 t.as.MATCH-FORM.and.executes.BOD
17f80 59 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 74 6f 20 65 6e 63 6c 6f 73 Y...Note.that.you.have.to.enclos
17fa0 65 20 74 68 65 20 4d 41 54 43 48 2d 46 4f 52 4d 20 69 6e 20 61 20 70 61 69 72 20 6f 66 20 70 61 e.the.MATCH-FORM.in.a.pair.of.pa
17fc0 72 65 6e 73 2c 0a 73 75 63 68 20 74 68 61 74 3a 0a 0a 20 20 28 2d 6c 61 6d 62 64 61 20 28 78 29 rens,.such.that:....(-lambda.(x)
17fe0 20 62 6f 64 79 29 0a 20 20 28 2d 6c 61 6d 62 64 61 20 28 78 20 79 20 2e 2e 2e 29 20 62 6f 64 79 .body)...(-lambda.(x.y....).body
18000 29 0a 0a 68 61 73 20 74 68 65 20 75 73 75 61 6c 20 73 65 6d 61 6e 74 69 63 73 20 6f 66 20 60 6c )..has.the.usual.semantics.of.`l
18020 61 6d 62 64 61 27 2e 20 20 46 75 72 74 68 65 72 6d 6f 72 65 2c 20 74 68 65 73 65 20 67 65 74 0a ambda'...Furthermore,.these.get.
18040 74 72 61 6e 73 6c 61 74 65 64 20 69 6e 74 6f 20 6e 6f 72 6d 61 6c 20 60 6c 61 6d 62 64 61 27 2c translated.into.normal.`lambda',
18060 20 73 6f 20 74 68 65 72 65 20 69 73 20 6e 6f 20 70 65 72 66 6f 72 6d 61 6e 63 65 0a 70 65 6e 61 .so.there.is.no.performance.pena
18080 6c 74 79 2e 0a 0a 53 65 65 20 60 2d 6c 65 74 27 20 66 6f 72 20 61 20 64 65 73 63 72 69 70 74 69 lty...See.`-let'.for.a.descripti
180a0 6f 6e 20 6f 66 20 74 68 65 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 6d 65 63 68 61 6e 69 73 on.of.the.destructuring.mechanis
180c0 6d 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 6f 63 2d 73 74 72 69 6e 67 20 32 29 20 28 69 m."...(declare.(doc-string.2).(i
180e0 6e 64 65 6e 74 20 64 65 66 75 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 62 75 67 20 28 ndent.defun)............(debug.(
18100 26 64 65 66 69 6e 65 20 73 65 78 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 &define.sexp....................
18120 20 20 20 20 20 20 20 20 5b 26 6f 70 74 69 6f 6e 61 6c 20 73 74 72 69 6e 67 70 5d 0a 20 20 20 20 ........[&optional.stringp].....
18140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 26 6f 70 74 69 6f 6e 61 .......................[&optiona
18160 6c 20 28 22 69 6e 74 65 72 61 63 74 69 76 65 22 20 69 6e 74 65 72 61 63 74 69 76 65 29 5d 0a 20 l.("interactive".interactive)]..
18180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 2d 62 6f ..........................def-bo
181a0 64 79 29 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 6c 69 73 74 70 20 6d 61 74 63 68 2d dy)))...(cond....((nlistp.match-
181c0 66 6f 72 6d 29 0a 20 20 20 20 28 73 69 67 6e 61 6c 20 27 77 72 6f 6e 67 2d 74 79 70 65 2d 61 72 form).....(signal.'wrong-type-ar
181e0 67 75 6d 65 6e 74 20 28 6c 69 73 74 20 23 27 6c 69 73 74 70 20 6d 61 74 63 68 2d 66 6f 72 6d 29 gument.(list.#'listp.match-form)
18200 29 29 0a 20 20 20 3b 3b 20 4e 6f 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2c 20 73 6f 20 6a 75 ))....;;.No.destructuring,.so.ju
18220 73 74 20 72 65 74 75 72 6e 20 72 65 67 75 6c 61 72 20 60 6c 61 6d 62 64 61 27 20 66 6f 72 20 73 st.return.regular.`lambda'.for.s
18240 70 65 65 64 2e 0a 20 20 20 28 28 2d 61 6c 6c 3f 20 23 27 73 79 6d 62 6f 6c 70 20 6d 61 74 63 68 peed.....((-all?.#'symbolp.match
18260 2d 66 6f 72 6d 29 0a 20 20 20 20 60 28 6c 61 6d 62 64 61 20 2c 6d 61 74 63 68 2d 66 6f 72 6d 20 -form).....`(lambda.,match-form.
18280 2c 40 62 6f 64 79 29 29 0a 20 20 20 28 28 6c 65 74 20 28 28 69 6e 70 75 74 73 20 28 2d 2d 6d 61 ,@body))....((let.((inputs.(--ma
182a0 70 2d 69 6e 64 65 78 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 p-indexed....................(li
182c0 73 74 20 69 74 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 28 66 6f 72 6d 61 74 20 22 69 6e 70 75 st.it.(make-symbol.(format."inpu
182e0 74 25 64 22 20 69 74 2d 69 6e 64 65 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t%d".it-index)))................
18300 20 20 20 20 6d 61 74 63 68 2d 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a ....match-form))).......;;.TODO:
18320 20 62 65 63 61 75 73 65 20 69 6e 70 75 74 73 20 74 6f 20 74 68 65 20 60 6c 61 6d 62 64 61 27 20 .because.inputs.to.the.`lambda'.
18340 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 6c 79 20 6f 6e 63 65 2c 0a 20 20 20 20 20 20 3b are.evaluated.only.once,.......;
18360 3b 20 60 2d 6c 65 74 2a 27 20 6e 65 65 64 20 6e 6f 74 20 63 72 65 61 74 65 20 74 68 65 20 65 78 ;.`-let*'.need.not.create.the.ex
18380 74 72 61 20 62 69 6e 64 69 6e 67 73 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 2e 0a 20 20 20 tra.bindings.to.ensure.that.....
183a0 20 20 20 3b 3b 20 57 65 20 73 68 6f 75 6c 64 20 66 69 6e 64 20 61 20 77 61 79 20 74 6f 20 6f 70 ...;;.We.should.find.a.way.to.op
183c0 74 69 6d 69 7a 65 20 74 68 61 74 2e 20 20 4e 6f 74 20 63 72 69 74 69 63 61 6c 20 68 6f 77 65 76 timize.that...Not.critical.howev
183e0 65 72 2e 0a 20 20 20 20 20 20 60 28 6c 61 6d 62 64 61 20 2c 28 6d 61 70 63 61 72 20 23 27 63 61 er........`(lambda.,(mapcar.#'ca
18400 64 72 20 69 6e 70 75 74 73 29 0a 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 2a 20 2c 69 6e 70 75 dr.inputs)..........(-let*.,inpu
18420 74 73 20 2c 40 62 6f 64 79 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 73 65 74 71 ts.,@body))))))..(defmacro.-setq
18440 20 28 26 72 65 73 74 20 66 6f 72 6d 73 29 0a 20 20 22 42 69 6e 64 20 65 61 63 68 20 4d 41 54 43 .(&rest.forms)..."Bind.each.MATC
18460 48 2d 46 4f 52 4d 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 69 74 73 20 56 41 4c 2e 0a H-FORM.to.the.value.of.its.VAL..
18480 0a 4d 41 54 43 48 2d 46 4f 52 4d 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 69 73 20 64 6f 6e .MATCH-FORM.destructuring.is.don
184a0 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 72 75 6c 65 73 20 6f 66 20 60 2d 6c 65 e.according.to.the.rules.of.`-le
184c0 74 27 2e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 62 69 t'...This.macro.allows.you.to.bi
184e0 6e 64 20 6d 75 6c 74 69 70 6c 65 20 76 61 72 69 61 62 6c 65 73 20 62 79 20 64 65 73 74 72 75 63 nd.multiple.variables.by.destruc
18500 74 75 72 69 6e 67 0a 74 68 65 20 76 61 6c 75 65 2c 20 73 6f 20 66 6f 72 20 65 78 61 6d 70 6c 65 turing.the.value,.so.for.example
18520 3a 0a 0a 20 20 28 2d 73 65 74 71 20 28 61 20 62 29 20 78 0a 20 20 20 20 20 20 20 20 20 28 26 70 :....(-setq.(a.b).x..........(&p
18540 6c 69 73 74 20 3a 63 20 63 29 20 70 6c 69 73 74 29 0a 0a 65 78 70 61 6e 64 73 20 72 6f 75 67 68 list.:c.c).plist)..expands.rough
18560 6c 79 20 73 70 65 61 6b 69 6e 67 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 ly.speaking.to.the.following.cod
18580 65 0a 0a 20 20 28 73 65 74 71 20 61 20 28 63 61 72 20 78 29 0a 20 20 20 20 20 20 20 20 62 20 28 e....(setq.a.(car.x).........b.(
185a0 63 61 64 72 20 78 29 0a 20 20 20 20 20 20 20 20 63 20 28 70 6c 69 73 74 2d 67 65 74 20 70 6c 69 cadr.x).........c.(plist-get.pli
185c0 73 74 20 3a 63 29 29 0a 0a 43 61 72 65 20 69 73 20 74 61 6b 65 6e 20 74 6f 20 6f 6e 6c 79 20 65 st.:c))..Care.is.taken.to.only.e
185e0 76 61 6c 75 61 74 65 20 65 61 63 68 20 56 41 4c 20 6f 6e 63 65 20 73 6f 20 74 68 61 74 20 69 6e valuate.each.VAL.once.so.that.in
18600 20 63 61 73 65 20 6f 66 0a 6d 75 6c 74 69 70 6c 65 20 61 73 73 69 67 6e 6d 65 6e 74 73 20 69 74 .case.of.multiple.assignments.it
18620 20 64 6f 65 73 20 6e 6f 74 20 63 61 75 73 65 20 75 6e 65 78 70 65 63 74 65 64 20 73 69 64 65 20 .does.not.cause.unexpected.side.
18640 65 66 66 65 63 74 73 2e 0a 0a 5c 28 66 6e 20 5b 4d 41 54 43 48 2d 46 4f 52 4d 20 56 41 4c 5d 2e effects...\(fn.[MATCH-FORM.VAL].
18660 2e 2e 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 26 72 65 73 74 20 73 65 ..)"...(declare.(debug.(&rest.se
18680 78 70 20 66 6f 72 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 31 29 29 xp.form))............(indent.1))
186a0 0a 20 20 28 77 68 65 6e 20 28 3d 20 28 6d 6f 64 20 28 6c 65 6e 67 74 68 20 66 6f 72 6d 73 29 20 ...(when.(=.(mod.(length.forms).
186c0 32 29 20 31 29 0a 20 20 20 20 28 73 69 67 6e 61 6c 20 27 77 72 6f 6e 67 2d 6e 75 6d 62 65 72 2d 2).1).....(signal.'wrong-number-
186e0 6f 66 2d 61 72 67 75 6d 65 6e 74 73 20 28 6c 69 73 74 20 27 2d 73 65 74 71 20 28 31 2b 20 28 6c of-arguments.(list.'-setq.(1+.(l
18700 65 6e 67 74 68 20 66 6f 72 6d 73 29 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 6f 72 6d 73 ength.forms)))))...(let*.((forms
18720 2d 61 6e 64 2d 73 6f 75 72 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 72 73 74 20 -and-sources...........;;.First.
18740 67 65 74 20 61 6c 6c 20 74 68 65 20 6e 65 63 65 73 73 61 72 79 20 6d 61 70 70 69 6e 67 73 20 77 get.all.the.necessary.mappings.w
18760 69 74 68 20 61 6c 6c 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 74 65 72 6d 65 ith.all.the...........;;.interme
18780 64 69 61 74 65 20 62 69 6e 64 69 6e 67 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 diate.bindings............(-map.
187a0 28 6c 61 6d 62 64 61 20 28 78 29 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 63 61 72 20 78 29 (lambda.(x).(dash--match.(car.x)
187c0 20 28 63 61 64 72 20 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 .(cadr.x))).................(-pa
187e0 72 74 69 74 69 6f 6e 20 32 20 66 6f 72 6d 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 54 rtition.2.forms)))..........;;.T
18800 6f 20 70 72 65 73 65 72 76 65 20 74 68 65 20 6c 6f 67 69 63 20 6f 66 20 64 79 6e 61 6d 69 63 20 o.preserve.the.logic.of.dynamic.
18820 73 63 6f 70 69 6e 67 20 77 65 20 6d 75 73 74 20 65 6e 73 75 72 65 0a 20 20 20 20 20 20 20 20 20 scoping.we.must.ensure..........
18840 3b 3b 20 74 68 61 74 20 77 65 20 60 73 65 74 71 27 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 ;;.that.we.`setq'.the.variables.
18860 6f 75 74 73 69 64 65 20 6f 66 20 74 68 65 20 60 6c 65 74 2a 27 20 66 6f 72 6d 0a 20 20 20 20 20 outside.of.the.`let*'.form......
18880 20 20 20 20 3b 3b 20 77 68 69 63 68 20 68 6f 6c 64 73 20 74 68 65 20 64 65 73 74 72 75 63 74 75 ....;;.which.holds.the.destructu
188a0 72 65 64 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 2e 20 20 46 6f 72 0a 20 20 red.intermediate.values...For...
188c0 20 20 20 20 20 20 20 3b 3b 20 74 68 69 73 20 77 65 20 67 65 6e 65 72 61 74 65 20 66 6f 72 20 65 .......;;.this.we.generate.for.e
188e0 61 63 68 20 76 61 72 69 61 62 6c 65 20 61 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 77 68 69 63 68 ach.variable.a.placeholder.which
18900 20 69 73 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 62 6f 75 6e 64 20 74 6f 20 28 6c 65 78 69 63 61 .is..........;;.bound.to.(lexica
18920 6c 6c 79 29 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 64 65 73 74 72 75 63 74 75 lly).the.result.of.the.destructu
18940 72 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 6e 20 6f 75 74 73 69 64 65 20 6f ring...........;;.Then.outside.o
18960 66 20 74 68 65 20 68 65 6c 70 65 72 20 60 6c 65 74 2a 27 20 66 6f 72 6d 20 77 65 20 62 69 6e 64 f.the.helper.`let*'.form.we.bind
18980 20 61 6c 6c 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 69 67 69 6e 61 6c 20 76 61 .all.the..........;;.original.va
189a0 72 69 61 62 6c 65 73 20 74 6f 20 74 68 65 69 72 20 72 65 73 70 65 63 74 69 76 65 20 70 6c 61 63 riables.to.their.respective.plac
189c0 65 68 6f 6c 64 65 72 73 2e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 54 68 65 72 eholders...........;;.TODO:.Ther
189e0 65 20 69 73 20 61 20 6c 6f 74 20 6f 66 20 72 6f 6f 6d 20 66 6f 72 20 70 6f 73 73 69 62 6c 65 20 e.is.a.lot.of.room.for.possible.
18a00 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 73 74 optimization,..........;;.for.st
18a20 61 72 74 20 70 6c 61 79 69 6e 67 20 77 69 74 68 20 60 73 70 65 63 69 61 6c 2d 76 61 72 69 61 62 art.playing.with.`special-variab
18a40 6c 65 2d 70 27 20 74 6f 20 65 6c 69 6d 69 6e 61 74 65 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 75 le-p'.to.eliminate..........;;.u
18a60 6e 6e 65 63 65 73 73 61 72 79 20 72 65 2d 62 69 6e 64 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 nnecessary.re-binding...........
18a80 28 76 61 72 69 61 62 6c 65 73 2d 74 6f 2d 70 6c 61 63 65 68 6f 6c 64 65 72 73 0a 20 20 20 20 20 (variables-to-placeholders......
18aa0 20 20 20 20 20 28 2d 6d 61 70 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 .....(-mapcat............(lambda
18ac0 20 28 62 69 6e 64 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 0a 20 .(bindings)..............(-map..
18ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 69 6e 64 69 6e 67 29 0a 20 .............(lambda.(binding)..
18b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 61 72 20 28 63 61 72 20 62 ...............(let.((var.(car.b
18b20 69 6e 64 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 inding)))...................(lis
18b40 74 20 76 61 72 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 28 63 6f 6e 63 61 74 20 22 2d 2d 64 61 t.var.(make-symbol.(concat."--da
18b60 73 68 2d 62 69 6e 64 69 6e 67 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 76 61 72 29 20 22 sh-binding-".(symbol-name.var)."
18b80 2d 2d 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 6c 74 65 72 --")))))...............(--filter
18ba0 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 2d 2d 22 20 28 73 79 6d .(not.(string-prefix-p."--".(sym
18bc0 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 69 74 29 29 29 29 20 62 69 6e 64 69 6e 67 73 29 29 29 bol-name.(car.it)))).bindings)))
18be0 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d 73 2d 61 6e 64 2d 73 6f 75 72 63 65 73 29 29 29 ............forms-and-sources)))
18c00 0a 20 20 20 20 60 28 6c 65 74 20 2c 28 2d 6d 61 70 20 27 63 61 64 72 20 76 61 72 69 61 62 6c 65 .....`(let.,(-map.'cadr.variable
18c20 73 2d 74 6f 2d 70 6c 61 63 65 68 6f 6c 64 65 72 73 29 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 s-to-placeholders)........(let*.
18c40 2c 28 2d 66 6c 61 74 74 65 6e 2d 6e 20 31 20 66 6f 72 6d 73 2d 61 6e 64 2d 73 6f 75 72 63 65 73 ,(-flatten-n.1.forms-and-sources
18c60 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 40 28 2d 66 6c 61 74 74 65 6e 20 28 2d 6d )..........(setq.,@(-flatten.(-m
18c80 61 70 20 27 72 65 76 65 72 73 65 20 76 61 72 69 61 62 6c 65 73 2d 74 6f 2d 70 6c 61 63 65 68 6f ap.'reverse.variables-to-placeho
18ca0 6c 64 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 28 73 65 74 71 20 2c 40 28 2d 66 6c 61 74 74 lders))))........(setq.,@(-flatt
18cc0 65 6e 20 76 61 72 69 61 62 6c 65 73 2d 74 6f 2d 70 6c 61 63 65 68 6f 6c 64 65 72 73 29 29 29 29 en.variables-to-placeholders))))
18ce0 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 69 66 2d 6c 65 74 2a 20 28 76 61 72 73 2d 76 61 6c 73 )..(defmacro.-if-let*.(vars-vals
18d00 20 74 68 65 6e 20 26 72 65 73 74 20 65 6c 73 65 29 0a 20 20 22 49 66 20 61 6c 6c 20 56 41 4c 53 .then.&rest.else)..."If.all.VALS
18d20 20 65 76 61 6c 75 61 74 65 20 74 6f 20 74 72 75 65 2c 20 62 69 6e 64 20 74 68 65 6d 20 74 6f 20 .evaluate.to.true,.bind.them.to.
18d40 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 56 41 52 53 20 61 6e 64 20 64 6f 20 their.corresponding.VARS.and.do.
18d60 54 48 45 4e 2c 20 6f 74 68 65 72 77 69 73 65 20 64 6f 20 45 4c 53 45 2e 20 56 41 52 53 2d 56 41 THEN,.otherwise.do.ELSE..VARS-VA
18d80 4c 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 0a 6f 66 20 28 56 41 52 20 56 41 4c 29 LS.should.be.a.list.of.(VAR.VAL)
18da0 20 70 61 69 72 73 2e 0a 0a 4e 6f 74 65 3a 20 62 69 6e 64 69 6e 67 20 69 73 20 64 6f 6e 65 20 61 .pairs...Note:.binding.is.done.a
18dc0 63 63 6f 72 64 69 6e 67 20 74 6f 20 60 2d 6c 65 74 2a 27 2e 20 20 56 41 4c 53 20 61 72 65 20 65 ccording.to.`-let*'...VALS.are.e
18de0 76 61 6c 75 61 74 65 64 0a 73 65 71 75 65 6e 74 69 61 6c 6c 79 2c 20 61 6e 64 20 65 76 61 6c 75 valuated.sequentially,.and.evalu
18e00 61 74 69 6f 6e 20 73 74 6f 70 73 20 61 66 74 65 72 20 74 68 65 20 66 69 72 73 74 20 6e 69 6c 20 ation.stops.after.the.first.nil.
18e20 56 41 4c 20 69 73 0a 65 6e 63 6f 75 6e 74 65 72 65 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 VAL.is.encountered."...(declare.
18e40 28 64 65 62 75 67 20 28 28 26 72 65 73 74 20 28 73 65 78 70 20 66 6f 72 6d 29 29 20 66 6f 72 6d (debug.((&rest.(sexp.form)).form
18e60 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20 .body))............(indent.2))..
18e80 20 28 2d 3e 3e 20 76 61 72 73 2d 76 61 6c 73 0a 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 63 61 74 .(->>.vars-vals........(--mapcat
18ea0 20 28 64 61 73 68 2d 2d 6d 61 74 63 68 20 28 63 61 72 20 69 74 29 20 28 63 61 64 72 20 69 74 29 .(dash--match.(car.it).(cadr.it)
18ec0 29 29 0a 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 0a 20 20 20 20 20 ))........(--reduce-r-from......
18ee0 20 20 20 28 6c 65 74 20 28 28 76 61 72 20 28 63 61 72 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 ...(let.((var.(car.it)).........
18f00 20 20 20 20 20 20 28 76 61 6c 20 28 63 61 64 72 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 ......(val.(cadr.it)))..........
18f20 20 60 28 6c 65 74 20 28 28 2c 76 61 72 20 2c 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .`(let.((,var.,val))............
18f40 20 20 28 69 66 20 2c 76 61 72 20 2c 61 63 63 20 2c 40 65 6c 73 65 29 29 29 0a 20 20 20 20 20 20 ..(if.,var.,acc.,@else))).......
18f60 20 20 74 68 65 6e 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 69 66 2d 6c 65 74 20 28 76 61 ..then)))..(defmacro.-if-let.(va
18f80 72 2d 76 61 6c 20 74 68 65 6e 20 26 72 65 73 74 20 65 6c 73 65 29 0a 20 20 22 49 66 20 56 41 4c r-val.then.&rest.else)..."If.VAL
18fa0 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2c 20 62 69 6e 64 20 69 74 20 74 .evaluates.to.non-nil,.bind.it.t
18fc0 6f 20 56 41 52 20 61 6e 64 20 64 6f 20 54 48 45 4e 2c 0a 6f 74 68 65 72 77 69 73 65 20 64 6f 20 o.VAR.and.do.THEN,.otherwise.do.
18fe0 45 4c 53 45 2e 0a 0a 4e 6f 74 65 3a 20 62 69 6e 64 69 6e 67 20 69 73 20 64 6f 6e 65 20 61 63 63 ELSE...Note:.binding.is.done.acc
19000 6f 72 64 69 6e 67 20 74 6f 20 60 2d 6c 65 74 27 2e 0a 0a 5c 28 66 6e 20 28 56 41 52 20 56 41 4c ording.to.`-let'...\(fn.(VAR.VAL
19020 29 20 54 48 45 4e 20 26 72 65 73 74 20 45 4c 53 45 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 ).THEN.&rest.ELSE)"...(declare.(
19040 64 65 62 75 67 20 28 28 73 65 78 70 20 66 6f 72 6d 29 20 66 6f 72 6d 20 62 6f 64 79 29 29 0a 20 debug.((sexp.form).form.body))..
19060 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20 20 60 28 2d 69 66 2d 6c 65 ..........(indent.2))...`(-if-le
19080 74 2a 20 28 2c 76 61 72 2d 76 61 6c 29 20 2c 74 68 65 6e 20 2c 40 65 6c 73 65 29 29 0a 0a 28 64 t*.(,var-val).,then.,@else))..(d
190a0 65 66 6d 61 63 72 6f 20 2d 2d 69 66 2d 6c 65 74 20 28 76 61 6c 20 74 68 65 6e 20 26 72 65 73 74 efmacro.--if-let.(val.then.&rest
190c0 20 65 6c 73 65 29 0a 20 20 22 49 66 20 56 41 4c 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 6f .else)..."If.VAL.evaluates.to.no
190e0 6e 2d 6e 69 6c 2c 20 62 69 6e 64 20 69 74 20 74 6f 20 73 79 6d 62 6f 6c 20 60 69 74 27 20 61 6e n-nil,.bind.it.to.symbol.`it'.an
19100 64 20 64 6f 20 54 48 45 4e 2c 0a 6f 74 68 65 72 77 69 73 65 20 64 6f 20 45 4c 53 45 2e 22 0a 20 d.do.THEN,.otherwise.do.ELSE."..
19120 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 66 6f 72 6d 20 62 6f 64 79 .(declare.(debug.(form.form.body
19140 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20 20 60 28 2d 69 ))............(indent.2))...`(-i
19160 66 2d 6c 65 74 20 28 69 74 20 2c 76 61 6c 29 20 2c 74 68 65 6e 20 2c 40 65 6c 73 65 29 29 0a 0a f-let.(it.,val).,then.,@else))..
19180 28 64 65 66 6d 61 63 72 6f 20 2d 77 68 65 6e 2d 6c 65 74 2a 20 28 76 61 72 73 2d 76 61 6c 73 20 (defmacro.-when-let*.(vars-vals.
191a0 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 49 66 20 61 6c 6c 20 56 41 4c 53 20 65 76 61 6c 75 &rest.body)..."If.all.VALS.evalu
191c0 61 74 65 20 74 6f 20 74 72 75 65 2c 20 62 69 6e 64 20 74 68 65 6d 20 74 6f 20 74 68 65 69 72 20 ate.to.true,.bind.them.to.their.
191e0 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 56 41 52 53 20 61 6e 64 20 65 78 65 63 75 74 65 20 62 corresponding.VARS.and.execute.b
19200 6f 64 79 2e 20 56 41 52 53 2d 56 41 4c 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 ody..VARS-VALS.should.be.a.list.
19220 6f 66 20 28 56 41 52 20 56 41 4c 29 0a 70 61 69 72 73 2e 0a 0a 4e 6f 74 65 3a 20 62 69 6e 64 69 of.(VAR.VAL).pairs...Note:.bindi
19240 6e 67 20 69 73 20 64 6f 6e 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 60 2d 6c 65 74 2a 27 2e ng.is.done.according.to.`-let*'.
19260 20 20 56 41 4c 53 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 0a 73 65 71 75 65 6e 74 69 61 6c 6c ..VALS.are.evaluated.sequentiall
19280 79 2c 20 61 6e 64 20 65 76 61 6c 75 61 74 69 6f 6e 20 73 74 6f 70 73 20 61 66 74 65 72 20 74 68 y,.and.evaluation.stops.after.th
192a0 65 20 66 69 72 73 74 20 6e 69 6c 20 56 41 4c 20 69 73 0a 65 6e 63 6f 75 6e 74 65 72 65 64 2e 22 e.first.nil.VAL.is.encountered."
192c0 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 28 26 72 65 73 74 20 28 73 65 78 70 ...(declare.(debug.((&rest.(sexp
192e0 20 66 6f 72 6d 29 29 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e .form)).body))............(inden
19300 74 20 31 29 29 0a 20 20 60 28 2d 69 66 2d 6c 65 74 2a 20 2c 76 61 72 73 2d 76 61 6c 73 20 28 70 t.1))...`(-if-let*.,vars-vals.(p
19320 72 6f 67 6e 20 2c 40 62 6f 64 79 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 77 68 65 6e 2d rogn.,@body)))..(defmacro.-when-
19340 6c 65 74 20 28 76 61 72 2d 76 61 6c 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 49 66 20 56 let.(var-val.&rest.body)..."If.V
19360 41 4c 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2c 20 62 69 6e 64 20 69 74 AL.evaluates.to.non-nil,.bind.it
19380 20 74 6f 20 56 41 52 20 61 6e 64 20 65 78 65 63 75 74 65 20 62 6f 64 79 2e 0a 0a 4e 6f 74 65 3a .to.VAR.and.execute.body...Note:
193a0 20 62 69 6e 64 69 6e 67 20 69 73 20 64 6f 6e 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 60 2d .binding.is.done.according.to.`-
193c0 6c 65 74 27 2e 0a 0a 5c 28 66 6e 20 28 56 41 52 20 56 41 4c 29 20 26 72 65 73 74 20 42 4f 44 59 let'...\(fn.(VAR.VAL).&rest.BODY
193e0 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 28 73 65 78 70 20 66 6f 72 6d )"...(declare.(debug.((sexp.form
19400 29 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 20 31 29 29 0a ).body))............(indent.1)).
19420 20 20 60 28 2d 69 66 2d 6c 65 74 20 2c 76 61 72 2d 76 61 6c 20 28 70 72 6f 67 6e 20 2c 40 62 6f ..`(-if-let.,var-val.(progn.,@bo
19440 64 79 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 77 68 65 6e 2d 6c 65 74 20 28 76 61 6c dy)))..(defmacro.--when-let.(val
19460 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 49 66 20 56 41 4c 20 65 76 61 6c 75 61 74 65 73 .&rest.body)..."If.VAL.evaluates
19480 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 2c 20 62 69 6e 64 20 69 74 20 74 6f 20 73 79 6d 62 6f 6c 20 60 .to.non-nil,.bind.it.to.symbol.`
194a0 69 74 27 20 61 6e 64 0a 65 78 65 63 75 74 65 20 62 6f 64 79 2e 22 0a 20 20 28 64 65 63 6c 61 72 it'.and.execute.body."...(declar
194c0 65 20 28 64 65 62 75 67 20 28 66 6f 72 6d 20 62 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 e.(debug.(form.body))...........
194e0 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 28 2d 2d 69 66 2d 6c 65 74 20 2c 76 61 6c 20 28 .(indent.1))...`(--if-let.,val.(
19500 70 72 6f 67 6e 20 2c 40 62 6f 64 79 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 47 65 74 20 72 69 progn.,@body)))..;;.TODO:.Get.ri
19520 64 20 6f 66 20 74 68 69 73 20 64 79 6e 61 6d 69 63 20 76 61 72 69 61 62 6c 65 2c 20 70 61 73 73 d.of.this.dynamic.variable,.pass
19540 69 6e 67 20 69 74 20 61 73 20 61 6e 20 61 72 67 75 6d 65 6e 74 0a 3b 3b 20 69 6e 73 74 65 61 64 ing.it.as.an.argument.;;.instead
19560 3f 0a 28 64 65 66 76 61 72 20 2d 63 6f 6d 70 61 72 65 2d 66 6e 20 6e 69 6c 0a 20 20 22 54 65 73 ?.(defvar.-compare-fn.nil..."Tes
19580 74 73 20 66 6f 72 20 65 71 75 61 6c 69 74 79 20 75 73 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f ts.for.equality.use.this.functio
195a0 6e 2c 20 6f 72 20 60 65 71 75 61 6c 27 20 69 66 20 74 68 69 73 20 69 73 20 6e 69 6c 2e 0a 0a 41 n,.or.`equal'.if.this.is.nil...A
195c0 73 20 61 20 64 79 6e 61 6d 69 63 20 76 61 72 69 61 62 6c 65 2c 20 74 68 69 73 20 73 68 6f 75 6c s.a.dynamic.variable,.this.shoul
195e0 64 20 62 65 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 62 6f 75 6e 64 20 61 72 6f 75 6e 64 0a 74 68 d.be.temporarily.bound.around.th
19600 65 20 72 65 6c 65 76 61 6e 74 20 6f 70 65 72 61 74 69 6f 6e 2c 20 72 61 74 68 65 72 20 74 68 61 e.relevant.operation,.rather.tha
19620 6e 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 6d 6f 64 69 66 69 65 64 2e 20 20 46 6f 72 0a 65 78 61 n.permanently.modified...For.exa
19640 6d 70 6c 65 3a 0a 0a 20 20 28 6c 65 74 20 28 28 2d 63 6f 6d 70 61 72 65 2d 66 6e 20 23 5c 5c 3d mple:....(let.((-compare-fn.#\\=
19660 27 3d 29 29 0a 20 20 20 20 28 2d 75 6e 69 6f 6e 20 5c 5c 3d 27 28 31 20 32 20 33 29 20 5c 5c 3d '=)).....(-union.\\='(1.2.3).\\=
19680 27 28 32 20 33 20 34 29 29 29 22 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 65 6d 62 65 '(2.3.4)))")..(defun.dash--membe
196a0 72 2d 66 6e 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 66 6c 61 76 6f 72 20 6f 66 20 r-fn.()..."Return.the.flavor.of.
196c0 60 6d 65 6d 62 65 72 27 20 74 68 61 74 20 67 6f 65 73 20 62 65 73 74 20 77 69 74 68 20 60 2d 63 `member'.that.goes.best.with.`-c
196e0 6f 6d 70 61 72 65 2d 66 6e 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 ompare-fn'."...(declare.(side-ef
19700 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 6c 65 74 20 28 28 fect-free.error-free))...(let.((
19720 63 6d 70 20 2d 63 6f 6d 70 61 72 65 2d 66 6e 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6d 65 cmp.-compare-fn)).....(cond.((me
19740 6d 71 20 63 6d 70 20 27 28 6e 69 6c 20 65 71 75 61 6c 29 29 20 23 27 6d 65 6d 62 65 72 29 0a 20 mq.cmp.'(nil.equal)).#'member)..
19760 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 6d 70 20 23 27 65 71 29 20 23 27 6d 65 6d 71 29 0a .........((eq.cmp.#'eq).#'memq).
19780 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 6d 70 20 23 27 65 71 6c 29 20 23 27 6d 65 6d 71 ..........((eq.cmp.#'eql).#'memq
197a0 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 61 6d 62 64 61 20 28 65 6c 74 20 6c 69 73 74 29 l)...........((lambda.(elt.list)
197c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6c 69 73 74 20 28 ..............(while.(and.list.(
197e0 6e 6f 74 20 28 66 75 6e 63 61 6c 6c 20 63 6d 70 20 65 6c 74 20 28 63 61 72 20 6c 69 73 74 29 29 not.(funcall.cmp.elt.(car.list))
19800 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 70 20 6c 69 73 74 29 29 0a 20 20 ))................(pop.list))...
19820 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 ...........list)))))..(defun.das
19840 68 2d 2d 61 73 73 6f 63 2d 66 6e 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 66 6c 61 h--assoc-fn.()..."Return.the.fla
19860 76 6f 72 20 6f 66 20 60 61 73 73 6f 63 27 20 74 68 61 74 20 67 6f 65 73 20 62 65 73 74 20 77 69 vor.of.`assoc'.that.goes.best.wi
19880 74 68 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 th.`-compare-fn'."...(declare.(s
198a0 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 ide-effect-free.error-free))...(
198c0 6c 65 74 20 28 28 63 6d 70 20 2d 63 6f 6d 70 61 72 65 2d 66 6e 29 29 0a 20 20 20 20 28 63 6f 6e let.((cmp.-compare-fn)).....(con
198e0 64 20 28 28 6d 65 6d 71 20 63 6d 70 20 27 28 6e 69 6c 20 65 71 75 61 6c 29 29 20 23 27 61 73 73 d.((memq.cmp.'(nil.equal)).#'ass
19900 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 6d 70 20 23 27 65 71 29 20 23 27 61 oc)...........((eq.cmp.#'eq).#'a
19920 73 73 71 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 69 6e 63 65 20 45 6d 61 63 73 20 32 36 ssq)...........;;.Since.Emacs.26
19940 2c 20 60 61 73 73 6f 63 27 20 61 63 63 65 70 74 73 20 61 20 63 75 73 74 6f 6d 20 60 74 65 73 74 ,.`assoc'.accepts.a.custom.`test
19960 66 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 56 65 72 73 69 6f 6e 20 74 65 73 74 69 6e fn'............;;.Version.testin
19980 67 20 77 6f 75 6c 64 20 62 65 20 73 69 6d 70 6c 65 72 20 68 65 72 65 2c 20 62 75 74 20 66 65 61 g.would.be.simpler.here,.but.fea
199a0 74 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 65 73 74 69 6e 67 20 67 65 74 73 20 6d ture...........;;.testing.gets.m
199c0 6f 72 65 20 62 72 6f 77 6e 69 65 20 70 6f 69 6e 74 73 2c 20 49 20 67 75 65 73 73 2e 0a 20 20 20 ore.brownie.points,.I.guess.....
199e0 20 20 20 20 20 20 20 28 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 .......((condition-case.nil.....
19a00 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 20 28 61 73 ...........(with-no-warnings.(as
19a20 73 6f 63 20 6e 69 6c 20 28 29 20 23 27 65 71 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 soc.nil.().#'eql))..............
19a40 28 77 72 6f 6e 67 2d 6e 75 6d 62 65 72 2d 6f 66 2d 61 72 67 75 6d 65 6e 74 73 20 74 29 29 0a 20 (wrong-number-of-arguments.t))..
19a60 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 61 6c 69 73 74 29 0a 20 20 ..........(lambda.(key.alist)...
19a80 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 72 73 74 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 ...........(--first.(and.(consp.
19aa0 69 74 29 20 28 66 75 6e 63 61 6c 6c 20 63 6d 70 20 28 63 61 72 20 69 74 29 20 6b 65 79 29 29 20 it).(funcall.cmp.(car.it).key)).
19ac0 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 77 69 74 68 2d 6e 6f 2d 77 61 72 alist)))...........((with-no-war
19ae0 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 nings..............(lambda.(key.
19b00 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20 6b 65 79 alist)................(assoc.key
19b20 20 61 6c 69 73 74 20 63 6d 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d .alist.cmp)))))))..(defun.dash--
19b40 68 61 73 68 2d 74 65 73 74 2d 66 6e 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 68 61 hash-test-fn.()..."Return.the.ha
19b60 73 68 20 74 61 62 6c 65 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 63 6f 72 72 65 73 70 6f 6e sh.table.test.function.correspon
19b80 64 69 6e 67 20 74 6f 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 2e 0a 52 65 74 75 72 6e 20 6e 69 ding.to.`-compare-fn'..Return.ni
19ba0 6c 20 69 66 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 20 69 73 20 6e 6f 74 20 61 20 6b 6e 6f 77 l.if.`-compare-fn'.is.not.a.know
19bc0 6e 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 n.test.function."...(declare.(si
19be0 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 3b 3b de-effect-free.error-free))...;;
19c00 20 49 6e 20 74 68 65 6f 72 79 20 74 68 69 73 20 63 6f 75 6c 64 20 61 6c 73 6f 20 72 65 63 6f 67 .In.theory.this.could.also.recog
19c20 6e 69 7a 65 20 76 61 6c 75 65 73 20 74 68 61 74 20 61 72 65 20 63 75 73 74 6f 6d 0a 20 20 3b 3b nize.values.that.are.custom...;;
19c40 20 60 68 61 73 68 2d 74 61 62 6c 65 2d 74 65 73 74 27 73 2c 20 62 75 74 20 74 6f 6f 20 6f 66 74 .`hash-table-test's,.but.too.oft
19c60 65 6e 20 74 68 65 20 3a 74 65 73 74 20 6e 61 6d 65 20 69 73 20 64 69 66 66 65 72 65 6e 74 0a 20 en.the.:test.name.is.different..
19c80 20 3b 3b 20 66 72 6f 6d 20 74 68 65 20 65 71 75 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 2c 20 .;;.from.the.equality.function,.
19ca0 73 6f 20 69 74 20 64 6f 65 73 6e 27 74 20 73 65 65 6d 20 77 6f 72 74 68 77 68 69 6c 65 2e 0a 20 so.it.doesn't.seem.worthwhile...
19cc0 20 28 63 61 72 20 28 6d 65 6d 71 20 28 6f 72 20 2d 63 6f 6d 70 61 72 65 2d 66 6e 20 23 27 65 71 .(car.(memq.(or.-compare-fn.#'eq
19ce0 75 61 6c 29 20 27 28 65 71 75 61 6c 20 65 71 20 65 71 6c 29 29 29 29 0a 0a 28 64 65 66 76 61 72 ual).'(equal.eq.eql))))..(defvar
19d00 20 64 61 73 68 2d 2d 73 68 6f 72 74 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 20 33 32 0a 20 20 22 4d .dash--short-list-length.32..."M
19d20 61 78 69 6d 75 6d 20 6c 69 73 74 20 6c 65 6e 67 74 68 20 63 6f 6e 73 69 64 65 72 65 64 20 73 68 aximum.list.length.considered.sh
19d40 6f 72 74 2c 20 66 6f 72 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 0a 46 6f 72 20 65 78 61 6d ort,.for.optimizations..For.exam
19d60 70 6c 65 2c 20 74 68 65 20 73 70 65 65 64 75 70 20 61 66 66 6f 72 64 65 64 20 62 79 20 68 61 73 ple,.the.speedup.afforded.by.has
19d80 68 20 74 61 62 6c 65 20 6c 6f 6f 6b 75 70 20 6d 61 79 20 73 74 61 72 74 0a 74 6f 20 6f 75 74 77 h.table.lookup.may.start.to.outw
19da0 65 69 67 68 20 69 74 73 20 72 75 6e 74 69 6d 65 20 61 6e 64 20 6d 65 6d 6f 72 79 20 6f 76 65 72 eigh.its.runtime.and.memory.over
19dc0 68 65 61 64 20 66 6f 72 20 70 72 6f 62 6c 65 6d 20 73 69 7a 65 73 0a 67 72 65 61 74 65 72 20 74 head.for.problem.sizes.greater.t
19de0 68 61 6e 20 74 68 69 73 20 76 61 6c 75 65 2e 20 20 53 65 65 20 61 6c 73 6f 20 74 68 65 20 64 69 han.this.value...See.also.the.di
19e00 73 63 75 73 73 69 6f 6e 20 69 6e 20 50 52 20 23 33 30 35 2e 22 29 0a 0a 28 64 65 66 75 6e 20 2d scussion.in.PR.#305.")..(defun.-
19e20 64 69 73 74 69 6e 63 74 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 70 79 distinct.(list)..."Return.a.copy
19e40 20 6f 66 20 4c 49 53 54 20 77 69 74 68 20 61 6c 6c 20 64 75 70 6c 69 63 61 74 65 20 65 6c 65 6d .of.LIST.with.all.duplicate.elem
19e60 65 6e 74 73 20 72 65 6d 6f 76 65 64 2e 0a 0a 54 68 65 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 ents.removed...The.test.for.equa
19e80 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 60 65 71 75 61 6c 27 2c 20 6f 72 20 77 69 lity.is.done.with.`equal',.or.wi
19ea0 74 68 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 0a 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d th.`-compare-fn'.if.that.is.non-
19ec0 6e 69 6c 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 75 6e 69 71 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 nil...Alias:.`-uniq'."...(declar
19ee0 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 e.(important-return-value.t))...
19f00 28 6c 65 74 20 28 74 65 73 74 20 6c 65 6e 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c (let.(test.len).....(cond.((null
19f20 20 6c 69 73 74 29 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 61 20 68 61 .list).())...........;;.Use.a.ha
19f40 73 68 20 74 61 62 6c 65 20 69 66 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 20 69 73 20 61 20 6b sh.table.if.`-compare-fn'.is.a.k
19f60 6e 6f 77 6e 20 68 61 73 68 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 65 73 nown.hash.table...........;;.tes
19f80 74 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 6c 69 73 74 20 69 73 20 6c 6f 6e 67 20 t.function.and.the.list.is.long.
19fa0 65 6e 6f 75 67 68 2e 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 65 74 71 20 74 65 enough............((and.(setq.te
19fc0 73 74 20 28 64 61 73 68 2d 2d 68 61 73 68 2d 74 65 73 74 2d 66 6e 29 29 0a 20 20 20 20 20 20 20 st.(dash--hash-test-fn))........
19fe0 20 20 20 20 20 20 20 20 20 28 3e 20 28 73 65 74 71 20 6c 65 6e 20 28 6c 65 6e 67 74 68 20 6c 69 .........(>.(setq.len.(length.li
1a000 73 74 29 29 20 64 61 73 68 2d 2d 73 68 6f 72 74 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 29 0a 20 st)).dash--short-list-length))..
1a020 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 74 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 ..........(let.((ht.(make-hash-t
1a040 61 62 6c 65 20 3a 74 65 73 74 20 74 65 73 74 20 3a 73 69 7a 65 20 6c 65 6e 29 29 29 0a 20 20 20 able.:test.test.:size.len)))....
1a060 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 6c 74 65 72 20 28 75 6e 6c 65 73 73 20 28 67 65 74 ..........(--filter.(unless.(get
1a080 68 61 73 68 20 69 74 20 68 74 29 20 28 70 75 74 68 61 73 68 20 69 74 20 74 20 68 74 29 29 20 6c hash.it.ht).(puthash.it.t.ht)).l
1a0a0 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 74 20 28 28 6d 65 6d 62 65 72 20 ist)))...........((let.((member.
1a0c0 28 64 61 73 68 2d 2d 6d 65 6d 62 65 72 2d 66 6e 29 29 20 75 6e 69 71 29 0a 20 20 20 20 20 20 20 (dash--member-fn)).uniq)........
1a0e0 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 6c 69 73 74 20 28 75 6e 6c 65 73 73 20 28 66 75 6e 63 ......(--each.list.(unless.(func
1a100 61 6c 6c 20 6d 65 6d 62 65 72 20 69 74 20 75 6e 69 71 29 20 28 70 75 73 68 20 69 74 20 75 6e 69 all.member.it.uniq).(push.it.uni
1a120 71 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 75 6e 69 71 q)))..............(nreverse.uniq
1a140 29 29 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 75 6e 69 71 20 23 27 2d 64 69 73 74 ))))))..(defalias.'-uniq.#'-dist
1a160 69 6e 63 74 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 73 69 7a 65 2b 20 28 73 69 7a 65 31 inct)..(defun.dash--size+.(size1
1a180 20 73 69 7a 65 32 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 75 6d 20 6f 66 20 6e 6f 6e .size2)..."Return.the.sum.of.non
1a1a0 6e 65 67 61 74 69 76 65 20 66 69 78 6e 75 6d 73 20 53 49 5a 45 31 20 61 6e 64 20 53 49 5a 45 32 negative.fixnums.SIZE1.and.SIZE2
1a1c0 2e 0a 52 65 74 75 72 6e 20 60 6d 6f 73 74 2d 70 6f 73 69 74 69 76 65 2d 66 69 78 6e 75 6d 27 20 ..Return.`most-positive-fixnum'.
1a1e0 6f 6e 20 6f 76 65 72 66 6c 6f 77 2e 20 20 54 68 69 73 20 65 6e 73 75 72 65 73 20 74 68 65 0a 72 on.overflow...This.ensures.the.r
1a200 65 73 75 6c 74 20 69 73 20 61 20 76 61 6c 69 64 20 73 69 7a 65 2c 20 70 61 72 74 69 63 75 6c 61 esult.is.a.valid.size,.particula
1a220 72 6c 79 20 66 6f 72 20 61 6c 6c 6f 63 61 74 69 6e 67 20 68 61 73 68 20 74 61 62 6c 65 73 2c 0a rly.for.allocating.hash.tables,.
1a240 65 76 65 6e 20 69 6e 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 62 69 67 6e 75 6d 20 73 even.in.the.presence.of.bignum.s
1a260 75 70 70 6f 72 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 upport."...(declare.(side-effect
1a280 2d 66 72 65 65 20 74 29 29 0a 20 20 28 69 66 20 28 3c 20 73 69 7a 65 31 20 28 2d 20 6d 6f 73 74 -free.t))...(if.(<.size1.(-.most
1a2a0 2d 70 6f 73 69 74 69 76 65 2d 66 69 78 6e 75 6d 20 73 69 7a 65 32 29 29 0a 20 20 20 20 20 20 28 -positive-fixnum.size2)).......(
1a2c0 2b 20 73 69 7a 65 31 20 73 69 7a 65 32 29 0a 20 20 20 20 6d 6f 73 74 2d 70 6f 73 69 74 69 76 65 +.size1.size2).....most-positive
1a2e0 2d 66 69 78 6e 75 6d 29 29 0a 0a 28 64 65 66 75 6e 20 2d 75 6e 69 6f 6e 20 28 6c 69 73 74 31 20 -fixnum))..(defun.-union.(list1.
1a300 6c 69 73 74 32 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 64 list2)..."Return.a.new.list.of.d
1a320 69 73 74 69 6e 63 74 20 65 6c 65 6d 65 6e 74 73 20 61 70 70 65 61 72 69 6e 67 20 69 6e 20 65 69 istinct.elements.appearing.in.ei
1a340 74 68 65 72 20 4c 49 53 54 31 20 6f 72 20 4c 49 53 54 32 2e 0a 0a 54 68 65 20 74 65 73 74 20 66 ther.LIST1.or.LIST2...The.test.f
1a360 6f 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 60 65 71 75 61 6c 27 or.equality.is.done.with.`equal'
1a380 2c 20 6f 72 20 77 69 74 68 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 0a 69 66 20 74 68 61 74 20 ,.or.with.`-compare-fn'.if.that.
1a3a0 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 is.non-nil."...(declare.(importa
1a3c0 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 6c 69 73 nt-return-value.t))...(let.((lis
1a3e0 74 73 20 28 6c 69 73 74 20 6c 69 73 74 31 20 6c 69 73 74 32 29 29 20 74 65 73 74 20 6c 65 6e 20 ts.(list.list1.list2)).test.len.
1a400 75 6e 69 6f 6e 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 28 6f 72 20 6c 69 73 74 union).....(cond.((null.(or.list
1a420 31 20 6c 69 73 74 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 61 20 68 61 1.list2)))...........;;.Use.a.ha
1a440 73 68 20 74 61 62 6c 65 20 69 66 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 20 69 73 20 61 20 6b sh.table.if.`-compare-fn'.is.a.k
1a460 6e 6f 77 6e 20 68 61 73 68 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 65 73 nown.hash.table...........;;.tes
1a480 74 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 6c 69 73 74 73 20 61 72 65 20 6c 6f 6e t.function.and.the.lists.are.lon
1a4a0 67 20 65 6e 6f 75 67 68 2e 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 65 74 71 20 g.enough............((and.(setq.
1a4c0 74 65 73 74 20 28 64 61 73 68 2d 2d 68 61 73 68 2d 74 65 73 74 2d 66 6e 29 29 0a 20 20 20 20 20 test.(dash--hash-test-fn))......
1a4e0 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 73 65 74 71 20 6c 65 6e 20 28 64 61 73 68 2d 2d 73 ...........(>.(setq.len.(dash--s
1a500 69 7a 65 2b 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 31 29 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 ize+.(length.list1).(length.list
1a520 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 73 68 2d 2d 73 68 2)))....................dash--sh
1a540 6f 72 74 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 ort-list-length))............(le
1a560 74 20 28 28 68 74 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 74 65 t.((ht.(make-hash-table.:test.te
1a580 73 74 20 3a 73 69 7a 65 20 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f st.:size.len)))..............(do
1a5a0 6c 69 73 74 20 28 6c 20 6c 69 73 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d list.(l.lists)................(-
1a5c0 2d 65 61 63 68 20 6c 20 28 75 6e 6c 65 73 73 20 28 67 65 74 68 61 73 68 20 69 74 20 68 74 29 0a -each.l.(unless.(gethash.it.ht).
1a5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 ...........................(puth
1a600 61 73 68 20 69 74 20 74 20 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ash.it.t.ht)....................
1a620 20 20 20 20 20 20 20 20 28 70 75 73 68 20 69 74 20 75 6e 69 6f 6e 29 29 29 29 29 29 0a 20 20 20 ........(push.it.union))))))....
1a640 20 20 20 20 20 20 20 28 28 6c 65 74 20 28 28 6d 65 6d 62 65 72 20 28 64 61 73 68 2d 2d 6d 65 6d .......((let.((member.(dash--mem
1a660 62 65 72 2d 66 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 ber-fn)))..............(dolist.(
1a680 6c 20 6c 69 73 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 l.lists)................(--each.
1a6a0 6c 20 28 75 6e 6c 65 73 73 20 28 66 75 6e 63 61 6c 6c 20 6d 65 6d 62 65 72 20 69 74 20 75 6e 69 l.(unless.(funcall.member.it.uni
1a6c0 6f 6e 29 20 28 70 75 73 68 20 69 74 20 75 6e 69 6f 6e 29 29 29 29 29 29 29 0a 20 20 20 20 28 6e on).(push.it.union))))))).....(n
1a6e0 72 65 76 65 72 73 65 20 75 6e 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 69 6e 74 65 72 73 reverse.union)))..(defun.-inters
1a700 65 63 74 69 6f 6e 20 28 6c 69 73 74 31 20 6c 69 73 74 32 29 0a 20 20 22 52 65 74 75 72 6e 20 61 ection.(list1.list2)..."Return.a
1a720 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 64 69 73 74 69 6e 63 74 20 65 6c 65 6d 65 6e 74 73 20 61 .new.list.of.distinct.elements.a
1a740 70 70 65 61 72 69 6e 67 20 69 6e 20 62 6f 74 68 20 4c 49 53 54 31 20 61 6e 64 20 4c 49 53 54 32 ppearing.in.both.LIST1.and.LIST2
1a760 2e 0a 0a 54 68 65 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 ...The.test.for.equality.is.done
1a780 20 77 69 74 68 20 60 65 71 75 61 6c 27 2c 20 6f 72 20 77 69 74 68 20 60 2d 63 6f 6d 70 61 72 65 .with.`equal',.or.with.`-compare
1a7a0 2d 66 6e 27 0a 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 64 65 63 -fn'.if.that.is.non-nil."...(dec
1a7c0 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 lare.(important-return-value.t))
1a7e0 0a 20 20 28 6c 65 74 20 28 74 65 73 74 20 6c 65 6e 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6e ...(let.(test.len).....(cond.((n
1a800 75 6c 6c 20 28 61 6e 64 20 6c 69 73 74 31 20 6c 69 73 74 32 29 29 20 28 29 29 0a 20 20 20 20 20 ull.(and.list1.list2)).())......
1a820 20 20 20 20 20 3b 3b 20 55 73 65 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 69 66 20 60 2d 63 6f .....;;.Use.a.hash.table.if.`-co
1a840 6d 70 61 72 65 2d 66 6e 27 20 69 73 20 61 20 6b 6e 6f 77 6e 20 68 61 73 68 20 74 61 62 6c 65 0a mpare-fn'.is.a.known.hash.table.
1a860 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 65 ..........;;.test.function.and.e
1a880 69 74 68 65 72 20 6c 69 73 74 20 69 73 20 6c 6f 6e 67 20 65 6e 6f 75 67 68 2e 0a 20 20 20 20 20 ither.list.is.long.enough.......
1a8a0 20 20 20 20 20 28 28 61 6e 64 20 28 73 65 74 71 20 74 65 73 74 20 28 64 61 73 68 2d 2d 68 61 73 .....((and.(setq.test.(dash--has
1a8c0 68 2d 74 65 73 74 2d 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 h-test-fn)).................(>.(
1a8e0 73 65 74 71 20 6c 65 6e 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 32 29 29 20 64 61 73 68 2d 2d 73 setq.len.(length.list2)).dash--s
1a900 68 6f 72 74 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c hort-list-length))............(l
1a920 65 74 20 28 28 68 74 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 74 et.((ht.(make-hash-table.:test.t
1a940 65 73 74 20 3a 73 69 7a 65 20 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d est.:size.len)))..............(-
1a960 2d 65 61 63 68 20 6c 69 73 74 32 20 28 70 75 74 68 61 73 68 20 69 74 20 74 20 68 74 29 29 0a 20 -each.list2.(puthash.it.t.ht))..
1a980 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 6d 6f 76 65 20 76 69 73 69 74 65 64 20 65 6c ............;;.Remove.visited.el
1a9a0 65 6d 65 6e 74 73 20 74 6f 20 61 76 6f 69 64 20 64 75 70 6c 69 63 61 74 65 73 2e 0a 20 20 20 20 ements.to.avoid.duplicates......
1a9c0 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 6c 74 65 72 20 28 77 68 65 6e 20 28 67 65 74 68 61 73 .........(--filter.(when.(gethas
1a9e0 68 20 69 74 20 68 74 29 20 28 72 65 6d 68 61 73 68 20 69 74 20 68 74 29 20 74 29 20 6c 69 73 74 h.it.ht).(remhash.it.ht).t).list
1aa00 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 74 20 28 28 6d 65 6d 62 65 72 20 28 64 1)))...........((let.((member.(d
1aa20 61 73 68 2d 2d 6d 65 6d 62 65 72 2d 66 6e 29 29 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 29 0a 20 ash--member-fn)).intersection)..
1aa40 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 6c 69 73 74 31 20 28 61 6e 64 20 28 ............(--each.list1.(and.(
1aa60 66 75 6e 63 61 6c 6c 20 6d 65 6d 62 65 72 20 69 74 20 6c 69 73 74 32 29 0a 20 20 20 20 20 20 20 funcall.member.it.list2)........
1aa80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 66 .........................(not.(f
1aaa0 75 6e 63 61 6c 6c 20 6d 65 6d 62 65 72 20 69 74 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 29 29 0a uncall.member.it.intersection)).
1aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1aae0 28 70 75 73 68 20 69 74 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 (push.it.intersection)))........
1ab00 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 29 29 29 29 ......(nreverse.intersection))))
1ab20 29 29 0a 0a 28 64 65 66 75 6e 20 2d 64 69 66 66 65 72 65 6e 63 65 20 28 6c 69 73 74 31 20 6c 69 ))..(defun.-difference.(list1.li
1ab40 73 74 32 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 74 st2)..."Return.a.new.list.with.t
1ab60 68 65 20 64 69 73 74 69 6e 63 74 20 6d 65 6d 62 65 72 73 20 6f 66 20 4c 49 53 54 31 20 74 68 61 he.distinct.members.of.LIST1.tha
1ab80 74 20 61 72 65 20 6e 6f 74 20 69 6e 20 4c 49 53 54 32 2e 0a 0a 54 68 65 20 74 65 73 74 20 66 6f t.are.not.in.LIST2...The.test.fo
1aba0 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 60 65 71 75 61 6c 27 2c r.equality.is.done.with.`equal',
1abc0 20 6f 72 20 77 69 74 68 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 0a 69 66 20 74 68 61 74 20 69 .or.with.`-compare-fn'.if.that.i
1abe0 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e s.non-nil."...(declare.(importan
1ac00 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 74 65 73 74 20 t-return-value.t))...(let.(test.
1ac20 6c 65 6e 31 20 6c 65 6e 32 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 6c 69 73 74 len1.len2).....(cond.((null.list
1ac40 31 29 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 6c 69 73 74 32 29 20 28 1).())...........((null.list2).(
1ac60 2d 64 69 73 74 69 6e 63 74 20 6c 69 73 74 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 -distinct.list1))...........;;.U
1ac80 73 65 20 61 20 68 61 73 68 20 74 61 62 6c 65 20 69 66 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 se.a.hash.table.if.`-compare-fn'
1aca0 20 69 73 20 61 20 6b 6e 6f 77 6e 20 68 61 73 68 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 .is.a.known.hash.table..........
1acc0 20 3b 3b 20 74 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 73 75 62 74 72 61 .;;.test.function.and.the.subtra
1ace0 68 65 6e 64 20 69 73 20 6c 6f 6e 67 20 65 6e 6f 75 67 68 2e 0a 20 20 20 20 20 20 20 20 20 20 28 hend.is.long.enough............(
1ad00 28 61 6e 64 20 28 73 65 74 71 20 74 65 73 74 20 28 64 61 73 68 2d 2d 68 61 73 68 2d 74 65 73 74 (and.(setq.test.(dash--hash-test
1ad20 2d 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 6e 31 -fn)).................(setq.len1
1ad40 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(length.list1))................
1ad60 20 28 73 65 74 71 20 6c 65 6e 32 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 32 29 29 0a 20 20 20 20 .(setq.len2.(length.list2)).....
1ad80 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 6d 61 78 20 6c 65 6e 31 20 6c 65 6e 32 29 20 64 ............(>.(max.len1.len2).d
1ada0 61 73 68 2d 2d 73 68 6f 72 74 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 ash--short-list-length))........
1adc0 20 20 20 20 28 6c 65 74 20 28 28 68 74 31 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 ....(let.((ht1.(make-hash-table.
1ade0 3a 74 65 73 74 20 74 65 73 74 20 3a 73 69 7a 65 20 6c 65 6e 31 29 29 0a 20 20 20 20 20 20 20 20 :test.test.:size.len1)).........
1ae00 20 20 20 20 20 20 20 20 20 28 68 74 32 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a .........(ht2.(make-hash-table.:
1ae20 74 65 73 74 20 74 65 73 74 20 3a 73 69 7a 65 20 6c 65 6e 32 29 29 29 0a 20 20 20 20 20 20 20 20 test.test.:size.len2))).........
1ae40 20 20 20 20 20 28 2d 2d 65 61 63 68 20 6c 69 73 74 32 20 28 70 75 74 68 61 73 68 20 69 74 20 74 .....(--each.list2.(puthash.it.t
1ae60 20 68 74 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 76 6f 69 64 20 64 75 70 .ht2))..............;;.Avoid.dup
1ae80 6c 69 63 61 74 65 73 20 62 79 20 74 72 61 63 6b 69 6e 67 20 76 69 73 69 74 65 64 20 69 74 65 6d licates.by.tracking.visited.item
1aea0 73 20 69 6e 20 60 68 74 31 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 6c 74 s.in.`ht1'...............(--filt
1aec0 65 72 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 67 65 74 68 61 73 68 20 69 74 20 68 74 32 29 20 er.(unless.(or.(gethash.it.ht2).
1aee0 28 67 65 74 68 61 73 68 20 69 74 20 68 74 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (gethash.it.ht1))...............
1af00 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 69 74 20 74 20 68 74 31 29 29 0a 20 ...........(puthash.it.t.ht1))..
1af20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 31 29 29 29 0a 20 ......................list1)))..
1af40 20 20 20 20 20 20 20 20 20 28 28 6c 65 74 20 28 28 6d 65 6d 62 65 72 20 28 64 61 73 68 2d 2d 6d .........((let.((member.(dash--m
1af60 65 6d 62 65 72 2d 66 6e 29 29 20 64 69 66 66 65 72 65 6e 63 65 29 0a 20 20 20 20 20 20 20 20 20 ember-fn)).difference)..........
1af80 20 20 20 20 28 2d 2d 65 61 63 68 20 6c 69 73 74 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(--each.list1...............
1afa0 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 66 75 6e 63 61 6c 6c 20 6d 65 6d 62 65 72 20 69 74 20 .(unless.(or.(funcall.member.it.
1afc0 6c 69 73 74 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 list2)..........................
1afe0 20 20 28 66 75 6e 63 61 6c 6c 20 6d 65 6d 62 65 72 20 69 74 20 64 69 66 66 65 72 65 6e 63 65 29 ..(funcall.member.it.difference)
1b000 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 69 74 20 64 69 66 66 )..................(push.it.diff
1b020 65 72 65 6e 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 erence)))..............(nreverse
1b040 20 64 69 66 66 65 72 65 6e 63 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 6f 77 65 72 .difference))))))..(defun.-power
1b060 73 65 74 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 6f 77 65 72 20 73 set.(list)..."Return.the.power.s
1b080 65 74 20 6f 66 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 et.of.LIST."...(declare.(pure.t)
1b0a0 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 69 66 20 28 6e 75 .(side-effect-free.t))...(if.(nu
1b0c0 6c 6c 20 6c 69 73 74 29 20 28 6c 69 73 74 20 28 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6c 61 ll.list).(list.()).....(let.((la
1b0e0 73 74 20 28 2d 70 6f 77 65 72 73 65 74 20 28 63 64 72 20 6c 69 73 74 29 29 29 29 0a 20 20 20 20 st.(-powerset.(cdr.list)))).....
1b100 20 20 28 6e 63 6f 6e 63 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 63 6f ..(nconc.(mapcar.(lambda.(x).(co
1b120 6e 73 20 28 63 61 72 20 6c 69 73 74 29 20 78 29 29 20 6c 61 73 74 29 0a 20 20 20 20 20 20 20 20 ns.(car.list).x)).last).........
1b140 20 20 20 20 20 6c 61 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 66 72 65 71 75 65 6e 63 69 .....last))))..(defun.-frequenci
1b160 65 73 20 28 6c 69 73 74 29 0a 20 20 22 43 6f 75 6e 74 20 74 68 65 20 6f 63 63 75 72 72 65 6e 63 es.(list)..."Count.the.occurrenc
1b180 65 73 20 6f 66 20 65 61 63 68 20 64 69 73 74 69 6e 63 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c es.of.each.distinct.element.of.L
1b1a0 49 53 54 2e 0a 0a 52 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 28 45 4c 45 4d 45 4e IST...Return.an.alist.of.(ELEMEN
1b1c0 54 20 2e 20 4e 29 2c 20 77 68 65 72 65 20 65 61 63 68 20 45 4c 45 4d 45 4e 54 20 6f 63 63 75 72 T...N),.where.each.ELEMENT.occur
1b1e0 73 20 4e 0a 74 69 6d 65 73 20 69 6e 20 4c 49 53 54 2e 0a 0a 54 68 65 20 74 65 73 74 20 66 6f 72 s.N.times.in.LIST...The.test.for
1b200 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 60 65 71 75 61 6c 27 2c 20 .equality.is.done.with.`equal',.
1b220 6f 72 20 77 69 74 68 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 0a 69 66 20 74 68 61 74 20 69 73 or.with.`-compare-fn'.if.that.is
1b240 20 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 2d 63 6f 75 6e 74 27 20 61 6e 64 .non-nil...See.also.`-count'.and
1b260 20 60 2d 67 72 6f 75 70 2d 62 79 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 .`-group-by'."...(declare.(impor
1b280 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 74 65 tant-return-value.t))...(let.(te
1b2a0 73 74 20 6c 65 6e 20 66 72 65 71 73 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 6c st.len.freqs).....(cond.((null.l
1b2c0 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 65 74 71 20 74 65 73 74 ist))...........((and.(setq.test
1b2e0 20 28 64 61 73 68 2d 2d 68 61 73 68 2d 74 65 73 74 2d 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 .(dash--hash-test-fn))..........
1b300 20 20 20 20 20 20 20 28 3e 20 28 73 65 74 71 20 6c 65 6e 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 .......(>.(setq.len.(length.list
1b320 29 29 20 64 61 73 68 2d 2d 73 68 6f 72 74 2d 6c 69 73 74 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 )).dash--short-list-length))....
1b340 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 74 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 ........(let.((ht.(make-hash-tab
1b360 6c 65 20 3a 74 65 73 74 20 74 65 73 74 20 3a 73 69 7a 65 20 6c 65 6e 29 29 29 0a 20 20 20 20 20 le.:test.test.:size.len)))......
1b380 20 20 20 20 20 20 20 20 3b 3b 20 53 68 61 72 65 20 73 74 72 75 63 74 75 72 65 20 62 65 74 77 65 ........;;.Share.structure.betwe
1b3a0 65 6e 20 68 61 73 68 20 74 61 62 6c 65 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 6c 69 73 74 2e en.hash.table.and.returned.list.
1b3c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 61 66 66 6f 72 64 73 20 61 20 ..............;;.This.affords.a.
1b3e0 73 69 6e 67 6c 65 20 70 61 73 73 20 74 68 61 74 20 70 72 65 73 65 72 76 65 73 20 74 68 65 20 69 single.pass.that.preserves.the.i
1b400 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 64 65 72 2c 20 63 6f 6e 73 nput..............;;.order,.cons
1b420 65 73 20 6c 65 73 73 20 67 61 72 62 61 67 65 2c 20 61 6e 64 20 69 73 20 66 61 73 74 65 72 20 74 es.less.garbage,.and.is.faster.t
1b440 68 61 6e 20 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 65 63 6f 6e 64 20 74 72 61 han.a..............;;.second.tra
1b460 76 65 72 73 61 6c 20 28 65 2e 67 2e 2c 20 77 69 74 68 20 60 6d 61 70 68 61 73 68 27 29 2e 0a 20 versal.(e.g.,.with.`maphash')...
1b480 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 6c 69 73 74 0a 20 20 20 20 20 20 20 ............(--each.list........
1b4a0 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 72 65 71 20 28 67 65 74 68 61 73 68 20 69 74 20 ........(let.((freq.(gethash.it.
1b4c0 68 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 66 72 65 71 0a ht)))..................(if.freq.
1b4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 66 72 65 .....................(setcdr.fre
1b500 71 20 28 31 2b 20 28 63 64 72 20 66 72 65 71 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 q.(1+.(cdr.freq)))..............
1b520 20 20 20 20 20 20 28 70 75 73 68 20 28 70 75 74 68 61 73 68 20 69 74 20 28 63 6f 6e 73 20 69 74 ......(push.(puthash.it.(cons.it
1b540 20 31 29 20 68 74 29 20 66 72 65 71 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 .1).ht).freqs))))))...........((
1b560 6c 65 74 20 28 28 61 73 73 6f 63 20 28 64 61 73 68 2d 2d 61 73 73 6f 63 2d 66 6e 29 29 29 0a 20 let.((assoc.(dash--assoc-fn)))..
1b580 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 20 6c 69 73 74 0a 20 20 20 20 20 20 20 ............(--each.list........
1b5a0 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 72 65 71 20 28 66 75 6e 63 61 6c 6c 20 61 73 73 ........(let.((freq.(funcall.ass
1b5c0 6f 63 20 69 74 20 66 72 65 71 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oc.it.freqs)))..................
1b5e0 28 69 66 20 66 72 65 71 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 (if.freq......................(s
1b600 65 74 63 64 72 20 66 72 65 71 20 28 31 2b 20 28 63 64 72 20 66 72 65 71 29 29 29 0a 20 20 20 20 etcdr.freq.(1+.(cdr.freq))).....
1b620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 69 74 20 31 29 ...............(push.(cons.it.1)
1b640 20 66 72 65 71 73 29 29 29 29 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 66 72 65 71 .freqs))))))).....(nreverse.freq
1b660 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6e 75 6d 62 65 72 73 3c 3d 20 28 6e 75 s)))..(defun.dash--numbers<=.(nu
1b680 6d 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 55 4d 53 20 69 73 ms)..."Return.non-nil.if.NUMS.is
1b6a0 20 61 20 6c 69 73 74 20 6f 66 20 6e 6f 6e 2d 64 65 63 72 65 61 73 69 6e 67 20 6e 75 6d 62 65 72 .a.list.of.non-decreasing.number
1b6c0 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 s."...(declare.(pure.t).(side-ef
1b6e0 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6f 72 20 28 6e 75 6c 6c 20 6e 75 6d 73 29 0a fect-free.t))...(or.(null.nums).
1b700 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 65 76 20 28 70 6f 70 20 6e 75 6d 73 29 29 29 0a 20 ......(let.((prev.(pop.nums)))..
1b720 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 75 6d 62 65 72 70 20 70 72 65 76 29 0a 20 20 20 20 20 .......(and.(numberp.prev)......
1b740 20 20 20 20 20 20 20 20 28 2d 2d 65 76 65 72 79 20 28 61 6e 64 20 28 6e 75 6d 62 65 72 70 20 69 ........(--every.(and.(numberp.i
1b760 74 29 20 28 3c 3d 20 70 72 65 76 20 28 73 65 74 71 20 70 72 65 76 20 69 74 29 29 29 20 6e 75 6d t).(<=.prev.(setq.prev.it))).num
1b780 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6e 65 78 74 2d 6c 65 78 2d 70 65 s)))))..(defun.dash--next-lex-pe
1b7a0 72 6d 20 28 61 72 72 61 79 20 6e 29 0a 20 20 22 55 70 64 61 74 65 20 41 52 52 41 59 20 6f 66 20 rm.(array.n)..."Update.ARRAY.of.
1b7c0 4e 20 6e 75 6d 62 65 72 73 20 77 69 74 68 20 69 74 73 20 6e 65 78 74 20 6c 65 78 69 63 6f 67 72 N.numbers.with.its.next.lexicogr
1b7e0 61 70 68 69 63 20 70 65 72 6d 75 74 61 74 69 6f 6e 2e 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 aphic.permutation..Return.nil.if
1b800 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 75 63 68 20 73 75 63 63 65 73 73 6f 72 2e 20 20 4e 20 .there.is.no.such.successor...N.
1b820 73 68 6f 75 6c 64 20 62 65 20 6e 6f 6e 7a 65 72 6f 2e 0a 0a 54 68 69 73 20 69 6d 70 6c 65 6d 65 should.be.nonzero...This.impleme
1b840 6e 74 73 20 74 68 65 20 73 61 6c 69 65 6e 74 20 73 74 65 70 73 20 6f 66 20 41 6c 67 6f 72 69 74 nts.the.salient.steps.of.Algorit
1b860 68 6d 20 4c 20 28 4c 65 78 69 63 6f 67 72 61 70 68 69 63 0a 70 65 72 6d 75 74 61 74 69 6f 6e 20 hm.L.(Lexicographic.permutation.
1b880 67 65 6e 65 72 61 74 69 6f 6e 29 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 44 45 20 4b generation).as.described.in.DE.K
1b8a0 6e 75 74 68 27 73 20 54 68 65 20 41 72 74 20 6f 66 0a 43 6f 6d 70 75 74 65 72 20 50 72 6f 67 72 nuth's.The.Art.of.Computer.Progr
1b8c0 61 6d 6d 69 6e 67 2c 20 56 6f 6c 75 6d 65 20 34 41 20 2f 20 43 6f 6d 62 69 6e 61 74 6f 72 69 61 amming,.Volume.4A./.Combinatoria
1b8e0 6c 20 41 6c 67 6f 72 69 74 68 6d 73 2c 0a 50 61 72 74 20 49 2c 20 41 64 64 69 73 6f 6e 2d 57 65 l.Algorithms,.Part.I,.Addison-We
1b900 73 6c 65 79 2c 20 32 30 31 31 2c 20 c2 a7 20 37 2e 32 2e 31 2e 32 2c 20 70 2e 20 33 31 39 2e 22 sley,.2011,....7.2.1.2,.p..319."
1b920 0a 20 20 28 73 65 74 71 20 6e 20 28 31 2d 20 6e 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6c 20 6e ...(setq.n.(1-.n))...(let*.((l.n
1b940 29 0a 20 20 20 20 20 20 20 20 20 28 6a 20 28 31 2d 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 )..........(j.(1-.n))..........(
1b960 61 6c 20 28 61 72 65 66 20 61 72 72 61 79 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 6a 20 al.(aref.array.n))..........(aj.
1b980 61 6c 29 29 0a 20 20 20 20 3b 3b 20 4c 32 2e 20 5b 46 69 6e 64 20 6a 5d 2e 0a 20 20 20 20 3b 3b al)).....;;.L2..[Find.j]......;;
1b9a0 20 44 65 63 72 65 6d 65 6e 74 20 6a 20 75 6e 74 69 6c 20 61 5b 6a 5d 20 3c 20 61 5b 6a 2b 31 5d .Decrement.j.until.a[j].<.a[j+1]
1b9c0 2e 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 3c 3d 20 30 20 6a 29 0a 20 20 20 20 20 ......(while.(and.(<=.0.j)......
1b9e0 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 61 6a 20 28 73 65 74 71 20 61 6a 20 28 61 72 65 66 ...........(<=.aj.(setq.aj.(aref
1ba00 20 61 72 72 61 79 20 6a 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 20 28 31 2d 20 6a .array.j)))).......(setq.j.(1-.j
1ba20 29 29 29 0a 20 20 20 20 3b 3b 20 54 65 72 6d 69 6e 61 74 65 20 61 6c 67 6f 72 69 74 68 6d 20 69 ))).....;;.Terminate.algorithm.i
1ba40 66 20 6a 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 20 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 6a 20 30 f.j.not.found......(when.(>=.j.0
1ba60 29 0a 20 20 20 20 20 20 3b 3b 20 4c 33 2e 20 5b 49 6e 63 72 65 61 73 65 20 61 5b 6a 5d 5d 2e 0a ).......;;.L3..[Increase.a[j]]..
1ba80 20 20 20 20 20 20 3b 3b 20 44 65 63 72 65 6d 65 6e 74 20 6c 20 75 6e 74 69 6c 20 61 5b 6a 5d 20 ......;;.Decrement.l.until.a[j].
1baa0 3c 20 61 5b 6c 5d 2e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3e 3d 20 61 6a 20 61 6c 29 0a <.a[l]........(while.(>=.aj.al).
1bac0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 20 28 31 2d 20 6c 29 20 61 6c 20 28 61 72 65 66 20 ........(setq.l.(1-.l).al.(aref.
1bae0 61 72 72 61 79 20 6c 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 53 77 61 70 20 61 5b 6a 5d 20 61 6e array.l))).......;;.Swap.a[j].an
1bb00 64 20 61 5b 6c 5d 2e 0a 20 20 20 20 20 20 28 61 73 65 74 20 61 72 72 61 79 20 6a 20 61 6c 29 0a d.a[l]........(aset.array.j.al).
1bb20 20 20 20 20 20 20 28 61 73 65 74 20 61 72 72 61 79 20 6c 20 61 6a 29 0a 20 20 20 20 20 20 3b 3b ......(aset.array.l.aj).......;;
1bb40 20 4c 34 2e 20 5b 52 65 76 65 72 73 65 20 61 5b 6a 2b 31 5d 2e 2e 2e 61 5b 6e 5d 5d 2e 0a 20 20 .L4..[Reverse.a[j+1]...a[n]]....
1bb60 20 20 20 20 28 73 65 74 71 20 6c 20 6e 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 28 ....(setq.l.n).......(while.(<.(
1bb80 73 65 74 71 20 6a 20 28 31 2b 20 6a 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 setq.j.(1+.j)).l).........(setq.
1bba0 61 6a 20 28 61 72 65 66 20 61 72 72 61 79 20 6a 29 29 0a 20 20 20 20 20 20 20 20 28 61 73 65 74 aj.(aref.array.j)).........(aset
1bbc0 20 61 72 72 61 79 20 6a 20 28 61 72 65 66 20 61 72 72 61 79 20 6c 29 29 0a 20 20 20 20 20 20 20 .array.j.(aref.array.l))........
1bbe0 20 28 61 73 65 74 20 61 72 72 61 79 20 6c 20 61 6a 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 .(aset.array.l.aj).........(setq
1bc00 20 6c 20 28 31 2d 20 6c 29 29 29 0a 20 20 20 20 20 20 61 72 72 61 79 29 29 29 0a 0a 28 64 65 66 .l.(1-.l))).......array)))..(def
1bc20 75 6e 20 64 61 73 68 2d 2d 6c 65 78 2d 70 65 72 6d 73 20 28 76 65 63 20 26 6f 70 74 69 6f 6e 61 un.dash--lex-perms.(vec.&optiona
1bc40 6c 20 6f 72 69 67 69 6e 61 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 l.original)..."Return.a.list.of.
1bc60 70 65 72 6d 75 74 61 74 69 6f 6e 73 20 6f 66 20 56 45 43 20 69 6e 20 6c 65 78 69 63 6f 67 72 61 permutations.of.VEC.in.lexicogra
1bc80 70 68 69 63 20 6f 72 64 65 72 2e 0a 53 70 65 63 69 66 69 63 61 6c 6c 79 2c 20 72 65 74 75 72 6e phic.order..Specifically,.return
1bca0 20 6f 6e 6c 79 20 74 68 65 20 73 75 63 63 65 73 73 6f 72 73 20 6f 66 20 56 45 43 20 69 6e 20 6c .only.the.successors.of.VEC.in.l
1bcc0 65 78 69 63 6f 67 72 61 70 68 69 63 0a 6f 72 64 65 72 2e 20 20 45 61 63 68 20 72 65 74 75 72 6e exicographic.order...Each.return
1bce0 65 64 20 70 65 72 6d 75 74 61 74 69 6f 6e 20 69 73 20 61 20 6c 69 73 74 2e 20 20 56 45 43 20 73 ed.permutation.is.a.list...VEC.s
1bd00 68 6f 75 6c 64 20 63 6f 6d 70 72 69 73 65 0a 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6e 75 6d 62 65 hould.comprise.one.or.more.numbe
1bd20 72 73 2c 20 61 6e 64 20 6d 61 79 20 62 65 20 64 65 73 74 72 75 63 74 69 76 65 6c 79 20 6d 6f 64 rs,.and.may.be.destructively.mod
1bd40 69 66 69 65 64 2e 0a 0a 49 66 20 4f 52 49 47 49 4e 41 4c 20 69 73 20 61 20 76 65 63 74 6f 72 2c ified...If.ORIGINAL.is.a.vector,
1bd60 20 74 68 65 6e 20 56 45 43 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 20 73 65 .then.VEC.is.interpreted.as.a.se
1bd80 74 20 6f 66 0a 69 6e 64 69 63 65 73 20 69 6e 74 6f 20 4f 52 49 47 49 4e 41 4c 2e 20 20 49 6e 20 t.of.indices.into.ORIGINAL...In.
1bda0 74 68 69 73 20 63 61 73 65 2c 20 74 68 65 20 69 6e 64 69 63 65 73 20 61 72 65 20 70 65 72 6d 75 this.case,.the.indices.are.permu
1bdc0 74 65 64 2c 0a 61 6e 64 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 64 65 78 20 70 65 72 ted,.and.the.resulting.index.per
1bde0 6d 75 74 61 74 69 6f 6e 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 64 65 72 65 66 65 72 65 6e 63 mutations.are.used.to.dereferenc
1be00 65 0a 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4f 52 49 47 49 4e 41 4c 2e 22 0a 20 20 28 6c 65 74 20 e.elements.of.ORIGINAL."...(let.
1be20 28 28 6c 65 6e 20 28 6c 65 6e 67 74 68 20 76 65 63 29 29 20 70 65 72 6d 73 29 0a 20 20 20 20 28 ((len.(length.vec)).perms).....(
1be40 77 68 69 6c 65 20 76 65 63 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 69 66 20 6f 72 69 67 69 6e while.vec.......(push.(if.origin
1be60 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 20 28 61 72 65 66 20 al.................(--map.(aref.
1be80 6f 72 69 67 69 6e 61 6c 20 69 74 29 20 76 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 original.it).vec)...............
1bea0 28 61 70 70 65 6e 64 20 76 65 63 20 28 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 65 72 (append.vec.())).............per
1bec0 6d 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 76 65 63 20 28 64 61 73 68 2d 2d 6e 65 78 74 2d ms).......(setq.vec.(dash--next-
1bee0 6c 65 78 2d 70 65 72 6d 20 76 65 63 20 6c 65 6e 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 lex-perm.vec.len))).....(nrevers
1bf00 65 20 70 65 72 6d 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 75 6e 69 71 2d 70 65 e.perms)))..(defun.dash--uniq-pe
1bf20 72 6d 73 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 rms.(list)..."Return.a.list.of.p
1bf40 65 72 6d 75 74 61 74 69 6f 6e 73 20 6f 66 20 4c 49 53 54 2e 0a 4c 49 53 54 20 69 73 20 74 72 65 ermutations.of.LIST..LIST.is.tre
1bf60 61 74 65 64 20 61 73 20 69 66 20 61 6c 6c 20 69 74 73 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 ated.as.if.all.its.elements.are.
1bf80 64 69 73 74 69 6e 63 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 76 65 63 20 28 76 63 6f 6e 63 61 distinct."...(let*.((vec.(vconca
1bfa0 74 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 64 78 73 20 28 63 6f 70 79 2d 73 65 t.list))..........(idxs.(copy-se
1bfc0 71 75 65 6e 63 65 20 76 65 63 29 29 29 0a 20 20 20 20 3b 3b 20 4a 75 73 74 20 63 6f 6e 73 74 72 quence.vec))).....;;.Just.constr
1bfe0 75 63 74 20 61 20 76 65 63 74 6f 72 20 6f 66 20 74 68 65 20 6c 69 73 74 27 73 20 69 6e 64 69 63 uct.a.vector.of.the.list's.indic
1c000 65 73 20 61 6e 64 20 70 65 72 6d 75 74 65 20 74 68 61 74 2e 0a 20 20 20 20 28 64 6f 74 69 6d 65 es.and.permute.that......(dotime
1c020 73 20 28 69 20 28 6c 65 6e 67 74 68 20 69 64 78 73 29 29 0a 20 20 20 20 20 20 28 61 73 65 74 20 s.(i.(length.idxs)).......(aset.
1c040 69 64 78 73 20 69 20 69 29 29 0a 20 20 20 20 28 64 61 73 68 2d 2d 6c 65 78 2d 70 65 72 6d 73 20 idxs.i.i)).....(dash--lex-perms.
1c060 69 64 78 73 20 76 65 63 29 29 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 6d 75 6c 74 69 2d idxs.vec)))..(defun.dash--multi-
1c080 70 65 72 6d 73 20 28 6c 69 73 74 20 66 72 65 71 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c perms.(list.freqs)..."Return.a.l
1c0a0 69 73 74 20 6f 66 20 70 65 72 6d 75 74 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 6d 75 6c 74 69 ist.of.permutations.of.the.multi
1c0c0 73 65 74 20 4c 49 53 54 2e 0a 46 52 45 51 53 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 set.LIST..FREQS.should.be.an.ali
1c0e0 73 74 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 66 72 65 71 75 65 6e 63 79 20 6f 66 20 65 st.describing.the.frequency.of.e
1c100 61 63 68 20 65 6c 65 6d 65 6e 74 0a 69 6e 20 4c 49 53 54 2c 20 61 73 20 72 65 74 75 72 6e 65 64 ach.element.in.LIST,.as.returned
1c120 20 62 79 20 60 2d 66 72 65 71 75 65 6e 63 69 65 73 27 2e 22 0a 20 20 28 6c 65 74 20 28 3b 3b 20 .by.`-frequencies'."...(let.(;;.
1c140 44 69 73 74 69 6e 63 74 20 69 74 65 6d 73 20 69 6e 20 60 6c 69 73 74 27 2c 20 61 6b 61 20 74 68 Distinct.items.in.`list',.aka.th
1c160 65 20 63 61 72 73 20 6f 66 20 60 66 72 65 71 73 27 2e 0a 20 20 20 20 20 20 20 20 28 75 6e 69 71 e.cars.of.`freqs'..........(uniq
1c180 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 28 6c 65 6e 67 74 68 20 66 72 65 71 73 29 20 6e 69 6c .(make-vector.(length.freqs).nil
1c1a0 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 64 69 63 65 73 20 69 6e 74 6f 20 60 75 6e 69 71 )).........;;.Indices.into.`uniq
1c1c0 27 2e 0a 20 20 20 20 20 20 20 20 28 69 64 78 73 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 28 6c '..........(idxs.(make-vector.(l
1c1e0 65 6e 67 74 68 20 6c 69 73 74 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 43 75 72 ength.list).nil)).........;;.Cur
1c200 72 65 6e 74 20 69 6e 64 65 78 20 69 6e 74 6f 20 60 69 64 78 73 27 2e 0a 20 20 20 20 20 20 20 20 rent.index.into.`idxs'..........
1c220 28 69 20 30 29 29 0a 20 20 20 20 28 2d 2d 65 61 63 68 20 66 72 65 71 73 0a 20 20 20 20 20 20 28 (i.0)).....(--each.freqs.......(
1c240 61 73 65 74 20 75 6e 69 71 20 69 74 2d 69 6e 64 65 78 20 28 63 61 72 20 69 74 29 29 0a 20 20 20 aset.uniq.it-index.(car.it))....
1c260 20 20 20 3b 3b 20 50 6f 70 75 6c 61 74 65 20 60 69 64 78 73 27 20 77 69 74 68 20 61 73 20 6d 61 ...;;.Populate.`idxs'.with.as.ma
1c280 6e 79 20 63 6f 70 69 65 73 20 6f 66 20 65 61 63 68 20 60 69 74 2d 69 6e 64 65 78 27 20 61 73 0a ny.copies.of.each.`it-index'.as.
1c2a0 20 20 20 20 20 20 3b 3b 20 74 68 65 72 65 20 61 72 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 ......;;.there.are.corresponding
1c2c0 20 64 75 70 6c 69 63 61 74 65 73 2e 0a 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 .duplicates........(dotimes.(_.(
1c2e0 63 64 72 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 28 61 73 65 74 20 69 64 78 73 20 69 20 69 74 cdr.it)).........(aset.idxs.i.it
1c300 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 31 2b 20 69 29 29 29 -index).........(setq.i.(1+.i)))
1c320 29 0a 20 20 20 20 28 64 61 73 68 2d 2d 6c 65 78 2d 70 65 72 6d 73 20 69 64 78 73 20 75 6e 69 71 ).....(dash--lex-perms.idxs.uniq
1c340 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 65 72 6d 75 74 61 74 69 6f 6e 73 20 28 6c 69 73 74 29 )))..(defun.-permutations.(list)
1c360 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 69 73 74 69 6e 63 74 20 70 65 72 6d 75 74 61 74 ..."Return.the.distinct.permutat
1c380 69 6f 6e 73 20 6f 66 20 4c 49 53 54 2e 0a 0a 44 75 70 6c 69 63 61 74 65 20 65 6c 65 6d 65 6e 74 ions.of.LIST...Duplicate.element
1c3a0 73 20 6f 66 20 4c 49 53 54 20 61 72 65 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 60 65 71 75 s.of.LIST.are.determined.by.`equ
1c3c0 61 6c 27 2c 20 6f 72 20 62 79 0a 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 20 69 66 20 74 68 61 74 al',.or.by.`-compare-fn'.if.that
1c3e0 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 .is.non-nil."...(declare.(import
1c400 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 63 6f 6e 64 20 28 28 6e ant-return-value.t))...(cond.((n
1c420 75 6c 6c 20 6c 69 73 74 29 20 28 6c 69 73 74 20 28 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 ull.list).(list.())).........;;.
1c440 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 3a 20 61 20 74 72 61 76 65 72 73 61 6c 20 6f 66 20 60 6c 69 Optimization:.a.traversal.of.`li
1c460 73 74 27 20 69 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 3b st'.is.faster.than.the.........;
1c480 3b 20 72 6f 75 6e 64 20 74 72 69 70 20 76 69 61 20 60 64 61 73 68 2d 2d 75 6e 69 71 2d 70 65 72 ;.round.trip.via.`dash--uniq-per
1c4a0 6d 73 27 20 6f 72 20 60 64 61 73 68 2d 2d 6d 75 6c 74 69 2d 70 65 72 6d 73 27 2e 0a 20 20 20 20 ms'.or.`dash--multi-perms'......
1c4c0 20 20 20 20 28 28 64 61 73 68 2d 2d 6e 75 6d 62 65 72 73 3c 3d 20 6c 69 73 74 29 0a 20 20 20 20 ....((dash--numbers<=.list).....
1c4e0 20 20 20 20 20 28 64 61 73 68 2d 2d 6c 65 78 2d 70 65 72 6d 73 20 28 76 63 6f 6e 63 61 74 20 6c .....(dash--lex-perms.(vconcat.l
1c500 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 6c 65 74 20 28 28 66 72 65 71 73 20 28 2d 66 ist))).........((let.((freqs.(-f
1c520 72 65 71 75 65 6e 63 69 65 73 20 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b requencies.list)))............;;
1c540 20 49 73 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 64 69 73 74 69 6e 63 74 3f 0a 20 20 20 20 20 .Is.each.element.distinct?......
1c560 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 2d 2d 65 76 65 72 79 20 28 3d 20 28 63 64 72 20 69 ......(unless.(--every.(=.(cdr.i
1c580 74 29 20 31 29 20 66 72 65 71 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 73 68 2d t).1).freqs)..............(dash-
1c5a0 2d 6d 75 6c 74 69 2d 70 65 72 6d 73 20 6c 69 73 74 20 66 72 65 71 73 29 29 29 29 0a 20 20 20 20 -multi-perms.list.freqs)))).....
1c5c0 20 20 20 20 28 28 64 61 73 68 2d 2d 75 6e 69 71 2d 70 65 72 6d 73 20 6c 69 73 74 29 29 29 29 0a ....((dash--uniq-perms.list)))).
1c5e0 0a 28 64 65 66 75 6e 20 2d 69 6e 69 74 73 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 .(defun.-inits.(list)..."Return.
1c600 61 6c 6c 20 70 72 65 66 69 78 65 73 20 6f 66 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 all.prefixes.of.LIST."...(declar
1c620 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 e.(pure.t).(side-effect-free.t))
1c640 0a 20 20 28 6c 65 74 20 28 28 72 65 73 20 28 6c 69 73 74 20 6c 69 73 74 29 29 29 0a 20 20 20 20 ...(let.((res.(list.list))).....
1c660 28 73 65 74 71 20 6c 69 73 74 20 28 72 65 76 65 72 73 65 20 6c 69 73 74 29 29 0a 20 20 20 20 28 (setq.list.(reverse.list)).....(
1c680 77 68 69 6c 65 20 6c 69 73 74 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 72 65 76 65 72 73 65 20 while.list.......(push.(reverse.
1c6a0 28 21 63 64 72 20 6c 69 73 74 29 29 20 72 65 73 29 29 0a 20 20 20 20 72 65 73 29 29 0a 0a 28 64 (!cdr.list)).res)).....res))..(d
1c6c0 65 66 75 6e 20 2d 74 61 69 6c 73 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6c 6c efun.-tails.(list)..."Return.all
1c6e0 20 73 75 66 66 69 78 65 73 20 6f 66 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 .suffixes.of.LIST."...(declare.(
1c700 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 pure.t).(side-effect-free.t))...
1c720 28 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 20 23 27 63 6f 6e 73 20 6e 69 6c 20 6c (-reductions-r-from.#'cons.nil.l
1c740 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f 6d 6d 6f 6e 2d 70 72 65 66 69 78 20 28 26 72 ist))..(defun.-common-prefix.(&r
1c760 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6c 6f 6e 67 65 73 74 est.lists)..."Return.the.longest
1c780 20 63 6f 6d 6d 6f 6e 20 70 72 65 66 69 78 20 6f 66 20 4c 49 53 54 53 2e 22 0a 20 20 28 64 65 63 .common.prefix.of.LISTS."...(dec
1c7a0 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 lare.(pure.t).(side-effect-free.
1c7c0 74 29 29 0a 20 20 28 2d 2d 72 65 64 75 63 65 20 28 2d 2d 74 61 6b 65 2d 77 68 69 6c 65 20 28 61 t))...(--reduce.(--take-while.(a
1c7e0 6e 64 20 61 63 63 20 28 65 71 75 61 6c 20 28 70 6f 70 20 61 63 63 29 20 69 74 29 29 20 69 74 29 nd.acc.(equal.(pop.acc).it)).it)
1c800 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f .............lists))..(defun.-co
1c820 6d 6d 6f 6e 2d 73 75 66 66 69 78 20 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 22 52 65 74 mmon-suffix.(&rest.lists)..."Ret
1c840 75 72 6e 20 74 68 65 20 6c 6f 6e 67 65 73 74 20 63 6f 6d 6d 6f 6e 20 73 75 66 66 69 78 20 6f 66 urn.the.longest.common.suffix.of
1c860 20 4c 49 53 54 53 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 .LISTS."...(declare.(pure.t).(si
1c880 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6e 72 65 76 65 72 73 65 20 28 de-effect-free.t))...(nreverse.(
1c8a0 61 70 70 6c 79 20 23 27 2d 63 6f 6d 6d 6f 6e 2d 70 72 65 66 69 78 20 28 6d 61 70 63 61 72 20 23 apply.#'-common-prefix.(mapcar.#
1c8c0 27 72 65 76 65 72 73 65 20 6c 69 73 74 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f 6e 74 'reverse.lists))))..(defun.-cont
1c8e0 61 69 6e 73 3f 20 28 6c 69 73 74 20 65 6c 65 6d 65 6e 74 29 0a 20 20 22 52 65 74 75 72 6e 20 6e ains?.(list.element)..."Return.n
1c900 6f 6e 2d 6e 69 6c 20 69 66 20 4c 49 53 54 20 63 6f 6e 74 61 69 6e 73 20 45 4c 45 4d 45 4e 54 2e on-nil.if.LIST.contains.ELEMENT.
1c920 0a 0a 54 68 65 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 ..The.test.for.equality.is.done.
1c940 77 69 74 68 20 60 65 71 75 61 6c 27 2c 20 6f 72 20 77 69 74 68 20 60 2d 63 6f 6d 70 61 72 65 2d with.`equal',.or.with.`-compare-
1c960 66 6e 27 0a 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 20 20 41 73 20 77 69 74 68 fn'.if.that.is.non-nil...As.with
1c980 20 60 6d 65 6d 62 65 72 27 2c 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 0a 61 .`member',.the.return.value.is.a
1c9a0 63 74 75 61 6c 6c 79 20 74 68 65 20 74 61 69 6c 20 6f 66 20 4c 49 53 54 20 77 68 6f 73 65 20 63 ctually.the.tail.of.LIST.whose.c
1c9c0 61 72 20 69 73 20 45 4c 45 4d 45 4e 54 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 63 6f 6e 74 61 69 6e ar.is.ELEMENT...Alias:.`-contain
1c9e0 73 2d 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 s-p'."...(declare.(important-ret
1ca00 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 64 61 73 68 2d 2d urn-value.t))...(funcall.(dash--
1ca20 6d 65 6d 62 65 72 2d 66 6e 29 20 65 6c 65 6d 65 6e 74 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 61 member-fn).element.list))..(defa
1ca40 6c 69 61 73 20 27 2d 63 6f 6e 74 61 69 6e 73 2d 70 20 23 27 2d 63 6f 6e 74 61 69 6e 73 3f 29 0a lias.'-contains-p.#'-contains?).
1ca60 0a 28 64 65 66 75 6e 20 2d 73 61 6d 65 2d 69 74 65 6d 73 3f 20 28 6c 69 73 74 31 20 6c 69 73 74 .(defun.-same-items?.(list1.list
1ca80 32 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4c 49 53 54 31 20 61 6e 2)..."Return.non-nil.if.LIST1.an
1caa0 64 20 4c 49 53 54 32 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 64 69 73 74 69 6e 63 74 20 65 d.LIST2.have.the.same.distinct.e
1cac0 6c 65 6d 65 6e 74 73 2e 0a 0a 54 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 65 6c 65 6d 65 lements...The.order.of.the.eleme
1cae0 6e 74 73 20 69 6e 20 74 68 65 20 6c 69 73 74 73 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 74 65 72 nts.in.the.lists.does.not.matter
1cb00 2e 20 20 54 68 65 0a 6c 69 73 74 73 20 6d 61 79 20 62 65 20 6f 66 20 64 69 66 66 65 72 65 6e 74 ...The.lists.may.be.of.different
1cb20 20 6c 65 6e 67 74 68 73 2c 20 69 2e 65 2e 2c 20 63 6f 6e 74 61 69 6e 20 64 75 70 6c 69 63 61 74 .lengths,.i.e.,.contain.duplicat
1cb40 65 0a 65 6c 65 6d 65 6e 74 73 2e 20 20 54 68 65 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 6c 69 e.elements...The.test.for.equali
1cb60 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 60 65 71 75 61 6c 27 2c 20 6f 72 20 77 69 74 68 ty.is.done.with.`equal',.or.with
1cb80 0a 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 20 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d 6e 69 .`-compare-fn'.if.that.is.non-ni
1cba0 6c 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 73 61 6d 65 2d 69 74 65 6d 73 2d 70 27 2e 22 0a 20 20 28 l...Alias:.`-same-items-p'."...(
1cbc0 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 declare.(important-return-value.
1cbe0 74 29 29 0a 20 20 28 6c 65 74 20 28 74 65 73 74 20 6c 65 6e 31 20 6c 65 6e 32 29 0a 20 20 20 20 t))...(let.(test.len1.len2).....
1cc00 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 28 6f 72 20 6c 69 73 74 31 20 6c 69 73 74 32 29 29 29 0a (cond.((null.(or.list1.list2))).
1cc20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 28 61 6e 64 20 6c 69 73 74 31 20 6c 69 73 74 ..........((null.(and.list1.list
1cc40 32 29 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 20 61 20 68 61 73 68 2)).nil)...........;;.Use.a.hash
1cc60 20 74 61 62 6c 65 20 69 66 20 60 2d 63 6f 6d 70 61 72 65 2d 66 6e 27 20 69 73 20 61 20 6b 6e 6f .table.if.`-compare-fn'.is.a.kno
1cc80 77 6e 20 68 61 73 68 20 74 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 65 73 74 20 wn.hash.table...........;;.test.
1cca0 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 65 69 74 68 65 72 20 6c 69 73 74 20 69 73 20 6c 6f 6e 67 function.and.either.list.is.long
1ccc0 20 65 6e 6f 75 67 68 2e 0a 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 65 74 71 20 74 .enough............((and.(setq.t
1cce0 65 73 74 20 28 64 61 73 68 2d 2d 68 61 73 68 2d 74 65 73 74 2d 66 6e 29 29 0a 20 20 20 20 20 20 est.(dash--hash-test-fn)).......
1cd00 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 6e 31 20 28 6c 65 6e 67 74 68 20 6c 69 73 ..........(setq.len1.(length.lis
1cd20 74 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 6e 32 20 t1)).................(setq.len2.
1cd40 28 6c 65 6e 67 74 68 20 6c 69 73 74 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (length.list2)).................
1cd60 28 3e 20 28 6d 61 78 20 6c 65 6e 31 20 6c 65 6e 32 29 20 64 61 73 68 2d 2d 73 68 6f 72 74 2d 6c (>.(max.len1.len2).dash--short-l
1cd80 69 73 74 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 ist-length))............(let.((h
1cda0 74 31 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 74 65 73 74 20 3a t1.(make-hash-table.:test.test.:
1cdc0 73 69 7a 65 20 6c 65 6e 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 size.len1))..................(ht
1cde0 32 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 74 65 73 74 20 3a 73 2.(make-hash-table.:test.test.:s
1ce00 69 7a 65 20 6c 65 6e 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 65 61 63 68 ize.len2)))..............(--each
1ce20 20 6c 69 73 74 31 20 28 70 75 74 68 61 73 68 20 69 74 20 74 20 68 74 31 29 29 0a 20 20 20 20 20 .list1.(puthash.it.t.ht1))......
1ce40 20 20 20 20 20 20 20 20 3b 3b 20 4d 6f 76 65 20 76 69 73 69 74 65 64 20 65 6c 65 6d 65 6e 74 73 ........;;.Move.visited.elements
1ce60 20 66 72 6f 6d 20 60 68 74 31 27 20 74 6f 20 60 68 74 32 27 2e 20 20 54 68 69 73 20 77 61 79 2c .from.`ht1'.to.`ht2'...This.way,
1ce80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 76 69 73 69 74 69 6e 67 20 61 6c 6c ..............;;.if.visiting.all
1cea0 20 6f 66 20 60 6c 69 73 74 32 27 20 6c 65 61 76 65 73 20 60 68 74 31 27 20 65 6d 70 74 79 2c 20 .of.`list2'.leaves.`ht1'.empty,.
1cec0 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 then..............;;.all.element
1cee0 73 20 66 72 6f 6d 20 62 6f 74 68 20 6c 69 73 74 73 20 68 61 76 65 20 62 65 65 6e 20 61 63 63 6f s.from.both.lists.have.been.acco
1cf00 75 6e 74 65 64 20 66 6f 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 2d 2d unted.for...............(and.(--
1cf20 65 76 65 72 79 20 28 63 6f 6e 64 20 28 28 67 65 74 68 61 73 68 20 69 74 20 68 74 31 29 0a 20 20 every.(cond.((gethash.it.ht1)...
1cf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1cf60 28 72 65 6d 68 61 73 68 20 69 74 20 68 74 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (remhash.it.ht1)................
1cf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 69 74 20 74 ...................(puthash.it.t
1cfa0 20 68 74 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .ht2))..........................
1cfc0 20 20 20 20 20 20 20 20 28 28 67 65 74 68 61 73 68 20 69 74 20 68 74 32 29 29 29 0a 20 20 20 20 ........((gethash.it.ht2))).....
1cfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 32 29 0a 20 20 .......................list2)...
1d000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a 65 72 6f 70 20 28 68 61 73 68 2d 74 61 62 ................(zerop.(hash-tab
1d020 6c 65 2d 63 6f 75 6e 74 20 68 74 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 le-count.ht1)))))...........((le
1d040 74 20 28 28 6d 65 6d 62 65 72 20 28 64 61 73 68 2d 2d 6d 65 6d 62 65 72 2d 66 6e 29 29 29 0a 20 t.((member.(dash--member-fn)))..
1d060 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 2d 2d 61 6c 6c 3f 20 28 66 75 6e 63 61 6c ............(and.(--all?.(funcal
1d080 6c 20 6d 65 6d 62 65 72 20 69 74 20 6c 69 73 74 32 29 20 6c 69 73 74 31 29 0a 20 20 20 20 20 20 l.member.it.list2).list1).......
1d0a0 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 61 6c 6c 3f 20 28 66 75 6e 63 61 6c 6c 20 6d 65 6d ............(--all?.(funcall.mem
1d0c0 62 65 72 20 69 74 20 6c 69 73 74 31 29 20 6c 69 73 74 32 29 29 29 29 29 29 29 0a 0a 28 64 65 66 ber.it.list1).list2)))))))..(def
1d0e0 61 6c 69 61 73 20 27 2d 73 61 6d 65 2d 69 74 65 6d 73 2d 70 20 23 27 2d 73 61 6d 65 2d 69 74 65 alias.'-same-items-p.#'-same-ite
1d100 6d 73 3f 29 0a 0a 28 64 65 66 75 6e 20 2d 69 73 2d 70 72 65 66 69 78 3f 20 28 70 72 65 66 69 78 ms?)..(defun.-is-prefix?.(prefix
1d120 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 50 52 45 46 .list)..."Return.non-nil.if.PREF
1d140 49 58 20 69 73 20 61 20 70 72 65 66 69 78 20 6f 66 20 4c 49 53 54 2e 0a 0a 41 6c 69 61 73 3a 20 IX.is.a.prefix.of.LIST...Alias:.
1d160 60 2d 69 73 2d 70 72 65 66 69 78 2d 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 `-is-prefix-p'."...(declare.(pur
1d180 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 2d 2d e.t).(side-effect-free.t))...(--
1d1a0 65 61 63 68 2d 77 68 69 6c 65 20 6c 69 73 74 20 28 61 6e 64 20 28 65 71 75 61 6c 20 28 63 61 72 each-while.list.(and.(equal.(car
1d1c0 20 70 72 65 66 69 78 29 20 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .prefix).it)....................
1d1e0 20 20 20 20 20 20 20 28 21 63 64 72 20 70 72 65 66 69 78 29 29 29 0a 20 20 28 6e 75 6c 6c 20 70 .......(!cdr.prefix)))...(null.p
1d200 72 65 66 69 78 29 29 0a 0a 28 64 65 66 75 6e 20 2d 69 73 2d 73 75 66 66 69 78 3f 20 28 73 75 66 refix))..(defun.-is-suffix?.(suf
1d220 66 69 78 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 53 fix.list)..."Return.non-nil.if.S
1d240 55 46 46 49 58 20 69 73 20 61 20 73 75 66 66 69 78 20 6f 66 20 4c 49 53 54 2e 0a 0a 41 6c 69 61 UFFIX.is.a.suffix.of.LIST...Alia
1d260 73 3a 20 60 2d 69 73 2d 73 75 66 66 69 78 2d 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 s:.`-is-suffix-p'."...(declare.(
1d280 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 pure.t).(side-effect-free.t))...
1d2a0 28 65 71 75 61 6c 20 73 75 66 66 69 78 20 28 6c 61 73 74 20 6c 69 73 74 20 28 6c 65 6e 67 74 68 (equal.suffix.(last.list.(length
1d2c0 20 73 75 66 66 69 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 69 73 2d 69 6e 66 69 78 3f 20 28 .suffix))))..(defun.-is-infix?.(
1d2e0 69 6e 66 69 78 20 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 infix.list)..."Return.non-nil.if
1d300 20 49 4e 46 49 58 20 69 73 20 69 6e 66 69 78 20 6f 66 20 4c 49 53 54 2e 0a 0a 54 68 69 73 20 6f .INFIX.is.infix.of.LIST...This.o
1d320 70 65 72 61 74 69 6f 6e 20 72 75 6e 73 20 69 6e 20 4f 28 6e 5e 32 29 20 74 69 6d 65 0a 0a 41 6c peration.runs.in.O(n^2).time..Al
1d340 69 61 73 3a 20 60 2d 69 73 2d 69 6e 66 69 78 2d 70 27 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 ias:.`-is-infix-p'"...(declare.(
1d360 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 pure.t).(side-effect-free.t))...
1d380 28 6c 65 74 20 28 64 6f 6e 65 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e 6f 74 (let.(done).....(while.(and.(not
1d3a0 20 64 6f 6e 65 29 20 6c 69 73 74 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 6f 6e 65 20 28 2d .done).list).......(setq.done.(-
1d3c0 69 73 2d 70 72 65 66 69 78 3f 20 69 6e 66 69 78 20 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 21 is-prefix?.infix.list)).......(!
1d3e0 63 64 72 20 6c 69 73 74 29 29 0a 20 20 20 20 64 6f 6e 65 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 cdr.list)).....done))..(defalias
1d400 20 27 2d 69 73 2d 70 72 65 66 69 78 2d 70 20 27 2d 69 73 2d 70 72 65 66 69 78 3f 29 0a 28 64 65 .'-is-prefix-p.'-is-prefix?).(de
1d420 66 61 6c 69 61 73 20 27 2d 69 73 2d 73 75 66 66 69 78 2d 70 20 27 2d 69 73 2d 73 75 66 66 69 78 falias.'-is-suffix-p.'-is-suffix
1d440 3f 29 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 69 73 2d 69 6e 66 69 78 2d 70 20 27 2d 69 73 2d 69 ?).(defalias.'-is-infix-p.'-is-i
1d460 6e 66 69 78 3f 29 0a 0a 28 64 65 66 75 6e 20 2d 73 6f 72 74 20 28 63 6f 6d 70 61 72 61 74 6f 72 nfix?)..(defun.-sort.(comparator
1d480 20 6c 69 73 74 29 0a 20 20 22 53 6f 72 74 20 4c 49 53 54 2c 20 73 74 61 62 6c 79 2c 20 63 6f 6d .list)..."Sort.LIST,.stably,.com
1d4a0 70 61 72 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 75 73 69 6e 67 20 43 4f 4d 50 41 52 41 54 4f 52 paring.elements.using.COMPARATOR
1d4c0 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 73 6f 72 74 65 64 20 6c 69 73 74 2e 20 20 4c 49 53 54 20 ..Return.the.sorted.list...LIST.
1d4e0 69 73 20 4e 4f 54 20 6d 6f 64 69 66 69 65 64 20 62 79 20 73 69 64 65 20 65 66 66 65 63 74 73 2e is.NOT.modified.by.side.effects.
1d500 0a 43 4f 4d 50 41 52 41 54 4f 52 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 65 .COMPARATOR.is.called.with.two.e
1d520 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 72 65 74 75 lements.of.LIST,.and.should.retu
1d540 72 6e 20 6e 6f 6e 2d 6e 69 6c 0a 69 66 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 rn.non-nil.if.the.first.element.
1d560 73 68 6f 75 6c 64 20 73 6f 72 74 20 62 65 66 6f 72 65 20 74 68 65 20 73 65 63 6f 6e 64 2e 22 0a should.sort.before.the.second.".
1d580 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c ..(declare.(important-return-val
1d5a0 75 65 20 74 29 29 0a 20 20 3b 3b 20 4e 6f 74 20 79 65 74 20 77 6f 72 74 68 20 63 68 61 6e 67 69 ue.t))...;;.Not.yet.worth.changi
1d5c0 6e 67 20 74 6f 20 28 73 6f 72 74 20 6c 69 73 74 20 3a 6c 65 73 73 70 20 63 6f 6d 70 61 72 61 74 ng.to.(sort.list.:lessp.comparat
1d5e0 6f 72 29 3b 0a 20 20 3b 3b 20 73 74 69 6c 6c 20 73 65 65 6d 73 20 61 73 20 66 61 73 74 20 6f 72 or);...;;.still.seems.as.fast.or
1d600 20 73 6c 69 67 68 74 6c 79 20 66 61 73 74 65 72 2e 0a 20 20 28 73 6f 72 74 20 28 63 6f 70 79 2d .slightly.faster....(sort.(copy-
1d620 73 65 71 75 65 6e 63 65 20 6c 69 73 74 29 20 63 6f 6d 70 61 72 61 74 6f 72 29 29 0a 0a 28 64 65 sequence.list).comparator))..(de
1d640 66 6d 61 63 72 6f 20 2d 2d 73 6f 72 74 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 fmacro.--sort.(form.list)..."Ana
1d660 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 73 6f 72 74 27 2e 22 0a 20 20 28 64 65 63 6c phoric.form.of.`-sort'."...(decl
1d680 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 are.(debug.(def-form.form)))...`
1d6a0 28 2d 73 6f 72 74 20 28 6c 61 6d 62 64 61 20 28 69 74 20 6f 74 68 65 72 29 20 28 69 67 6e 6f 72 (-sort.(lambda.(it.other).(ignor
1d6c0 65 20 69 74 20 6f 74 68 65 72 29 20 2c 66 6f 72 6d 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 e.it.other).,form).,list))..(def
1d6e0 75 6e 20 2d 6c 69 73 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 26 72 65 73 74 20 61 72 un.-list.(&optional.arg.&rest.ar
1d700 67 73 29 0a 20 20 22 45 6e 73 75 72 65 20 41 52 47 20 69 73 20 61 20 6c 69 73 74 2e 0a 49 66 20 gs)..."Ensure.ARG.is.a.list..If.
1d720 41 52 47 20 69 73 20 61 6c 72 65 61 64 79 20 61 20 6c 69 73 74 2c 20 72 65 74 75 72 6e 20 69 74 ARG.is.already.a.list,.return.it
1d740 20 61 73 20 69 73 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 2e 0a 4f 74 68 65 72 77 69 73 65 2c 20 .as.is.(not.a.copy)..Otherwise,.
1d760 72 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 41 52 47 20 61 73 20 69 74 return.a.new.list.with.ARG.as.it
1d780 73 20 6f 6e 6c 79 20 65 6c 65 6d 65 6e 74 2e 0a 0a 41 6e 6f 74 68 65 72 20 73 75 70 70 6f 72 74 s.only.element...Another.support
1d7a0 65 64 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e 20 69 73 20 28 2d 6c 69 73 74 20 ed.calling.convention.is.(-list.
1d7c0 26 72 65 73 74 20 41 52 47 53 29 2e 0a 49 6e 20 74 68 69 73 20 63 61 73 65 2c 20 69 66 20 41 52 &rest.ARGS)..In.this.case,.if.AR
1d7e0 47 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 2c 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 G.is.not.a.list,.a.new.list.with
1d800 20 61 6c 6c 20 6f 66 0a 41 52 47 53 20 61 73 20 65 6c 65 6d 65 6e 74 73 20 69 73 20 72 65 74 75 .all.of.ARGS.as.elements.is.retu
1d820 72 6e 65 64 2e 20 20 54 68 69 73 20 75 73 65 20 69 73 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 rned...This.use.is.supported.for
1d840 0a 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20 69 73 20 6f .backward.compatibility.and.is.o
1d860 74 68 65 72 77 69 73 65 20 64 65 70 72 65 63 61 74 65 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 therwise.deprecated."...(declare
1d880 20 28 61 64 76 65 72 74 69 73 65 64 2d 63 61 6c 6c 69 6e 67 2d 63 6f 6e 76 65 6e 74 69 6f 6e 20 .(advertised-calling-convention.
1d8a0 28 61 72 67 29 20 22 32 2e 31 38 2e 30 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 75 72 65 (arg)."2.18.0")............(pure
1d8c0 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 .t).(side-effect-free.error-free
1d8e0 29 29 0a 20 20 28 69 66 20 28 6c 69 73 74 70 20 61 72 67 29 20 61 72 67 20 28 63 6f 6e 73 20 61 ))...(if.(listp.arg).arg.(cons.a
1d900 72 67 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 65 70 65 61 74 20 28 6e 20 78 29 rg.args)))..(defun.-repeat.(n.x)
1d920 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 6c 65 6e 67 74 68 20 ..."Return.a.new.list.of.length.
1d940 4e 20 77 69 74 68 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 62 65 69 6e 67 20 58 2e 0a 52 65 74 N.with.each.element.being.X..Ret
1d960 75 72 6e 20 6e 69 6c 20 69 66 20 4e 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 31 2e 22 0a 20 20 urn.nil.if.N.is.less.than.1."...
1d980 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 (declare.(side-effect-free.t))..
1d9a0 20 28 61 6e 64 20 28 3e 3d 20 6e 20 30 29 20 28 6d 61 6b 65 2d 6c 69 73 74 20 6e 20 78 29 29 29 .(and.(>=.n.0).(make-list.n.x)))
1d9c0 0a 0a 28 64 65 66 75 6e 20 2d 73 75 6d 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 ..(defun.-sum.(list)..."Return.t
1d9e0 68 65 20 73 75 6d 20 6f 66 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 he.sum.of.LIST."...(declare.(pur
1da00 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 61 70 e.t).(side-effect-free.t))...(ap
1da20 70 6c 79 20 23 27 2b 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 75 6e 6e 69 6e 67 2d ply.#'+.list))..(defun.-running-
1da40 73 75 6d 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 sum.(list)..."Return.a.list.with
1da60 20 72 75 6e 6e 69 6e 67 20 73 75 6d 73 20 6f 66 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 2e 0a .running.sums.of.items.in.LIST..
1da80 4c 49 53 54 20 6d 75 73 74 20 62 65 20 6e 6f 6e 2d 65 6d 70 74 79 2e 22 0a 20 20 28 64 65 63 6c LIST.must.be.non-empty."...(decl
1daa0 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 are.(pure.t).(side-effect-free.t
1dac0 29 29 0a 20 20 28 6f 72 20 6c 69 73 74 20 28 73 69 67 6e 61 6c 20 27 77 72 6f 6e 67 2d 74 79 70 ))...(or.list.(signal.'wrong-typ
1dae0 65 2d 61 72 67 75 6d 65 6e 74 20 28 6c 69 73 74 20 23 27 63 6f 6e 73 70 20 6c 69 73 74 29 29 29 e-argument.(list.#'consp.list)))
1db00 0a 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 20 23 27 2b 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 ...(-reductions.#'+.list))..(def
1db20 75 6e 20 2d 70 72 6f 64 75 63 74 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 un.-product.(list)..."Return.the
1db40 20 70 72 6f 64 75 63 74 20 6f 66 20 4c 49 53 54 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 .product.of.LIST."...(declare.(p
1db60 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 ure.t).(side-effect-free.t))...(
1db80 61 70 70 6c 79 20 23 27 2a 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 75 6e 6e 69 6e apply.#'*.list))..(defun.-runnin
1dba0 67 2d 70 72 6f 64 75 63 74 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 g-product.(list)..."Return.a.lis
1dbc0 74 20 77 69 74 68 20 72 75 6e 6e 69 6e 67 20 70 72 6f 64 75 63 74 73 20 6f 66 20 69 74 65 6d 73 t.with.running.products.of.items
1dbe0 20 69 6e 20 4c 49 53 54 2e 0a 4c 49 53 54 20 6d 75 73 74 20 62 65 20 6e 6f 6e 2d 65 6d 70 74 79 .in.LIST..LIST.must.be.non-empty
1dc00 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 ."...(declare.(pure.t).(side-eff
1dc20 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6f 72 20 6c 69 73 74 20 28 73 69 67 6e 61 6c 20 ect-free.t))...(or.list.(signal.
1dc40 27 77 72 6f 6e 67 2d 74 79 70 65 2d 61 72 67 75 6d 65 6e 74 20 28 6c 69 73 74 20 23 27 63 6f 6e 'wrong-type-argument.(list.#'con
1dc60 73 70 20 6c 69 73 74 29 29 29 0a 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 20 23 27 2a 20 6c 69 sp.list)))...(-reductions.#'*.li
1dc80 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6d 61 78 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 st))..(defun.-max.(list)..."Retu
1dca0 72 6e 20 74 68 65 20 6c 61 72 67 65 73 74 20 76 61 6c 75 65 20 66 72 6f 6d 20 4c 49 53 54 20 6f rn.the.largest.value.from.LIST.o
1dcc0 66 20 6e 75 6d 62 65 72 73 20 6f 72 20 6d 61 72 6b 65 72 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 f.numbers.or.markers."...(declar
1dce0 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 e.(pure.t).(side-effect-free.t))
1dd00 0a 20 20 28 61 70 70 6c 79 20 23 27 6d 61 78 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d ...(apply.#'max.list))..(defun.-
1dd20 6d 69 6e 20 28 6c 69 73 74 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 6d 61 6c 6c 65 73 min.(list)..."Return.the.smalles
1dd40 74 20 76 61 6c 75 65 20 66 72 6f 6d 20 4c 49 53 54 20 6f 66 20 6e 75 6d 62 65 72 73 20 6f 72 20 t.value.from.LIST.of.numbers.or.
1dd60 6d 61 72 6b 65 72 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 markers."...(declare.(pure.t).(s
1dd80 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 61 70 70 6c 79 20 23 27 6d ide-effect-free.t))...(apply.#'m
1dda0 69 6e 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6d 61 78 2d 62 79 20 28 63 6f 6d 70 61 in.list))..(defun.-max-by.(compa
1ddc0 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 22 54 61 6b 65 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e rator.list)..."Take.a.comparison
1dde0 20 66 75 6e 63 74 69 6f 6e 20 43 4f 4d 50 41 52 41 54 4f 52 20 61 6e 64 20 61 20 4c 49 53 54 20 .function.COMPARATOR.and.a.LIST.
1de00 61 6e 64 20 72 65 74 75 72 6e 0a 74 68 65 20 67 72 65 61 74 65 73 74 20 65 6c 65 6d 65 6e 74 20 and.return.the.greatest.element.
1de20 6f 66 20 74 68 65 20 6c 69 73 74 20 62 79 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 of.the.list.by.the.comparison.fu
1de40 6e 63 74 69 6f 6e 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 63 6f 6d 62 69 6e 61 74 6f 72 20 60 2d 6f nction...See.also.combinator.`-o
1de60 6e 27 20 77 68 69 63 68 20 63 61 6e 20 74 72 61 6e 73 66 6f 72 6d 20 74 68 65 20 76 61 6c 75 65 n'.which.can.transform.the.value
1de80 73 20 62 65 66 6f 72 65 0a 63 6f 6d 70 61 72 69 6e 67 20 74 68 65 6d 2e 22 0a 20 20 28 64 65 63 s.before.comparing.them."...(dec
1dea0 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 lare.(important-return-value.t))
1dec0 0a 20 20 28 2d 2d 72 65 64 75 63 65 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6d 70 61 72 ...(--reduce.(if.(funcall.compar
1dee0 61 74 6f 72 20 69 74 20 61 63 63 29 20 69 74 20 61 63 63 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 ator.it.acc).it.acc).list))..(de
1df00 66 75 6e 20 2d 6d 69 6e 2d 62 79 20 28 63 6f 6d 70 61 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 fun.-min-by.(comparator.list)...
1df20 22 54 61 6b 65 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 43 4f 4d 50 "Take.a.comparison.function.COMP
1df40 41 52 41 54 4f 52 20 61 6e 64 20 61 20 4c 49 53 54 20 61 6e 64 20 72 65 74 75 72 6e 0a 74 68 65 ARATOR.and.a.LIST.and.return.the
1df60 20 6c 65 61 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 6c 69 73 74 20 62 79 20 74 68 .least.element.of.the.list.by.th
1df80 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 53 65 65 20 61 6c 73 6f e.comparison.function...See.also
1dfa0 20 63 6f 6d 62 69 6e 61 74 6f 72 20 60 2d 6f 6e 27 20 77 68 69 63 68 20 63 61 6e 20 74 72 61 6e .combinator.`-on'.which.can.tran
1dfc0 73 66 6f 72 6d 20 74 68 65 20 76 61 6c 75 65 73 20 62 65 66 6f 72 65 0a 63 6f 6d 70 61 72 69 6e sform.the.values.before.comparin
1dfe0 67 20 74 68 65 6d 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 g.them."...(declare.(important-r
1e000 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 2d 2d 72 65 64 75 63 65 20 28 69 66 20 eturn-value.t))...(--reduce.(if.
1e020 28 66 75 6e 63 61 6c 6c 20 63 6f 6d 70 61 72 61 74 6f 72 20 69 74 20 61 63 63 29 20 61 63 63 20 (funcall.comparator.it.acc).acc.
1e040 69 74 29 20 6c 69 73 74 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 6d 61 78 2d 62 79 20 28 it).list))..(defmacro.--max-by.(
1e060 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 form.list)..."Anaphoric.version.
1e080 6f 66 20 60 2d 6d 61 78 2d 62 79 27 2e 0a 0a 54 68 65 20 69 74 65 6d 73 20 66 6f 72 20 74 68 65 of.`-max-by'...The.items.for.the
1e0a0 20 63 6f 6d 70 61 72 61 74 6f 72 20 66 6f 72 6d 20 61 72 65 20 65 78 70 6f 73 65 64 20 61 73 20 .comparator.form.are.exposed.as.
1e0c0 5c 22 69 74 5c 22 20 61 6e 64 20 5c 22 6f 74 68 65 72 5c 22 2e 22 0a 20 20 28 64 65 63 6c 61 72 \"it\".and.\"other\"."...(declar
1e0e0 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d e.(debug.(def-form.form)))...`(-
1e100 6d 61 78 2d 62 79 20 28 6c 61 6d 62 64 61 20 28 69 74 20 6f 74 68 65 72 29 20 28 69 67 6e 6f 72 max-by.(lambda.(it.other).(ignor
1e120 65 20 69 74 20 6f 74 68 65 72 29 20 2c 66 6f 72 6d 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 e.it.other).,form).,list))..(def
1e140 6d 61 63 72 6f 20 2d 2d 6d 69 6e 2d 62 79 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e macro.--min-by.(form.list)..."An
1e160 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 2d 6d 69 6e 2d 62 79 27 2e 0a 0a 54 aphoric.version.of.`-min-by'...T
1e180 68 65 20 69 74 65 6d 73 20 66 6f 72 20 74 68 65 20 63 6f 6d 70 61 72 61 74 6f 72 20 66 6f 72 6d he.items.for.the.comparator.form
1e1a0 20 61 72 65 20 65 78 70 6f 73 65 64 20 61 73 20 5c 22 69 74 5c 22 20 61 6e 64 20 5c 22 6f 74 68 .are.exposed.as.\"it\".and.\"oth
1e1c0 65 72 5c 22 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f er\"."...(declare.(debug.(def-fo
1e1e0 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 6d 69 6e 2d 62 79 20 28 6c 61 6d 62 64 61 20 28 rm.form)))...`(-min-by.(lambda.(
1e200 69 74 20 6f 74 68 65 72 29 20 28 69 67 6e 6f 72 65 20 69 74 20 6f 74 68 65 72 29 20 2c 66 6f 72 it.other).(ignore.it.other).,for
1e220 6d 29 20 2c 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 69 6f 74 61 20 28 63 6f 75 6e 74 20 m).,list))..(defun.-iota.(count.
1e240 26 6f 70 74 69 6f 6e 61 6c 20 73 74 61 72 74 20 73 74 65 70 29 0a 20 20 22 52 65 74 75 72 6e 20 &optional.start.step)..."Return.
1e260 61 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 43 4f 55 4e 54 20 6e 75 6d 62 65 72 73 2e a.list.containing.COUNT.numbers.
1e280 0a 53 74 61 72 74 73 20 66 72 6f 6d 20 53 54 41 52 54 20 61 6e 64 20 61 64 64 73 20 53 54 45 50 .Starts.from.START.and.adds.STEP
1e2a0 20 65 61 63 68 20 74 69 6d 65 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 53 54 41 52 54 20 69 .each.time...The.default.START.i
1e2c0 73 0a 7a 65 72 6f 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 53 54 45 50 20 69 73 20 31 2e 0a 54 s.zero,.the.default.STEP.is.1..T
1e2e0 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 69 74 73 20 6e 61 6d 65 20 66 72 6f 6d his.function.takes.its.name.from
1e300 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 70 72 69 6d 69 74 69 76 65 20 69 6e 0a .the.corresponding.primitive.in.
1e320 74 68 65 20 41 50 4c 20 6c 61 6e 67 75 61 67 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 the.APL.language."...(declare.(s
1e340 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 6e ide-effect-free.t))...(unless.(n
1e360 61 74 6e 75 6d 70 20 63 6f 75 6e 74 29 0a 20 20 20 20 28 73 69 67 6e 61 6c 20 27 77 72 6f 6e 67 atnump.count).....(signal.'wrong
1e380 2d 74 79 70 65 2d 61 72 67 75 6d 65 6e 74 20 28 6c 69 73 74 20 23 27 6e 61 74 6e 75 6d 70 20 63 -type-argument.(list.#'natnump.c
1e3a0 6f 75 6e 74 29 29 29 0a 20 20 28 6f 72 20 73 74 61 72 74 20 28 73 65 74 71 20 73 74 61 72 74 20 ount)))...(or.start.(setq.start.
1e3c0 30 29 29 0a 20 20 28 6f 72 20 73 74 65 70 20 28 73 65 74 71 20 73 74 65 70 20 31 29 29 0a 20 20 0))...(or.step.(setq.step.1))...
1e3e0 28 69 66 20 28 7a 65 72 6f 70 20 73 74 65 70 29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6c 69 73 (if.(zerop.step).......(make-lis
1e400 74 20 63 6f 75 6e 74 20 73 74 61 72 74 29 0a 20 20 20 20 28 2d 2d 69 74 65 72 61 74 65 20 28 2b t.count.start).....(--iterate.(+
1e420 20 69 74 20 73 74 65 70 29 20 73 74 61 72 74 20 63 6f 75 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e .it.step).start.count)))..(defun
1e440 20 2d 66 69 78 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 74 68 65 20 28 .-fix.(fn.list)..."Compute.the.(
1e460 6c 65 61 73 74 29 20 66 69 78 70 6f 69 6e 74 20 6f 66 20 46 4e 20 77 69 74 68 20 69 6e 69 74 69 least).fixpoint.of.FN.with.initi
1e480 61 6c 20 69 6e 70 75 74 20 4c 49 53 54 2e 0a 0a 46 4e 20 69 73 20 63 61 6c 6c 65 64 20 61 74 20 al.input.LIST...FN.is.called.at.
1e4a0 6c 65 61 73 74 20 6f 6e 63 65 2c 20 72 65 73 75 6c 74 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 least.once,.results.are.compared
1e4c0 20 77 69 74 68 20 60 65 71 75 61 6c 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f .with.`equal'."...(declare.(impo
1e4e0 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 rtant-return-value.t))...(let.((
1e500 72 65 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 68 69 6c re.(funcall.fn.list))).....(whil
1e520 65 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 6c 69 73 74 20 72 65 29 29 0a 20 20 20 20 20 20 28 73 e.(not.(equal.list.re)).......(s
1e540 65 74 71 20 6c 69 73 74 20 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 20 28 66 75 6e etq.list.re).......(setq.re.(fun
1e560 63 61 6c 6c 20 66 6e 20 72 65 29 29 29 0a 20 20 20 20 72 65 29 29 0a 0a 28 64 65 66 6d 61 63 72 call.fn.re))).....re))..(defmacr
1e580 6f 20 2d 2d 66 69 78 20 28 66 6f 72 6d 20 6c 69 73 74 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 o.--fix.(form.list)..."Anaphoric
1e5a0 20 66 6f 72 6d 20 6f 66 20 60 2d 66 69 78 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 .form.of.`-fix'."...(declare.(de
1e5c0 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 66 69 78 20 28 bug.(def-form.form)))...`(-fix.(
1e5e0 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 66 6f 72 6d 29 20 2c lambda.(it).(ignore.it).,form).,
1e600 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 2d 75 6e 66 6f 6c 64 20 28 66 75 6e 20 73 65 65 64 list))..(defun.-unfold.(fun.seed
1e620 29 0a 20 20 22 42 75 69 6c 64 20 61 20 6c 69 73 74 20 66 72 6f 6d 20 53 45 45 44 20 75 73 69 6e )..."Build.a.list.from.SEED.usin
1e640 67 20 46 55 4e 2e 0a 0a 54 68 69 73 20 69 73 20 5c 22 64 75 61 6c 5c 22 20 6f 70 65 72 61 74 69 g.FUN...This.is.\"dual\".operati
1e660 6f 6e 20 74 6f 20 60 2d 72 65 64 75 63 65 2d 72 27 3a 20 77 68 69 6c 65 20 2d 72 65 64 75 63 65 on.to.`-reduce-r':.while.-reduce
1e680 2d 72 0a 63 6f 6e 73 75 6d 65 73 20 61 20 6c 69 73 74 20 74 6f 20 70 72 6f 64 75 63 65 20 61 20 -r.consumes.a.list.to.produce.a.
1e6a0 73 69 6e 67 6c 65 20 76 61 6c 75 65 2c 20 60 2d 75 6e 66 6f 6c 64 27 20 74 61 6b 65 73 20 61 0a single.value,.`-unfold'.takes.a.
1e6c0 73 65 65 64 20 76 61 6c 75 65 20 61 6e 64 20 62 75 69 6c 64 73 20 61 20 28 70 6f 74 65 6e 74 69 seed.value.and.builds.a.(potenti
1e6e0 61 6c 6c 79 20 69 6e 66 69 6e 69 74 65 21 29 20 6c 69 73 74 2e 0a 0a 46 55 4e 20 73 68 6f 75 6c ally.infinite!).list...FUN.shoul
1e700 64 20 72 65 74 75 72 6e 20 6e 69 6c 20 74 6f 20 73 74 6f 70 20 74 68 65 20 67 65 6e 65 72 61 74 d.return.nil.to.stop.the.generat
1e720 69 6e 67 20 70 72 6f 63 65 73 73 2c 20 6f 72 20 61 0a 63 6f 6e 73 20 28 41 20 2e 20 42 29 2c 20 ing.process,.or.a.cons.(A...B),.
1e740 77 68 65 72 65 20 41 20 77 69 6c 6c 20 62 65 20 70 72 65 70 65 6e 64 65 64 20 74 6f 20 74 68 65 where.A.will.be.prepended.to.the
1e760 20 72 65 73 75 6c 74 20 61 6e 64 20 42 20 69 73 0a 74 68 65 20 6e 65 77 20 73 65 65 64 2e 22 0a .result.and.B.is.the.new.seed.".
1e780 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c ..(declare.(important-return-val
1e7a0 75 65 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 6c 61 73 74 20 28 66 75 6e 63 61 6c 6c 20 66 75 ue.t))...(let.((last.(funcall.fu
1e7c0 6e 20 73 65 65 64 29 29 20 72 29 0a 20 20 20 20 28 77 68 69 6c 65 20 6c 61 73 74 0a 20 20 20 20 n.seed)).r).....(while.last.....
1e7e0 20 20 28 70 75 73 68 20 28 63 61 72 20 6c 61 73 74 29 20 72 29 0a 20 20 20 20 20 20 28 73 65 74 ..(push.(car.last).r).......(set
1e800 71 20 6c 61 73 74 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 20 28 63 64 72 20 6c 61 73 74 29 29 29 q.last.(funcall.fun.(cdr.last)))
1e820 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 ).....(nreverse.r)))..(defmacro.
1e840 2d 2d 75 6e 66 6f 6c 64 20 28 66 6f 72 6d 20 73 65 65 64 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 --unfold.(form.seed)..."Anaphori
1e860 63 20 76 65 72 73 69 6f 6e 20 6f 66 20 60 2d 75 6e 66 6f 6c 64 27 2e 22 0a 20 20 28 64 65 63 6c c.version.of.`-unfold'."...(decl
1e880 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 are.(debug.(def-form.form)))...`
1e8a0 28 2d 75 6e 66 6f 6c 64 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 (-unfold.(lambda.(it).(ignore.it
1e8c0 29 20 2c 66 6f 72 6d 29 20 2c 73 65 65 64 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f 6e 73 2d 70 ).,form).,seed))..(defun.-cons-p
1e8e0 61 69 72 3f 20 28 6f 62 6a 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 air?.(obj)..."Return.non-nil.if.
1e900 4f 42 4a 20 69 73 20 61 20 74 72 75 65 20 63 6f 6e 73 20 70 61 69 72 2e 0a 54 68 61 74 20 69 73 OBJ.is.a.true.cons.pair..That.is
1e920 2c 20 61 20 63 6f 6e 73 20 28 41 20 2e 20 42 29 20 77 68 65 72 65 20 42 20 69 73 20 6e 6f 74 20 ,.a.cons.(A...B).where.B.is.not.
1e940 61 20 6c 69 73 74 2e 0a 0a 41 6c 69 61 73 3a 20 60 2d 63 6f 6e 73 2d 70 61 69 72 2d 70 27 2e 22 a.list...Alias:.`-cons-pair-p'."
1e960 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 ...(declare.(pure.t).(side-effec
1e980 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 6e 6c 69 73 74 70 20 28 63 t-free.error-free))...(nlistp.(c
1e9a0 64 72 2d 73 61 66 65 20 6f 62 6a 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 2d 63 6f 6e 73 dr-safe.obj)))..(defalias.'-cons
1e9c0 2d 70 61 69 72 2d 70 20 27 2d 63 6f 6e 73 2d 70 61 69 72 3f 29 0a 0a 28 64 65 66 75 6e 20 2d 63 -pair-p.'-cons-pair?)..(defun.-c
1e9e0 6f 6e 73 2d 74 6f 2d 6c 69 73 74 20 28 63 6f 6e 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 63 ons-to-list.(con)..."Convert.a.c
1ea00 6f 6e 73 20 70 61 69 72 20 74 6f 20 61 20 6c 69 73 74 20 77 69 74 68 20 60 63 61 72 27 20 61 6e ons.pair.to.a.list.with.`car'.an
1ea20 64 20 60 63 64 72 27 20 6f 66 20 74 68 65 20 70 61 69 72 20 72 65 73 70 65 63 74 69 76 65 6c 79 d.`cdr'.of.the.pair.respectively
1ea40 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 ."...(declare.(pure.t).(side-eff
1ea60 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6c 69 73 74 20 28 63 61 72 20 63 6f 6e 29 20 28 ect-free.t))...(list.(car.con).(
1ea80 63 64 72 20 63 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 76 61 6c 75 65 2d 74 6f 2d 6c 69 73 cdr.con)))..(defun.-value-to-lis
1eaa0 74 20 28 76 61 6c 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 76 61 6c 75 65 20 74 6f 20 61 20 t.(val)..."Convert.a.value.to.a.
1eac0 6c 69 73 74 2e 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 61 20 63 6f 6e 73 20 70 61 list...If.the.value.is.a.cons.pa
1eae0 69 72 2c 20 6d 61 6b 65 20 61 20 6c 69 73 74 20 77 69 74 68 20 74 77 6f 20 65 6c 65 6d 65 6e 74 ir,.make.a.list.with.two.element
1eb00 73 2c 20 60 63 61 72 27 0a 61 6e 64 20 60 63 64 72 27 20 6f 66 20 74 68 65 20 70 61 69 72 20 72 s,.`car'.and.`cdr'.of.the.pair.r
1eb20 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 61 6e espectively...If.the.value.is.an
1eb40 79 74 68 69 6e 67 20 65 6c 73 65 2c 20 77 72 61 70 20 69 74 20 69 6e 20 61 20 6c 69 73 74 2e 22 ything.else,.wrap.it.in.a.list."
1eb60 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 ...(declare.(pure.t).(side-effec
1eb80 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 69 66 20 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 76 61 t-free.t))...(if.(-cons-pair?.va
1eba0 6c 29 20 28 2d 63 6f 6e 73 2d 74 6f 2d 6c 69 73 74 20 76 61 6c 29 20 28 6c 69 73 74 20 76 61 6c l).(-cons-to-list.val).(list.val
1ebc0 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 2d 66 72 6f 6d )))..(defun.-tree-mapreduce-from
1ebe0 20 28 66 6e 20 66 6f 6c 64 65 72 20 69 6e 69 74 2d 76 61 6c 75 65 20 74 72 65 65 29 0a 20 20 22 .(fn.folder.init-value.tree)..."
1ec00 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 54 52 45 45 Apply.FN.to.each.element.of.TREE
1ec20 2c 20 61 6e 64 20 6d 61 6b 65 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 73 ,.and.make.a.list.of.the.results
1ec40 2e 0a 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 54 52 45 45 20 61 72 65 20 6c 69 73 74 73 20 ..If.elements.of.TREE.are.lists.
1ec60 74 68 65 6d 73 65 6c 76 65 73 2c 20 61 70 70 6c 79 20 46 4e 20 72 65 63 75 72 73 69 76 65 6c 79 themselves,.apply.FN.recursively
1ec80 20 74 6f 0a 65 6c 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 73 65 20 6e 65 73 74 65 64 20 6c 69 73 .to.elements.of.these.nested.lis
1eca0 74 73 2e 0a 0a 54 68 65 6e 20 72 65 64 75 63 65 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 6c ts...Then.reduce.the.resulting.l
1ecc0 69 73 74 73 20 75 73 69 6e 67 20 46 4f 4c 44 45 52 20 61 6e 64 20 69 6e 69 74 69 61 6c 20 76 61 ists.using.FOLDER.and.initial.va
1ece0 6c 75 65 0a 49 4e 49 54 2d 56 41 4c 55 45 2e 20 53 65 65 20 60 2d 72 65 64 75 63 65 2d 72 2d 66 lue.INIT-VALUE..See.`-reduce-r-f
1ed00 72 6f 6d 27 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 63 61 6c 6c 69 rom'...This.is.the.same.as.calli
1ed20 6e 67 20 60 2d 74 72 65 65 2d 72 65 64 75 63 65 2d 66 72 6f 6d 27 20 61 66 74 65 72 20 60 2d 74 ng.`-tree-reduce-from'.after.`-t
1ed40 72 65 65 2d 6d 61 70 27 0a 62 75 74 20 69 73 20 74 77 69 63 65 20 61 73 20 66 61 73 74 20 61 73 ree-map'.but.is.twice.as.fast.as
1ed60 20 69 74 20 6f 6e 6c 79 20 74 72 61 76 65 72 73 65 20 74 68 65 20 73 74 72 75 63 74 75 72 65 20 .it.only.traverse.the.structure.
1ed80 6f 6e 63 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 once."...(declare.(important-ret
1eda0 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6c 6c 20 urn-value.t))...(cond....((null.
1edc0 74 72 65 65 29 20 28 29 29 0a 20 20 20 28 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 74 72 65 65 29 tree).())....((-cons-pair?.tree)
1ede0 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 74 72 65 65 29 29 0a 20 20 20 28 28 63 6f 6e 73 70 20 74 .(funcall.fn.tree))....((consp.t
1ee00 72 65 65 29 0a 20 20 20 20 28 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 0a 20 20 20 20 20 66 6f ree).....(-reduce-r-from......fo
1ee20 6c 64 65 72 20 69 6e 69 74 2d 76 61 6c 75 65 0a 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 lder.init-value......(mapcar.(la
1ee40 6d 62 64 61 20 28 78 29 20 28 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 2d 66 72 6f 6d 20 66 mbda.(x).(-tree-mapreduce-from.f
1ee60 6e 20 66 6f 6c 64 65 72 20 69 6e 69 74 2d 76 61 6c 75 65 20 78 29 29 20 74 72 65 65 29 29 29 0a n.folder.init-value.x)).tree))).
1ee80 20 20 20 28 28 66 75 6e 63 61 6c 6c 20 66 6e 20 74 72 65 65 29 29 29 29 0a 0a 28 64 65 66 6d 61 ...((funcall.fn.tree))))..(defma
1eea0 63 72 6f 20 2d 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 66 6f 72 6d 20 cro.--tree-mapreduce-from.(form.
1eec0 66 6f 6c 64 65 72 20 69 6e 69 74 2d 76 61 6c 75 65 20 74 72 65 65 29 0a 20 20 22 41 6e 61 70 68 folder.init-value.tree)..."Anaph
1eee0 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 2d 66 72 oric.form.of.`-tree-mapreduce-fr
1ef00 6f 6d 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 om'."...(declare.(debug.(def-for
1ef20 6d 20 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 74 72 65 m.def-form.form.form)))...`(-tre
1ef40 65 2d 6d 61 70 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 e-mapreduce-from.(lambda.(it).(i
1ef60 67 6e 6f 72 65 20 69 74 29 20 2c 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gnore.it).,form)................
1ef80 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 20 61 63 63 29 20 28 69 67 6e 6f ..........(lambda.(it.acc).(igno
1efa0 72 65 20 69 74 20 61 63 63 29 20 2c 66 6f 6c 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 re.it.acc).,folder).............
1efc0 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 69 6e 69 74 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 .............,init-value........
1efe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 74 72 65 65 29 29 0a 0a 28 64 65 66 75 ..................,tree))..(defu
1f000 6e 20 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 20 28 66 6e 20 66 6f 6c 64 65 72 20 74 72 65 n.-tree-mapreduce.(fn.folder.tre
1f020 65 29 0a 20 20 22 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f e)..."Apply.FN.to.each.element.o
1f040 66 20 54 52 45 45 2c 20 61 6e 64 20 6d 61 6b 65 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 72 f.TREE,.and.make.a.list.of.the.r
1f060 65 73 75 6c 74 73 2e 0a 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 54 52 45 45 20 61 72 65 20 esults..If.elements.of.TREE.are.
1f080 6c 69 73 74 73 20 74 68 65 6d 73 65 6c 76 65 73 2c 20 61 70 70 6c 79 20 46 4e 20 72 65 63 75 72 lists.themselves,.apply.FN.recur
1f0a0 73 69 76 65 6c 79 20 74 6f 0a 65 6c 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 73 65 20 6e 65 73 74 sively.to.elements.of.these.nest
1f0c0 65 64 20 6c 69 73 74 73 2e 0a 0a 54 68 65 6e 20 72 65 64 75 63 65 20 74 68 65 20 72 65 73 75 6c ed.lists...Then.reduce.the.resul
1f0e0 74 69 6e 67 20 6c 69 73 74 73 20 75 73 69 6e 67 20 46 4f 4c 44 45 52 20 61 6e 64 20 69 6e 69 74 ting.lists.using.FOLDER.and.init
1f100 69 61 6c 20 76 61 6c 75 65 0a 49 4e 49 54 2d 56 41 4c 55 45 2e 20 53 65 65 20 60 2d 72 65 64 75 ial.value.INIT-VALUE..See.`-redu
1f120 63 65 2d 72 2d 66 72 6f 6d 27 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 ce-r-from'...This.is.the.same.as
1f140 20 63 61 6c 6c 69 6e 67 20 60 2d 74 72 65 65 2d 72 65 64 75 63 65 27 20 61 66 74 65 72 20 60 2d .calling.`-tree-reduce'.after.`-
1f160 74 72 65 65 2d 6d 61 70 27 0a 62 75 74 20 69 73 20 74 77 69 63 65 20 61 73 20 66 61 73 74 20 61 tree-map'.but.is.twice.as.fast.a
1f180 73 20 69 74 20 6f 6e 6c 79 20 74 72 61 76 65 72 73 65 20 74 68 65 20 73 74 72 75 63 74 75 72 65 s.it.only.traverse.the.structure
1f1a0 20 6f 6e 63 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 .once."...(declare.(important-re
1f1c0 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6c 6c turn-value.t))...(cond....((null
1f1e0 20 74 72 65 65 29 20 28 29 29 0a 20 20 20 28 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 74 72 65 65 .tree).())....((-cons-pair?.tree
1f200 29 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 74 72 65 65 29 29 0a 20 20 20 28 28 63 6f 6e 73 70 20 ).(funcall.fn.tree))....((consp.
1f220 74 72 65 65 29 0a 20 20 20 20 28 2d 72 65 64 75 63 65 2d 72 20 66 6f 6c 64 65 72 20 28 6d 61 70 tree).....(-reduce-r.folder.(map
1f240 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 car.(lambda.(x).(-tree-mapreduce
1f260 20 66 6e 20 66 6f 6c 64 65 72 20 78 29 29 20 74 72 65 65 29 29 29 0a 20 20 20 28 28 66 75 6e 63 .fn.folder.x)).tree)))....((func
1f280 61 6c 6c 20 66 6e 20 74 72 65 65 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 74 72 65 all.fn.tree))))..(defmacro.--tre
1f2a0 65 2d 6d 61 70 72 65 64 75 63 65 20 28 66 6f 72 6d 20 66 6f 6c 64 65 72 20 74 72 65 65 29 0a 20 e-mapreduce.(form.folder.tree)..
1f2c0 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 74 72 65 65 2d 6d 61 70 72 65 ."Anaphoric.form.of.`-tree-mapre
1f2e0 64 75 63 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 duce'."...(declare.(debug.(def-f
1f300 6f 72 6d 20 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 74 72 65 65 2d 6d orm.def-form.form)))...`(-tree-m
1f320 61 70 72 65 64 75 63 65 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 apreduce.(lambda.(it).(ignore.it
1f340 29 20 2c 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 ).,form).....................(la
1f360 6d 62 64 61 20 28 69 74 20 61 63 63 29 20 28 69 67 6e 6f 72 65 20 69 74 20 61 63 63 29 20 2c 66 mbda.(it.acc).(ignore.it.acc).,f
1f380 6f 6c 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 74 72 65 65 older).....................,tree
1f3a0 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 72 65 65 2d 6d 61 70 20 28 66 6e 20 74 72 65 65 29 0a 20 ))..(defun.-tree-map.(fn.tree)..
1f3c0 20 22 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 54 52 ."Apply.FN.to.each.element.of.TR
1f3e0 45 45 20 77 68 69 6c 65 20 70 72 65 73 65 72 76 69 6e 67 20 74 68 65 20 74 72 65 65 20 73 74 72 EE.while.preserving.the.tree.str
1f400 75 63 74 75 72 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 ucture."...(declare.(important-r
1f420 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6c eturn-value.t))...(cond....((nul
1f440 6c 20 74 72 65 65 29 20 28 29 29 0a 20 20 20 28 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 74 72 65 l.tree).())....((-cons-pair?.tre
1f460 65 29 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 74 72 65 65 29 29 0a 20 20 20 28 28 63 6f 6e 73 70 e).(funcall.fn.tree))....((consp
1f480 20 74 72 65 65 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 .tree).....(mapcar.(lambda.(x).(
1f4a0 2d 74 72 65 65 2d 6d 61 70 20 66 6e 20 78 29 29 20 74 72 65 65 29 29 0a 20 20 20 28 28 66 75 6e -tree-map.fn.x)).tree))....((fun
1f4c0 63 61 6c 6c 20 66 6e 20 74 72 65 65 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 74 72 call.fn.tree))))..(defmacro.--tr
1f4e0 65 65 2d 6d 61 70 20 28 66 6f 72 6d 20 74 72 65 65 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 ee-map.(form.tree)..."Anaphoric.
1f500 66 6f 72 6d 20 6f 66 20 60 2d 74 72 65 65 2d 6d 61 70 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 form.of.`-tree-map'."...(declare
1f520 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 74 .(debug.(def-form.form)))...`(-t
1f540 72 65 65 2d 6d 61 70 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 ree-map.(lambda.(it).(ignore.it)
1f560 20 2c 66 6f 72 6d 29 20 2c 74 72 65 65 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 72 65 65 2d 72 65 .,form).,tree))..(defun.-tree-re
1f580 64 75 63 65 2d 66 72 6f 6d 20 28 66 6e 20 69 6e 69 74 2d 76 61 6c 75 65 20 74 72 65 65 29 0a 20 duce-from.(fn.init-value.tree)..
1f5a0 20 22 55 73 65 20 46 4e 20 74 6f 20 72 65 64 75 63 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 6c ."Use.FN.to.reduce.elements.of.l
1f5c0 69 73 74 20 54 52 45 45 2e 0a 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 54 52 45 45 20 61 72 ist.TREE..If.elements.of.TREE.ar
1f5e0 65 20 6c 69 73 74 73 20 74 68 65 6d 73 65 6c 76 65 73 2c 20 61 70 70 6c 79 20 74 68 65 20 72 65 e.lists.themselves,.apply.the.re
1f600 64 75 63 74 69 6f 6e 20 72 65 63 75 72 73 69 76 65 6c 79 2e 0a 0a 46 4e 20 69 73 20 66 69 72 73 duction.recursively...FN.is.firs
1f620 74 20 61 70 70 6c 69 65 64 20 74 6f 20 49 4e 49 54 2d 56 41 4c 55 45 20 61 6e 64 20 66 69 72 73 t.applied.to.INIT-VALUE.and.firs
1f640 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 6c 69 73 74 2c 0a 74 68 65 6e 20 6f 6e 20 74 t.element.of.the.list,.then.on.t
1f660 68 69 73 20 72 65 73 75 6c 74 20 61 6e 64 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 66 72 his.result.and.second.element.fr
1f680 6f 6d 20 74 68 65 20 6c 69 73 74 20 65 74 63 2e 0a 0a 54 68 65 20 69 6e 69 74 69 61 6c 20 76 61 om.the.list.etc...The.initial.va
1f6a0 6c 75 65 20 69 73 20 69 67 6e 6f 72 65 64 20 6f 6e 20 63 6f 6e 73 20 70 61 69 72 73 20 61 73 20 lue.is.ignored.on.cons.pairs.as.
1f6c0 74 68 65 79 20 61 6c 77 61 79 73 20 63 6f 6e 74 61 69 6e 0a 74 77 6f 20 65 6c 65 6d 65 6e 74 73 they.always.contain.two.elements
1f6e0 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d ."...(declare.(important-return-
1f700 76 61 6c 75 65 20 74 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6c 6c 20 74 72 65 65 value.t))...(cond....((null.tree
1f720 29 20 28 29 29 0a 20 20 20 28 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 74 72 65 65 29 20 74 72 65 ).())....((-cons-pair?.tree).tre
1f740 65 29 0a 20 20 20 28 28 63 6f 6e 73 70 20 74 72 65 65 29 0a 20 20 20 20 28 2d 72 65 64 75 63 65 e)....((consp.tree).....(-reduce
1f760 2d 72 2d 66 72 6f 6d 0a 20 20 20 20 20 66 6e 20 69 6e 69 74 2d 76 61 6c 75 65 0a 20 20 20 20 20 -r-from......fn.init-value......
1f780 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2d 74 72 65 65 2d 72 65 64 75 63 (mapcar.(lambda.(x).(-tree-reduc
1f7a0 65 2d 66 72 6f 6d 20 66 6e 20 69 6e 69 74 2d 76 61 6c 75 65 20 78 29 29 20 74 72 65 65 29 29 29 e-from.fn.init-value.x)).tree)))
1f7c0 0a 20 20 20 28 74 72 65 65 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 74 72 65 65 2d 72 ....(tree)))..(defmacro.--tree-r
1f7e0 65 64 75 63 65 2d 66 72 6f 6d 20 28 66 6f 72 6d 20 69 6e 69 74 2d 76 61 6c 75 65 20 74 72 65 65 educe-from.(form.init-value.tree
1f800 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 74 72 65 65 2d 72 65 )..."Anaphoric.form.of.`-tree-re
1f820 64 75 63 65 2d 66 72 6f 6d 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 duce-from'."...(declare.(debug.(
1f840 64 65 66 2d 66 6f 72 6d 20 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 74 72 65 65 2d def-form.form.form)))...`(-tree-
1f860 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 6c 61 6d 62 64 61 20 28 69 74 20 61 63 63 29 20 28 69 67 reduce-from.(lambda.(it.acc).(ig
1f880 6e 6f 72 65 20 69 74 20 61 63 63 29 20 2c 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 nore.it.acc).,form).............
1f8a0 20 20 20 20 20 20 20 20 20 20 2c 69 6e 69 74 2d 76 61 6c 75 65 20 2c 74 72 65 65 29 29 0a 0a 28 ..........,init-value.,tree))..(
1f8c0 64 65 66 75 6e 20 2d 74 72 65 65 2d 72 65 64 75 63 65 20 28 66 6e 20 74 72 65 65 29 0a 20 20 22 defun.-tree-reduce.(fn.tree)..."
1f8e0 55 73 65 20 46 4e 20 74 6f 20 72 65 64 75 63 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 6c 69 73 Use.FN.to.reduce.elements.of.lis
1f900 74 20 54 52 45 45 2e 0a 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 54 52 45 45 20 61 72 65 20 t.TREE..If.elements.of.TREE.are.
1f920 6c 69 73 74 73 20 74 68 65 6d 73 65 6c 76 65 73 2c 20 61 70 70 6c 79 20 74 68 65 20 72 65 64 75 lists.themselves,.apply.the.redu
1f940 63 74 69 6f 6e 20 72 65 63 75 72 73 69 76 65 6c 79 2e 0a 0a 46 4e 20 69 73 20 66 69 72 73 74 20 ction.recursively...FN.is.first.
1f960 61 70 70 6c 69 65 64 20 74 6f 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 applied.to.first.element.of.the.
1f980 6c 69 73 74 20 61 6e 64 20 73 65 63 6f 6e 64 0a 65 6c 65 6d 65 6e 74 2c 20 74 68 65 6e 20 6f 6e list.and.second.element,.then.on
1f9a0 20 74 68 69 73 20 72 65 73 75 6c 74 20 61 6e 64 20 74 68 69 72 64 20 65 6c 65 6d 65 6e 74 20 66 .this.result.and.third.element.f
1f9c0 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 65 74 63 2e 0a 0a 53 65 65 20 60 2d 72 65 64 75 63 65 2d rom.the.list.etc...See.`-reduce-
1f9e0 72 27 20 66 6f 72 20 68 6f 77 20 65 78 61 63 74 6c 79 20 61 72 65 20 6c 69 73 74 73 20 6f 66 20 r'.for.how.exactly.are.lists.of.
1fa00 7a 65 72 6f 20 6f 72 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 20 68 61 6e 64 6c 65 64 2e 22 0a 20 20 zero.or.one.element.handled."...
1fa20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 (declare.(important-return-value
1fa40 20 74 29 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6c 6c 20 74 72 65 65 29 20 28 29 29 .t))...(cond....((null.tree).())
1fa60 0a 20 20 20 28 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 74 72 65 65 29 20 74 72 65 65 29 0a 20 20 ....((-cons-pair?.tree).tree)...
1fa80 20 28 28 63 6f 6e 73 70 20 74 72 65 65 29 0a 20 20 20 20 28 2d 72 65 64 75 63 65 2d 72 20 66 6e .((consp.tree).....(-reduce-r.fn
1faa0 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2d 74 72 65 65 2d 72 65 64 75 .(mapcar.(lambda.(x).(-tree-redu
1fac0 63 65 20 66 6e 20 78 29 29 20 74 72 65 65 29 29 29 0a 20 20 20 28 74 72 65 65 29 29 29 0a 0a 28 ce.fn.x)).tree)))....(tree)))..(
1fae0 64 65 66 6d 61 63 72 6f 20 2d 2d 74 72 65 65 2d 72 65 64 75 63 65 20 28 66 6f 72 6d 20 74 72 65 defmacro.--tree-reduce.(form.tre
1fb00 65 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 74 72 65 65 2d 72 e)..."Anaphoric.form.of.`-tree-r
1fb20 65 64 75 63 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d educe'."...(declare.(debug.(def-
1fb40 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 74 72 65 65 2d 72 65 64 75 63 65 20 28 6c form.form)))...`(-tree-reduce.(l
1fb60 61 6d 62 64 61 20 28 69 74 20 61 63 63 29 20 28 69 67 6e 6f 72 65 20 69 74 20 61 63 63 29 20 2c ambda.(it.acc).(ignore.it.acc).,
1fb80 66 6f 72 6d 29 20 2c 74 72 65 65 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 72 65 65 2d 6d 61 70 2d form).,tree))..(defun.-tree-map-
1fba0 6e 6f 64 65 73 20 28 70 72 65 64 20 66 75 6e 20 74 72 65 65 29 0a 20 20 22 43 61 6c 6c 20 46 55 nodes.(pred.fun.tree)..."Call.FU
1fbc0 4e 20 6f 6e 20 65 61 63 68 20 6e 6f 64 65 20 6f 66 20 54 52 45 45 20 74 68 61 74 20 73 61 74 69 N.on.each.node.of.TREE.that.sati
1fbe0 73 66 69 65 73 20 50 52 45 44 2e 0a 0a 49 66 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 69 6c sfies.PRED...If.PRED.returns.nil
1fc00 2c 20 63 6f 6e 74 69 6e 75 65 20 64 65 73 63 65 6e 64 69 6e 67 20 64 6f 77 6e 20 74 68 69 73 20 ,.continue.descending.down.this.
1fc20 6e 6f 64 65 2e 20 20 49 66 20 50 52 45 44 0a 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 node...If.PRED.returns.non-nil,.
1fc40 61 70 70 6c 79 20 46 55 4e 20 74 6f 20 74 68 69 73 20 6e 6f 64 65 20 61 6e 64 20 64 6f 20 6e 6f apply.FUN.to.this.node.and.do.no
1fc60 74 20 64 65 73 63 65 6e 64 0a 66 75 72 74 68 65 72 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 66 75 t.descend.further."...(cond.((fu
1fc80 6e 63 61 6c 6c 20 70 72 65 64 20 74 72 65 65 29 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 20 74 72 ncall.pred.tree).(funcall.fun.tr
1fca0 65 65 29 29 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6c 69 73 74 70 20 74 72 65 65 29 20 ee)).........((and.(listp.tree).
1fcc0 28 6c 69 73 74 70 20 28 63 64 72 20 74 72 65 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 2d 6d (listp.(cdr.tree)))..........(-m
1fce0 61 70 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 20 ap.(lambda.(x).(-tree-map-nodes.
1fd00 70 72 65 64 20 66 75 6e 20 78 29 29 20 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 28 74 72 65 pred.fun.x)).tree)).........(tre
1fd20 65 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 e)))..(defmacro.--tree-map-nodes
1fd40 20 28 70 72 65 64 20 66 6f 72 6d 20 74 72 65 65 29 0a 20 20 22 41 6e 61 70 68 6f 72 69 63 20 66 .(pred.form.tree)..."Anaphoric.f
1fd60 6f 72 6d 20 6f 66 20 60 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 27 2e 22 0a 20 20 28 64 65 orm.of.`-tree-map-nodes'."...(de
1fd80 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 64 65 66 2d 66 6f 72 6d 20 clare.(debug.(def-form.def-form.
1fda0 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 20 28 6c 61 6d form)))...`(-tree-map-nodes.(lam
1fdc0 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 70 72 65 64 29 0a 20 20 20 20 bda.(it).(ignore.it).,pred).....
1fde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 ................(lambda.(it).(ig
1fe00 6e 6f 72 65 20 69 74 29 20 2c 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nore.it).,form).................
1fe20 20 20 20 20 2c 74 72 65 65 29 29 0a 0a 28 64 65 66 75 6e 20 2d 74 72 65 65 2d 73 65 71 20 28 62 ....,tree))..(defun.-tree-seq.(b
1fe40 72 61 6e 63 68 20 63 68 69 6c 64 72 65 6e 20 74 72 65 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 ranch.children.tree)..."Return.a
1fe60 20 73 65 71 75 65 6e 63 65 20 6f 66 20 74 68 65 20 6e 6f 64 65 73 20 69 6e 20 54 52 45 45 2c 20 .sequence.of.the.nodes.in.TREE,.
1fe80 69 6e 20 64 65 70 74 68 2d 66 69 72 73 74 20 73 65 61 72 63 68 20 6f 72 64 65 72 2e 0a 0a 42 52 in.depth-first.search.order...BR
1fea0 41 4e 43 48 20 69 73 20 61 20 70 72 65 64 69 63 61 74 65 20 6f 66 20 6f 6e 65 20 61 72 67 75 6d ANCH.is.a.predicate.of.one.argum
1fec0 65 6e 74 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 68 65 0a ent.that.returns.non-nil.if.the.
1fee0 70 61 73 73 65 64 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 62 72 61 6e 63 68 2c 20 74 68 61 passed.argument.is.a.branch,.tha
1ff00 74 20 69 73 2c 20 61 20 6e 6f 64 65 20 74 68 61 74 20 63 61 6e 20 68 61 76 65 20 63 68 69 6c 64 t.is,.a.node.that.can.have.child
1ff20 72 65 6e 2e 0a 0a 43 48 49 4c 44 52 45 4e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 ren...CHILDREN.is.a.function.of.
1ff40 6f 6e 65 20 61 72 67 75 6d 65 6e 74 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 63 68 one.argument.that.returns.the.ch
1ff60 69 6c 64 72 65 6e 0a 6f 66 20 74 68 65 20 70 61 73 73 65 64 20 62 72 61 6e 63 68 20 6e 6f 64 65 ildren.of.the.passed.branch.node
1ff80 2e 0a 0a 4e 6f 6e 2d 62 72 61 6e 63 68 20 6e 6f 64 65 73 20 61 72 65 20 73 69 6d 70 6c 79 20 63 ...Non-branch.nodes.are.simply.c
1ffa0 6f 70 69 65 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 opied."...(declare.(important-re
1ffc0 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a 20 20 28 63 6f 6e 73 20 74 72 65 65 0a 20 20 20 20 turn-value.t))...(cons.tree.....
1ffe0 20 20 20 20 28 61 6e 64 20 28 66 75 6e 63 61 6c 6c 20 62 72 61 6e 63 68 20 74 72 65 65 29 0a 20 ....(and.(funcall.branch.tree)..
20000 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 63 61 74 20 28 6c 61 6d 62 64 61 20 28 78 29 ............(-mapcat.(lambda.(x)
20020 20 28 2d 74 72 65 65 2d 73 65 71 20 62 72 61 6e 63 68 20 63 68 69 6c 64 72 65 6e 20 78 29 29 0a .(-tree-seq.branch.children.x)).
20040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 ......................(funcall.c
20060 68 69 6c 64 72 65 6e 20 74 72 65 65 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 2d 74 hildren.tree)))))..(defmacro.--t
20080 72 65 65 2d 73 65 71 20 28 62 72 61 6e 63 68 20 63 68 69 6c 64 72 65 6e 20 74 72 65 65 29 0a 20 ree-seq.(branch.children.tree)..
200a0 20 22 41 6e 61 70 68 6f 72 69 63 20 66 6f 72 6d 20 6f 66 20 60 2d 74 72 65 65 2d 73 65 71 27 2e ."Anaphoric.form.of.`-tree-seq'.
200c0 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 64 65 66 2d 66 6f 72 6d 20 64 65 "...(declare.(debug.(def-form.de
200e0 66 2d 66 6f 72 6d 20 66 6f 72 6d 29 29 29 0a 20 20 60 28 2d 74 72 65 65 2d 73 65 71 20 28 6c 61 f-form.form)))...`(-tree-seq.(la
20100 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 65 20 69 74 29 20 2c 62 72 61 6e 63 68 29 0a 20 mbda.(it).(ignore.it).,branch)..
20120 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 69 74 29 20 28 69 67 6e 6f 72 .............(lambda.(it).(ignor
20140 65 20 69 74 29 20 2c 63 68 69 6c 64 72 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c e.it).,children)...............,
20160 74 72 65 65 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6c 6f 6e 65 20 28 6c 69 73 74 29 0a 20 20 22 tree))..(defun.-clone.(list)..."
20180 43 72 65 61 74 65 20 61 20 64 65 65 70 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 2e 0a 54 68 65 20 Create.a.deep.copy.of.LIST..The.
201a0 6e 65 77 20 6c 69 73 74 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 65 6c 65 6d 65 6e 74 73 20 61 new.list.has.the.same.elements.a
201c0 6e 64 20 73 74 72 75 63 74 75 72 65 20 62 75 74 20 61 6c 6c 20 63 6f 6e 73 20 61 72 65 0a 72 65 nd.structure.but.all.cons.are.re
201e0 70 6c 61 63 65 64 20 77 69 74 68 20 6e 65 77 20 6f 6e 65 73 2e 20 20 54 68 69 73 20 69 73 20 75 placed.with.new.ones...This.is.u
20200 73 65 66 75 6c 20 77 68 65 6e 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 63 6c 6f 6e 65 20 61 0a 73 seful.when.you.need.to.clone.a.s
20220 74 72 75 63 74 75 72 65 20 73 75 63 68 20 61 73 20 70 6c 69 73 74 20 6f 72 20 61 6c 69 73 74 2e tructure.such.as.plist.or.alist.
20240 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 "...(declare.(side-effect-free.t
20260 29 29 0a 20 20 28 2d 74 72 65 65 2d 6d 61 70 20 23 27 69 64 65 6e 74 69 74 79 20 6c 69 73 74 29 ))...(-tree-map.#'identity.list)
20280 29 0a 0c 0a 3b 3b 3b 20 43 6f 6d 62 69 6e 61 74 6f 72 73 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 )...;;;.Combinators..(defalias.'
202a0 2d 70 61 72 74 69 61 6c 20 23 27 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 29 0a 0a 28 64 65 -partial.#'apply-partially)..(de
202c0 66 75 6e 20 2d 72 70 61 72 74 69 61 6c 20 28 66 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 fun.-rpartial.(fn.&rest.args)...
202e0 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 73 20 61 20 70 61 72 "Return.a.function.that.is.a.par
20300 74 69 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f 66 20 46 4e 20 74 6f 20 41 52 47 53 2e 0a tial.application.of.FN.to.ARGS..
20320 41 52 47 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 6c 61 73 74 20 4e 20 61 72 67 ARGS.is.a.list.of.the.last.N.arg
20340 75 6d 65 6e 74 73 20 74 6f 20 70 61 73 73 20 74 6f 20 46 4e 2e 20 20 54 68 65 20 72 65 73 75 6c uments.to.pass.to.FN...The.resul
20360 74 0a 69 73 20 61 20 6e 65 77 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 64 6f 65 73 20 74 t.is.a.new.function.which.does.t
20380 68 65 20 73 61 6d 65 20 61 73 20 46 4e 2c 20 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65 20 6c he.same.as.FN,.except.that.the.l
203a0 61 73 74 0a 4e 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 66 69 78 65 64 20 61 74 20 74 68 65 ast.N.arguments.are.fixed.at.the
203c0 20 76 61 6c 75 65 73 20 77 69 74 68 20 77 68 69 63 68 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e .values.with.which.this.function
203e0 20 77 61 73 0a 63 61 6c 6c 65 64 2e 20 20 54 68 69 73 20 69 73 20 6c 69 6b 65 20 60 2d 70 61 72 .was.called...This.is.like.`-par
20400 74 69 61 6c 27 2c 20 65 78 63 65 70 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 tial',.except.the.arguments.are.
20420 66 69 78 65 64 0a 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 20 72 61 fixed.starting.from.the.right.ra
20440 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 6c 65 66 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 ther.than.the.left."...(declare.
20460 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 (pure.t).(side-effect-free.error
20480 2d 66 72 65 65 29 29 0a 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 2d 62 65 -free))...(lambda.(&rest.args-be
204a0 66 6f 72 65 29 20 28 61 70 70 6c 79 20 66 6e 20 28 61 70 70 65 6e 64 20 61 72 67 73 2d 62 65 66 fore).(apply.fn.(append.args-bef
204c0 6f 72 65 20 61 72 67 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6a 75 78 74 20 28 26 72 65 73 ore.args))))..(defun.-juxt.(&res
204e0 74 20 66 6e 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 t.fns)..."Return.a.function.that
20500 20 69 73 20 74 68 65 20 6a 75 78 74 61 70 6f 73 69 74 69 6f 6e 20 6f 66 20 46 4e 53 2e 0a 54 68 .is.the.juxtaposition.of.FNS..Th
20520 65 20 72 65 74 75 72 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 20 76 61 72 69 e.returned.function.takes.a.vari
20540 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 41 52 47 53 2c 20 61 70 70 6c 69 65 73 0a 65 61 63 able.number.of.ARGS,.applies.eac
20560 68 20 6f 66 20 46 4e 53 20 69 6e 20 74 75 72 6e 20 74 6f 20 41 52 47 53 2c 20 61 6e 64 20 72 65 h.of.FNS.in.turn.to.ARGS,.and.re
20580 74 75 72 6e 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 28 64 turns.the.list.of.results."...(d
205a0 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 eclare.(pure.t).(side-effect-fre
205c0 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 e.error-free))...(lambda.(&rest.
205e0 61 72 67 73 29 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 61 70 70 6c 79 args).(mapcar.(lambda.(x).(apply
20600 20 78 20 61 72 67 73 29 29 20 66 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f 6d 70 6f 73 .x.args)).fns)))..(defun.-compos
20620 65 20 28 26 72 65 73 74 20 66 6e 73 29 0a 20 20 22 43 6f 6d 70 6f 73 65 20 46 4e 53 20 69 6e 74 e.(&rest.fns)..."Compose.FNS.int
20640 6f 20 61 20 73 69 6e 67 6c 65 20 63 6f 6d 70 6f 73 69 74 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 52 o.a.single.composite.function..R
20660 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 20 76 61 eturn.a.function.that.takes.a.va
20680 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 41 52 47 53 2c 20 61 70 70 6c 69 65 73 0a 74 riable.number.of.ARGS,.applies.t
206a0 68 65 20 6c 61 73 74 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 46 4e 53 20 74 6f 20 41 52 47 53 2c he.last.function.in.FNS.to.ARGS,
206c0 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 0a 63 61 6c 6c 69 .and.returns.the.result.of.calli
206e0 6e 67 20 65 61 63 68 20 72 65 6d 61 69 6e 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74 68 ng.each.remaining.function.on.th
20700 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 0a 66 75 6e 63 74 69 6f e.result.of.the.previous.functio
20720 6e 2c 20 72 69 67 68 74 2d 74 6f 2d 6c 65 66 74 2e 20 20 49 66 20 6e 6f 20 46 4e 53 20 61 72 65 n,.right-to-left...If.no.FNS.are
20740 20 67 69 76 65 6e 2c 20 72 65 74 75 72 6e 20 61 20 76 61 72 69 61 64 69 63 0a 60 69 64 65 6e 74 .given,.return.a.variadic.`ident
20760 69 74 79 27 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 ity'.function."...(declare.(pure
20780 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 .t).(side-effect-free.error-free
207a0 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 6e 73 20 28 6e 72 65 76 65 72 73 65 20 66 6e 73 29 29 ))...(let*.((fns.(nreverse.fns))
207c0 0a 20 20 20 20 20 20 20 20 20 28 68 65 61 64 20 28 63 61 72 20 66 6e 73 29 29 0a 20 20 20 20 20 ..........(head.(car.fns))......
207e0 20 20 20 20 28 74 61 69 6c 20 28 63 64 72 20 66 6e 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 ....(tail.(cdr.fns))).....(cond.
20800 28 74 61 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 (tail............(lambda.(&rest.
20820 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 66 72 6f args)..............(--reduce-fro
20840 6d 20 28 66 75 6e 63 61 6c 6c 20 69 74 20 61 63 63 29 20 28 61 70 70 6c 79 20 68 65 61 64 20 61 m.(funcall.it.acc).(apply.head.a
20860 72 67 73 29 20 74 61 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6e 73 20 68 65 61 64 rgs).tail)))...........(fns.head
20880 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 61 6d 62 64 61 20 28 26 6f 70 74 69 6f 6e 61 6c 20 )...........((lambda.(&optional.
208a0 61 72 67 20 26 72 65 73 74 20 5f 29 20 61 72 67 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 61 arg.&rest._).arg)))))..(defun.-a
208c0 70 70 6c 69 66 79 20 28 66 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e pplify.(fn)..."Return.a.function
208e0 20 74 68 61 74 20 61 70 70 6c 69 65 73 20 46 4e 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 6c 69 73 .that.applies.FN.to.a.single.lis
20900 74 20 6f 66 20 61 72 67 73 2e 0a 54 68 69 73 20 63 68 61 6e 67 65 73 20 74 68 65 20 61 72 69 74 t.of.args..This.changes.the.arit
20920 79 20 6f 66 20 46 4e 20 66 72 6f 6d 20 74 61 6b 69 6e 67 20 4e 20 64 69 73 74 69 6e 63 74 20 61 y.of.FN.from.taking.N.distinct.a
20940 72 67 75 6d 65 6e 74 73 20 74 6f 0a 74 61 6b 69 6e 67 20 31 20 61 72 67 75 6d 65 6e 74 20 77 68 rguments.to.taking.1.argument.wh
20960 69 63 68 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 4e 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 ich.is.a.list.of.N.arguments."..
20980 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d .(declare.(pure.t).(side-effect-
209a0 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 6c 61 6d 62 64 61 20 28 61 72 67 free.error-free))...(lambda.(arg
209c0 73 29 20 28 61 70 70 6c 79 20 66 6e 20 61 72 67 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6f 6e s).(apply.fn.args)))..(defun.-on
209e0 20 28 6f 70 20 74 72 61 6e 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e .(op.trans)..."Return.a.function
20a00 20 74 68 61 74 20 63 61 6c 6c 73 20 54 52 41 4e 53 20 6f 6e 20 65 61 63 68 20 61 72 67 20 61 6e .that.calls.TRANS.on.each.arg.an
20a20 64 20 4f 50 20 6f 6e 20 74 68 65 20 72 65 73 75 6c 74 73 2e 0a 54 68 65 20 72 65 74 75 72 6e 65 d.OP.on.the.results..The.returne
20a40 64 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 d.function.takes.a.variable.numb
20a60 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2c 20 63 61 6c 6c 73 0a 74 68 65 20 66 75 6e 63 74 er.of.arguments,.calls.the.funct
20a80 69 6f 6e 20 54 52 41 4e 53 20 6f 6e 20 65 61 63 68 20 6f 6e 65 20 69 6e 20 74 75 72 6e 2c 20 61 ion.TRANS.on.each.one.in.turn,.a
20aa0 6e 64 20 74 68 65 6e 20 70 61 73 73 65 73 20 74 68 6f 73 65 0a 72 65 73 75 6c 74 73 20 61 73 20 nd.then.passes.those.results.as.
20ac0 74 68 65 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 4f 50 2c 20 69 6e 20 the.list.of.arguments.to.OP,.in.
20ae0 74 68 65 20 73 61 6d 65 20 6f 72 64 65 72 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 the.same.order...For.example,.th
20b00 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 69 72 73 20 6f 66 20 65 78 70 72 65 73 73 69 6f 6e 73 e.following.pairs.of.expressions
20b20 20 61 72 65 20 6d 6f 72 61 6c 6c 79 0a 65 71 75 69 76 61 6c 65 6e 74 3a 0a 0a 20 20 28 66 75 6e .are.morally.equivalent:....(fun
20b40 63 61 6c 6c 20 28 2d 6f 6e 20 23 5c 5c 3d 27 2b 20 23 5c 5c 3d 27 31 2b 29 20 31 20 32 20 33 29 call.(-on.#\\='+.#\\='1+).1.2.3)
20b60 20 3d 20 28 2b 20 28 31 2b 20 31 29 20 28 31 2b 20 32 29 20 28 31 2b 20 33 29 29 0a 20 20 28 66 .=.(+.(1+.1).(1+.2).(1+.3))...(f
20b80 75 6e 63 61 6c 6c 20 28 2d 6f 6e 20 23 5c 5c 3d 27 2b 20 23 5c 5c 3d 27 31 2b 29 29 20 20 20 20 uncall.(-on.#\\='+.#\\='1+))....
20ba0 20 20 20 3d 20 28 2b 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 ...=.(+)"...(declare.(pure.t).(s
20bc0 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 ide-effect-free.error-free))...(
20be0 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 20 20 3b 3b 20 54 68 69 73 20 lambda.(&rest.args).....;;.This.
20c00 75 6e 72 6f 6c 6c 69 6e 67 20 73 65 65 6d 73 20 74 6f 20 62 65 20 61 20 72 65 6c 61 74 69 76 65 unrolling.seems.to.be.a.relative
20c20 6c 79 20 63 68 65 61 70 20 77 61 79 20 74 6f 20 6b 65 65 70 20 74 68 65 0a 20 20 20 20 3b 3b 20 ly.cheap.way.to.keep.the.....;;.
20c40 6f 76 65 72 68 65 61 64 20 6f 66 20 60 6d 61 70 63 61 72 27 20 2b 20 60 61 70 70 6c 79 27 20 69 overhead.of.`mapcar'.+.`apply'.i
20c60 6e 20 63 68 65 63 6b 2e 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 63 64 64 72 20 61 72 67 73 29 0a n.check......(cond.((cddr.args).
20c80 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 6f 70 20 28 6d 61 70 63 61 72 20 74 72 61 ...........(apply.op.(mapcar.tra
20ca0 6e 73 20 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 63 64 72 20 61 72 67 73 29 ns.args)))...........((cdr.args)
20cc0 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6f 70 20 28 66 75 6e 63 61 6c 6c ............(funcall.op.(funcall
20ce0 20 74 72 61 6e 73 20 28 63 61 72 20 61 72 67 73 29 29 20 28 66 75 6e 63 61 6c 6c 20 74 72 61 6e .trans.(car.args)).(funcall.tran
20d00 73 20 28 63 61 64 72 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 s.(cadr.args))))...........(args
20d20 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6f 70 20 28 66 75 6e 63 61 6c 6c ............(funcall.op.(funcall
20d40 20 74 72 61 6e 73 20 28 63 61 72 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 .trans.(car.args))))...........(
20d60 28 66 75 6e 63 61 6c 6c 20 6f 70 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 66 6c 69 70 20 28 (funcall.op)))))..(defun.-flip.(
20d80 66 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 61 fn)..."Return.a.function.that.ca
20da0 6c 6c 73 20 46 4e 20 77 69 74 68 20 69 74 73 20 61 72 67 75 6d 65 6e 74 73 20 72 65 76 65 72 73 lls.FN.with.its.arguments.revers
20dc0 65 64 2e 0a 54 68 65 20 72 65 74 75 72 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 ed..The.returned.function.takes.
20de0 74 68 65 20 73 61 6d 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 the.same.number.of.arguments.as.
20e00 46 4e 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 FN...For.example,.the.following.
20e20 74 77 6f 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 6d 6f 72 61 6c 6c 79 0a 65 71 75 69 two.expressions.are.morally.equi
20e40 76 61 6c 65 6e 74 3a 0a 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 66 6c 69 70 20 23 5c 5c 3d 27 valent:....(funcall.(-flip.#\\='
20e60 2d 29 20 31 20 32 29 20 3d 20 28 2d 20 32 20 31 29 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 72 -).1.2).=.(-.2.1)..See.also:.`-r
20e80 6f 74 61 74 65 2d 61 72 67 73 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 otate-args'."...(declare.(pure.t
20ea0 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 ).(side-effect-free.error-free))
20ec0 0a 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 20 3b 3b 20 4f 70 65 6e 2d ...(lambda.(&rest.args).;;.Open-
20ee0 63 6f 64 65 20 66 6f 72 20 73 70 65 65 64 2e 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 63 64 64 72 code.for.speed......(cond.((cddr
20f00 20 61 72 67 73 29 20 28 61 70 70 6c 79 20 66 6e 20 28 6e 72 65 76 65 72 73 65 20 61 72 67 73 29 .args).(apply.fn.(nreverse.args)
20f20 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 63 64 72 20 61 72 67 73 29 20 28 66 75 6e 63 61 6c ))...........((cdr.args).(funcal
20f40 6c 20 66 6e 20 28 63 61 64 72 20 61 72 67 73 29 20 28 63 61 72 20 61 72 67 73 29 29 29 0a 20 20 l.fn.(cadr.args).(car.args)))...
20f60 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 28 63 61 72 20 61 ........(args.(funcall.fn.(car.a
20f80 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 61 6c 6c 20 66 6e 29 29 29 rgs)))...........((funcall.fn)))
20fa0 29 29 0a 0a 28 64 65 66 75 6e 20 2d 72 6f 74 61 74 65 2d 61 72 67 73 20 28 6e 20 66 6e 29 0a 20 ))..(defun.-rotate-args.(n.fn)..
20fc0 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 61 6c 6c 73 20 46 ."Return.a.function.that.calls.F
20fe0 4e 20 77 69 74 68 20 61 72 67 73 20 72 6f 74 61 74 65 64 20 4e 20 70 6c 61 63 65 73 20 74 6f 20 N.with.args.rotated.N.places.to.
21000 74 68 65 20 72 69 67 68 74 2e 0a 54 68 65 20 72 65 74 75 72 6e 65 64 20 66 75 6e 63 74 69 6f 6e the.right..The.returned.function
21020 20 74 61 6b 65 73 20 74 68 65 20 73 61 6d 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 .takes.the.same.number.of.argume
21040 6e 74 73 20 61 73 20 46 4e 2c 0a 72 6f 74 61 74 65 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 nts.as.FN,.rotates.the.list.of.a
21060 72 67 75 6d 65 6e 74 73 20 4e 20 70 6c 61 63 65 73 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 28 rguments.N.places.to.the.right.(
21080 6c 65 66 74 20 69 66 20 4e 20 69 73 0a 6e 65 67 61 74 69 76 65 29 20 6a 75 73 74 20 6c 69 6b 65 left.if.N.is.negative).just.like
210a0 20 60 2d 72 6f 74 61 74 65 27 2c 20 61 6e 64 20 61 70 70 6c 69 65 73 20 46 4e 20 74 6f 20 74 68 .`-rotate',.and.applies.FN.to.th
210c0 65 20 72 65 73 75 6c 74 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 66 6c 69 70 27 2e 22 0a 20 e.result...See.also:.`-flip'."..
210e0 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d .(declare.(pure.t).(side-effect-
21100 66 72 65 65 20 74 29 29 0a 20 20 28 69 66 20 28 7a 65 72 6f 70 20 6e 29 0a 20 20 20 20 20 20 66 free.t))...(if.(zerop.n).......f
21120 6e 0a 20 20 20 20 28 6c 65 74 20 28 28 65 76 65 6e 20 28 3d 20 28 25 20 6e 20 32 29 20 30 29 29 n.....(let.((even.(=.(%.n.2).0))
21140 29 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 20 ).......(lambda.(&rest.args)....
21160 20 20 20 20 20 28 63 6f 6e 64 20 28 28 63 64 64 72 20 61 72 67 73 29 20 3b 3b 20 4f 70 65 6e 2d .....(cond.((cddr.args).;;.Open-
21180 63 6f 64 65 20 66 6f 72 20 73 70 65 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 code.for.speed.................(
211a0 61 70 70 6c 79 20 66 6e 20 28 2d 72 6f 74 61 74 65 20 6e 20 61 72 67 73 29 29 29 0a 20 20 20 20 apply.fn.(-rotate.n.args))).....
211c0 20 20 20 20 20 20 20 20 20 20 28 28 63 64 72 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 ..........((cdr.args)...........
211e0 20 20 20 20 20 28 6c 65 74 20 28 28 66 73 74 20 28 63 61 72 20 61 72 67 73 29 29 0a 20 20 20 20 .....(let.((fst.(car.args)).....
21200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6e 64 20 28 63 61 64 72 20 61 72 67 73 .................(snd.(cadr.args
21220 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 6e )))..................(funcall.fn
21240 20 28 69 66 20 65 76 65 6e 20 66 73 74 20 73 6e 64 29 20 28 69 66 20 65 76 65 6e 20 73 6e 64 20 .(if.even.fst.snd).(if.even.snd.
21260 66 73 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 0a 20 20 20 20 fst))))...............(args.....
21280 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 28 63 61 72 20 61 72 67 73 ...........(funcall.fn.(car.args
212a0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 61 6c 6c 20 66 6e 29 29 )))...............((funcall.fn))
212c0 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f 6e 73 74 20 28 63 29 0a 20 20 22 52 65 74 75 )))))..(defun.-const.(c)..."Retu
212e0 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 43 20 69 67 6e rn.a.function.that.returns.C.ign
21300 6f 72 69 6e 67 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a oring.any.additional.arguments..
21320 0a 49 6e 20 74 79 70 65 73 3a 20 61 20 2d 3e 20 62 20 2d 3e 20 61 22 0a 20 20 28 64 65 63 6c 61 .In.types:.a.->.b.->.a"...(decla
21340 72 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 re.(pure.t).(side-effect-free.er
21360 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 63 ror-free))...(lambda.(&rest._).c
21380 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 2d 63 75 74 20 28 26 72 65 73 74 20 70 61 72 61 6d 73 ))..(defmacro.-cut.(&rest.params
213a0 29 0a 20 20 22 54 61 6b 65 20 6e 2d 61 72 79 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 6e 20 61 )..."Take.n-ary.function.and.n.a
213c0 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 73 70 65 63 69 61 6c 69 7a 65 20 73 6f 6d 65 20 6f 66 20 rguments.and.specialize.some.of.
213e0 74 68 65 6d 2e 0a 41 72 67 75 6d 65 6e 74 73 20 64 65 6e 6f 74 65 64 20 62 79 20 3c 3e 20 77 69 them..Arguments.denoted.by.<>.wi
21400 6c 6c 20 62 65 20 6c 65 66 74 20 75 6e 73 70 65 63 69 61 6c 69 7a 65 64 2e 0a 0a 53 65 65 20 53 ll.be.left.unspecialized...See.S
21420 52 46 49 2d 32 36 20 66 6f 72 20 64 65 74 61 69 6c 65 64 20 64 65 73 63 72 69 70 74 69 6f 6e 2e RFI-26.for.detailed.description.
21440 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 "...(declare.(debug.(&optional.s
21460 65 78 70 20 26 72 65 73 74 20 26 6f 72 20 22 3c 3e 22 20 66 6f 72 6d 29 29 29 0a 20 20 28 6c 65 exp.&rest.&or."<>".form)))...(le
21480 74 2a 20 28 28 69 20 30 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 2d 2d 6b 65 65 70 t*.((i.0)..........(args.(--keep
214a0 20 28 77 68 65 6e 20 28 65 71 20 69 74 20 27 3c 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(when.(eq.it.'<>)..............
214c0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 20 28 31 2b 20 69 29 29 0a 20 20 20 20 ............(setq.i.(1+.i)).....
214e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 79 6d 62 6f .....................(make-symbo
21500 6c 20 28 66 6f 72 6d 61 74 20 22 44 25 64 22 20 69 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 l.(format."D%d".i)))............
21520 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 29 29 29 0a 20 20 20 20 60 28 6c 61 6d 62 ............params))).....`(lamb
21540 64 61 20 2c 61 72 67 73 0a 20 20 20 20 20 20 20 2c 28 6c 65 74 20 28 28 62 6f 64 79 20 28 2d 2d da.,args........,(let.((body.(--
21560 6d 61 70 20 28 69 66 20 28 65 71 20 69 74 20 27 3c 3e 29 20 28 70 6f 70 20 61 72 67 73 29 20 69 map.(if.(eq.it.'<>).(pop.args).i
21580 74 29 20 70 61 72 61 6d 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 28 t).params)))...........(if.(eq.(
215a0 63 61 72 20 70 61 72 61 6d 73 29 20 27 3c 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 car.params).'<>)...............(
215c0 63 6f 6e 73 20 23 27 66 75 6e 63 61 6c 6c 20 62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 cons.#'funcall.body)............
215e0 20 62 6f 64 79 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 6e 6f 74 20 28 70 72 65 64 29 0a 20 .body)))))..(defun.-not.(pred)..
21600 20 22 52 65 74 75 72 6e 20 61 20 70 72 65 64 69 63 61 74 65 20 74 68 61 74 20 6e 65 67 61 74 65 ."Return.a.predicate.that.negate
21620 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 2e 0a 54 68 65 20 72 65 74 75 72 6e s.the.result.of.PRED..The.return
21640 65 64 20 70 72 65 64 69 63 61 74 65 20 70 61 73 73 65 73 20 69 74 73 20 61 72 67 75 6d 65 6e 74 ed.predicate.passes.its.argument
21660 73 20 74 6f 20 50 52 45 44 2e 20 20 49 66 20 50 52 45 44 0a 72 65 74 75 72 6e 73 20 6e 69 6c 2c s.to.PRED...If.PRED.returns.nil,
21680 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 3b 20 6f 74 68 65 72 77 69 73 .the.result.is.non-nil;.otherwis
216a0 65 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 6e 69 6c 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 e.the.result.is.nil...See.also:.
216c0 60 2d 61 6e 64 66 6e 27 20 61 6e 64 20 60 2d 6f 72 66 6e 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 `-andfn'.and.`-orfn'."...(declar
216e0 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 e.(pure.t).(side-effect-free.err
21700 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 or-free))...(lambda.(&rest.args)
21720 20 28 6e 6f 74 20 28 61 70 70 6c 79 20 70 72 65 64 20 61 72 67 73 29 29 29 29 0a 0a 28 64 65 66 .(not.(apply.pred.args))))..(def
21740 75 6e 20 2d 6f 72 66 6e 20 28 26 72 65 73 74 20 70 72 65 64 73 29 0a 20 20 22 52 65 74 75 72 6e un.-orfn.(&rest.preds)..."Return
21760 20 61 20 70 72 65 64 69 63 61 74 65 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 69 .a.predicate.that.returns.the.fi
21780 72 73 74 20 6e 6f 6e 2d 6e 69 6c 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 53 2e 0a 54 68 65 rst.non-nil.result.of.PREDS..The
217a0 20 72 65 74 75 72 6e 65 64 20 70 72 65 64 69 63 61 74 65 20 74 61 6b 65 73 20 61 20 76 61 72 69 .returned.predicate.takes.a.vari
217c0 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2c 0a 70 61 73 73 65 73 able.number.of.arguments,.passes
217e0 20 74 68 65 6d 20 74 6f 20 65 61 63 68 20 70 72 65 64 69 63 61 74 65 20 69 6e 20 50 52 45 44 53 .them.to.each.predicate.in.PREDS
21800 20 69 6e 20 74 75 72 6e 20 75 6e 74 69 6c 20 6f 6e 65 20 6f 66 20 74 68 65 6d 0a 72 65 74 75 72 .in.turn.until.one.of.them.retur
21820 6e 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 61 74 20 6e 6f 6e ns.non-nil,.and.returns.that.non
21840 2d 6e 69 6c 20 72 65 73 75 6c 74 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 0a 74 68 65 20 -nil.result.without.calling.the.
21860 72 65 6d 61 69 6e 69 6e 67 20 50 52 45 44 53 2e 20 20 49 66 20 61 6c 6c 20 50 52 45 44 53 20 72 remaining.PREDS...If.all.PREDS.r
21880 65 74 75 72 6e 20 6e 69 6c 2c 20 6f 72 20 69 66 20 6e 6f 20 50 52 45 44 53 20 61 72 65 0a 67 69 eturn.nil,.or.if.no.PREDS.are.gi
218a0 76 65 6e 2c 20 74 68 65 20 72 65 74 75 72 6e 65 64 20 70 72 65 64 69 63 61 74 65 20 72 65 74 75 ven,.the.returned.predicate.retu
218c0 72 6e 73 20 6e 69 6c 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 61 6e 64 66 6e 27 20 61 6e 64 rns.nil...See.also:.`-andfn'.and
218e0 20 60 2d 6e 6f 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 .`-not'."...(declare.(pure.t).(s
21900 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 3b ide-effect-free.error-free))...;
21920 3b 20 4f 70 65 6e 2d 63 6f 64 65 20 66 6f 72 20 73 70 65 65 64 2e 0a 20 20 28 63 6f 6e 64 20 28 ;.Open-code.for.speed....(cond.(
21940 28 63 64 72 20 70 72 65 64 73 29 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 (cdr.preds).(lambda.(&rest.args)
21960 20 28 2d 2d 73 6f 6d 65 20 28 61 70 70 6c 79 20 69 74 20 61 72 67 73 29 20 70 72 65 64 73 29 29 .(--some.(apply.it.args).preds))
21980 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 64 73 20 28 63 61 72 20 70 72 65 64 73 29 29 0a 20 20 ).........(preds.(car.preds))...
219a0 20 20 20 20 20 20 28 23 27 69 67 6e 6f 72 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 61 6e 64 66 ......(#'ignore)))..(defun.-andf
219c0 6e 20 28 26 72 65 73 74 20 70 72 65 64 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 65 64 n.(&rest.preds)..."Return.a.pred
219e0 69 63 61 74 65 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 61 6c icate.that.returns.non-nil.if.al
21a00 6c 20 50 52 45 44 53 20 64 6f 20 73 6f 2e 0a 54 68 65 20 72 65 74 75 72 6e 65 64 20 70 72 65 64 l.PREDS.do.so..The.returned.pred
21a20 69 63 61 74 65 20 50 20 74 61 6b 65 73 20 61 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 icate.P.takes.a.variable.number.
21a40 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 0a 70 61 73 73 65 73 20 74 68 65 6d 20 74 6f 20 of.arguments.and.passes.them.to.
21a60 65 61 63 68 20 70 72 65 64 69 63 61 74 65 20 69 6e 20 50 52 45 44 53 20 69 6e 20 74 75 72 6e 2e each.predicate.in.PREDS.in.turn.
21a80 20 20 49 66 20 61 6e 79 20 6f 6e 65 20 6f 66 0a 50 52 45 44 53 20 72 65 74 75 72 6e 73 20 6e 69 ..If.any.one.of.PREDS.returns.ni
21aa0 6c 2c 20 50 20 61 6c 73 6f 20 72 65 74 75 72 6e 73 20 6e 69 6c 20 77 69 74 68 6f 75 74 20 63 61 l,.P.also.returns.nil.without.ca
21ac0 6c 6c 69 6e 67 20 74 68 65 0a 72 65 6d 61 69 6e 69 6e 67 20 50 52 45 44 53 2e 20 20 49 66 20 61 lling.the.remaining.PREDS...If.a
21ae0 6c 6c 20 50 52 45 44 53 20 72 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 50 20 72 65 74 75 72 ll.PREDS.return.non-nil,.P.retur
21b00 6e 73 20 74 68 65 20 6c 61 73 74 0a 73 75 63 68 20 76 61 6c 75 65 2e 20 20 49 66 20 6e 6f 20 50 ns.the.last.such.value...If.no.P
21b20 52 45 44 53 20 61 72 65 20 67 69 76 65 6e 2c 20 50 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73 REDS.are.given,.P.always.returns
21b40 20 6e 6f 6e 2d 6e 69 6c 2e 0a 0a 53 65 65 20 61 6c 73 6f 3a 20 60 2d 6f 72 66 6e 27 20 61 6e 64 .non-nil...See.also:.`-orfn'.and
21b60 20 60 2d 6e 6f 74 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 20 28 73 .`-not'."...(declare.(pure.t).(s
21b80 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a 20 20 3b ide-effect-free.error-free))...;
21ba0 3b 20 4f 70 65 6e 2d 63 6f 64 65 20 66 6f 72 20 73 70 65 65 64 2e 0a 20 20 28 63 6f 6e 64 20 28 ;.Open-code.for.speed....(cond.(
21bc0 28 63 64 72 20 70 72 65 64 73 29 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 61 72 67 73 29 (cdr.preds).(lambda.(&rest.args)
21be0 20 28 2d 2d 65 76 65 72 79 20 28 61 70 70 6c 79 20 69 74 20 61 72 67 73 29 20 70 72 65 64 73 29 .(--every.(apply.it.args).preds)
21c00 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 65 64 73 20 28 63 61 72 20 70 72 65 64 73 29 29 0a 20 )).........(preds.(car.preds))..
21c20 20 20 20 20 20 20 20 3b 3b 20 41 73 20 61 20 60 70 75 72 65 27 20 66 75 6e 63 74 69 6f 6e 2c 20 .......;;.As.a.`pure'.function,.
21c40 74 68 69 73 20 72 75 6e 74 69 6d 65 20 63 68 65 63 6b 20 6d 61 79 20 67 65 6e 65 72 61 74 65 0a this.runtime.check.may.generate.
21c60 20 20 20 20 20 20 20 20 3b 3b 20 62 61 63 6b 77 61 72 64 2d 69 6e 63 6f 6d 70 61 74 69 62 6c 65 ........;;.backward-incompatible
21c80 20 62 79 74 65 63 6f 64 65 20 66 6f 72 20 60 28 2d 61 6e 64 66 6e 29 27 20 61 74 20 63 6f 6d 70 .bytecode.for.`(-andfn)'.at.comp
21ca0 69 6c 65 2d 74 69 6d 65 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 62 75 74 20 49 20 64 6f 75 62 74 ile-time,.........;;.but.I.doubt
21cc0 20 74 68 61 74 27 73 20 61 20 70 72 6f 62 6c 65 6d 20 69 6e 20 70 72 61 63 74 69 63 65 20 28 66 .that's.a.problem.in.practice.(f
21ce0 61 6d 6f 75 73 20 6c 61 73 74 20 77 6f 72 64 73 29 2e 0a 20 20 20 20 20 20 20 20 28 28 66 62 6f amous.last.words)..........((fbo
21d00 75 6e 64 70 20 27 61 6c 77 61 79 73 29 20 23 27 61 6c 77 61 79 73 29 0a 20 20 20 20 20 20 20 20 undp.'always).#'always).........
21d20 28 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e ((lambda.(&rest._).t))))..(defun
21d40 20 2d 69 74 65 72 61 74 65 66 6e 20 28 66 6e 20 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 .-iteratefn.(fn.n)..."Return.a.f
21d60 75 6e 63 74 69 6f 6e 20 46 4e 20 63 6f 6d 70 6f 73 65 64 20 4e 20 74 69 6d 65 73 20 77 69 74 68 unction.FN.composed.N.times.with
21d80 20 69 74 73 65 6c 66 2e 0a 0a 46 4e 20 69 73 20 61 20 75 6e 61 72 79 20 66 75 6e 63 74 69 6f 6e .itself...FN.is.a.unary.function
21da0 2e 20 20 49 66 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 75 73 65 20 61 20 66 75 6e 63 74 69 6f 6e ...If.you.need.to.use.a.function
21dc0 20 6f 66 20 68 69 67 68 65 72 0a 61 72 69 74 79 2c 20 75 73 65 20 60 2d 61 70 70 6c 69 66 79 27 .of.higher.arity,.use.`-applify'
21de0 20 66 69 72 73 74 20 74 6f 20 74 75 72 6e 20 69 74 20 69 6e 74 6f 20 61 20 75 6e 61 72 79 20 66 .first.to.turn.it.into.a.unary.f
21e00 75 6e 63 74 69 6f 6e 2e 0a 0a 57 69 74 68 20 6e 20 3d 20 30 2c 20 74 68 69 73 20 61 63 74 73 20 unction...With.n.=.0,.this.acts.
21e20 61 73 20 69 64 65 6e 74 69 74 79 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 49 6e 20 74 79 70 65 73 3a as.identity.function...In.types:
21e40 20 28 61 20 2d 3e 20 61 29 20 2d 3e 20 49 6e 74 20 2d 3e 20 61 20 2d 3e 20 61 2e 0a 0a 54 68 69 .(a.->.a).->.Int.->.a.->.a...Thi
21e60 73 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 69 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 s.function.satisfies.the.followi
21e80 6e 67 20 6c 61 77 3a 0a 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 69 74 65 72 61 74 65 66 6e 20 ng.law:....(funcall.(-iteratefn.
21ea0 66 6e 20 6e 29 20 69 6e 69 74 29 20 3d 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 28 2d 69 74 65 72 fn.n).init).=.(-last-item.(-iter
21ec0 61 74 65 20 66 6e 20 69 6e 69 74 20 28 31 2b 20 6e 29 29 29 2e 22 0a 20 20 28 64 65 63 6c 61 72 ate.fn.init.(1+.n)))."...(declar
21ee0 65 20 28 70 75 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 e.(pure.t).(side-effect-free.err
21f00 6f 72 2d 66 72 65 65 29 29 0a 20 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2d 2d 64 6f 74 69 6d or-free))...(lambda.(x).(--dotim
21f20 65 73 20 6e 20 28 73 65 74 71 20 78 20 28 66 75 6e 63 61 6c 6c 20 66 6e 20 78 29 29 29 20 78 29 es.n.(setq.x.(funcall.fn.x))).x)
21f40 29 0a 0a 28 64 65 66 75 6e 20 2d 63 6f 75 6e 74 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 65 )..(defun.-counter.(&optional.be
21f60 67 20 65 6e 64 20 69 6e 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6c 6f 73 75 72 65 20 74 g.end.inc)..."Return.a.closure.t
21f80 68 61 74 20 63 6f 75 6e 74 73 20 66 72 6f 6d 20 42 45 47 20 74 6f 20 45 4e 44 2c 20 77 69 74 68 hat.counts.from.BEG.to.END,.with
21fa0 20 69 6e 63 72 65 6d 65 6e 74 20 49 4e 43 2e 0a 0a 54 68 65 20 63 6c 6f 73 75 72 65 20 77 69 6c .increment.INC...The.closure.wil
21fc0 6c 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 78 74 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 63 l.return.the.next.value.in.the.c
21fe0 6f 75 6e 74 69 6e 67 20 73 65 71 75 65 6e 63 65 0a 65 61 63 68 20 74 69 6d 65 20 69 74 20 69 73 ounting.sequence.each.time.it.is
22000 20 63 61 6c 6c 65 64 2c 20 61 6e 64 20 6e 69 6c 20 61 66 74 65 72 20 45 4e 44 20 69 73 20 72 65 .called,.and.nil.after.END.is.re
22020 61 63 68 65 64 2e 20 42 45 47 0a 64 65 66 61 75 6c 74 73 20 74 6f 20 30 2c 20 49 4e 43 20 64 65 ached..BEG.defaults.to.0,.INC.de
22040 66 61 75 6c 74 73 20 74 6f 20 31 2c 20 61 6e 64 20 69 66 20 45 4e 44 20 69 73 20 6e 69 6c 2c 20 faults.to.1,.and.if.END.is.nil,.
22060 74 68 65 20 63 6f 75 6e 74 65 72 0a 77 69 6c 6c 20 69 6e 63 72 65 6d 65 6e 74 20 69 6e 64 65 66 the.counter.will.increment.indef
22080 69 6e 69 74 65 6c 79 2e 0a 0a 54 68 65 20 63 6c 6f 73 75 72 65 20 61 63 63 65 70 74 73 20 61 6e initely...The.closure.accepts.an
220a0 79 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2c 20 77 68 69 63 68 20 61 72 65 y.number.of.arguments,.which.are
220c0 20 64 69 73 63 61 72 64 65 64 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 72 65 20 74 29 .discarded."...(declare.(pure.t)
220e0 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 65 72 72 6f 72 2d 66 72 65 65 29 29 0a .(side-effect-free.error-free)).
22100 20 20 28 6c 65 74 20 28 28 69 6e 63 20 28 6f 72 20 69 6e 63 20 31 29 29 0a 20 20 20 20 20 20 20 ..(let.((inc.(or.inc.1))........
22120 20 28 6e 20 28 6f 72 20 62 65 67 20 30 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 .(n.(or.beg.0))).....(lambda.(&r
22140 65 73 74 20 5f 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 65 6e 64 29 est._).......(when.(or.(not.end)
22160 20 28 3c 20 6e 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 6e 0a 20 20 20 .(<.n.end)).........(prog1.n....
22180 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 20 28 2b 20 6e 20 69 6e 63 29 29 29 29 29 29 29 0a 0a .......(setq.n.(+.n.inc)))))))..
221a0 28 64 65 66 76 61 72 20 2d 66 69 78 66 6e 2d 6d 61 78 2d 69 74 65 72 61 74 69 6f 6e 73 20 31 30 (defvar.-fixfn-max-iterations.10
221c0 30 30 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 00..."The.default.maximum.number
221e0 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 73 20 70 65 72 66 6f 72 6d 65 64 20 62 79 20 60 2d 66 69 .of.iterations.performed.by.`-fi
22200 78 66 6e 27 0a 20 20 75 6e 6c 65 73 73 20 6f 74 68 65 72 77 69 73 65 20 73 70 65 63 69 66 69 65 xfn'...unless.otherwise.specifie
22220 64 2e 22 29 0a 0a 28 64 65 66 75 6e 20 2d 66 69 78 66 6e 20 28 66 6e 20 26 6f 70 74 69 6f 6e 61 d.")..(defun.-fixfn.(fn.&optiona
22240 6c 20 65 71 75 61 6c 2d 74 65 73 74 20 68 61 6c 74 2d 74 65 73 74 29 0a 20 20 22 52 65 74 75 72 l.equal-test.halt-test)..."Retur
22260 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 6f 6d 70 75 74 65 73 20 74 68 65 20 28 n.a.function.that.computes.the.(
22280 6c 65 61 73 74 29 20 66 69 78 70 6f 69 6e 74 20 6f 66 20 46 4e 2e 0a 0a 46 4e 20 6d 75 73 74 20 least).fixpoint.of.FN...FN.must.
222a0 62 65 20 61 20 75 6e 61 72 79 20 66 75 6e 63 74 69 6f 6e 2e 20 54 68 65 20 72 65 74 75 72 6e 65 be.a.unary.function..The.returne
222c0 64 20 6c 61 6d 62 64 61 20 74 61 6b 65 73 20 61 20 73 69 6e 67 6c 65 0a 61 72 67 75 6d 65 6e 74 d.lambda.takes.a.single.argument
222e0 2c 20 58 2c 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 66 6f 72 20 74 68 65 20 66 ,.X,.the.initial.value.for.the.f
22300 69 78 70 6f 69 6e 74 20 69 74 65 72 61 74 69 6f 6e 2e 20 54 68 65 0a 69 74 65 72 61 74 69 6f 6e ixpoint.iteration..The.iteration
22320 20 68 61 6c 74 73 20 77 68 65 6e 20 65 69 74 68 65 72 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 .halts.when.either.of.the.follow
22340 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 20 69 73 20 73 61 74 69 73 66 69 65 64 3a 0a 0a 20 31 ing.conditions.is.satisfied:...1
22360 2e 20 49 74 65 72 61 74 69 6f 6e 20 63 6f 6e 76 65 72 67 65 73 20 74 6f 20 74 68 65 20 66 69 78 ..Iteration.converges.to.the.fix
22380 70 6f 69 6e 74 2c 20 77 69 74 68 20 65 71 75 61 6c 69 74 79 20 62 65 69 6e 67 0a 20 20 20 20 74 point,.with.equality.being.....t
223a0 65 73 74 65 64 20 75 73 69 6e 67 20 45 51 55 41 4c 2d 54 45 53 54 2e 20 49 66 20 45 51 55 41 4c ested.using.EQUAL-TEST..If.EQUAL
223c0 2d 54 45 53 54 20 69 73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c 0a 20 20 20 20 60 65 71 75 -TEST.is.not.specified,.....`equ
223e0 61 6c 27 20 69 73 20 75 73 65 64 2e 20 46 6f 72 20 66 75 6e 63 74 69 6f 6e 73 20 6f 76 65 72 20 al'.is.used..For.functions.over.
22400 74 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 0a 20 20 20 20 6e 75 6d 62 65 72 73 2c 20 the.floating.point.....numbers,.
22420 69 74 20 6d 61 79 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 70 72 6f 76 69 64 65 20 61 it.may.be.necessary.to.provide.a
22440 6e 20 61 70 70 72 6f 70 72 69 61 74 65 0a 20 20 20 20 61 70 70 72 6f 78 69 6d 61 74 65 20 63 6f n.appropriate.....approximate.co
22460 6d 70 61 72 69 73 6f 6e 20 74 65 73 74 2e 0a 0a 20 32 2e 20 48 41 4c 54 2d 54 45 53 54 20 72 65 mparison.test....2..HALT-TEST.re
22480 74 75 72 6e 73 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 2e 20 48 41 4c 54 2d 54 45 53 54 turns.a.non-nil.value..HALT-TEST
224a0 20 64 65 66 61 75 6c 74 73 20 74 6f 20 61 0a 20 20 20 20 73 69 6d 70 6c 65 20 63 6f 75 6e 74 65 .defaults.to.a.....simple.counte
224c0 72 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 20 61 66 74 65 72 20 60 2d 66 69 78 66 6e 2d 6d r.that.returns.t.after.`-fixfn-m
224e0 61 78 2d 69 74 65 72 61 74 69 6f 6e 73 27 2c 0a 20 20 20 20 74 6f 20 67 75 61 72 64 20 61 67 61 ax-iterations',.....to.guard.aga
22500 69 6e 73 74 20 69 6e 66 69 6e 69 74 65 20 69 74 65 72 61 74 69 6f 6e 2e 20 4f 74 68 65 72 77 69 inst.infinite.iteration..Otherwi
22520 73 65 2c 20 48 41 4c 54 2d 54 45 53 54 0a 20 20 20 20 6d 75 73 74 20 62 65 20 61 20 66 75 6e 63 se,.HALT-TEST.....must.be.a.func
22540 74 69 6f 6e 20 74 68 61 74 20 61 63 63 65 70 74 73 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d tion.that.accepts.a.single.argum
22560 65 6e 74 2c 20 74 68 65 0a 20 20 20 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 20 6f 66 20 58 2c ent,.the.....current.value.of.X,
22580 20 61 6e 64 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 20 61 73 20 6c 6f 6e 67 20 61 73 20 .and.returns.non-nil.as.long.as.
225a0 69 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 73 68 6f 75 6c 64 20 63 6f 6e 74 69 6e 75 65 2e 20 49 iteration.....should.continue..I
225c0 6e 20 74 68 69 73 20 77 61 79 2c 20 61 20 6d 6f 72 65 20 73 6f 70 68 69 73 74 69 63 61 74 65 64 n.this.way,.a.more.sophisticated
225e0 0a 20 20 20 20 63 6f 6e 76 65 72 67 65 6e 63 65 20 74 65 73 74 20 6d 61 79 20 62 65 20 73 75 70 .....convergence.test.may.be.sup
22600 70 6c 69 65 64 20 62 79 20 74 68 65 20 63 61 6c 6c 65 72 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e plied.by.the.caller...The.return
22620 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6c 61 6d 62 64 61 20 69 73 20 65 69 74 68 65 72 20 74 .value.of.the.lambda.is.either.t
22640 68 65 20 66 69 78 70 6f 69 6e 74 20 6f 72 2c 20 69 66 0a 69 74 65 72 61 74 69 6f 6e 20 68 61 6c he.fixpoint.or,.if.iteration.hal
22660 74 65 64 20 62 65 66 6f 72 65 20 63 6f 6e 76 65 72 67 69 6e 67 2c 20 61 20 63 6f 6e 73 20 77 69 ted.before.converging,.a.cons.wi
22680 74 68 20 63 61 72 20 60 68 61 6c 74 65 64 27 20 61 6e 64 0a 63 64 72 20 74 68 65 20 66 69 6e 61 th.car.`halted'.and.cdr.the.fina
226a0 6c 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 48 41 4c 54 2d 54 45 53 54 2e 0a 0a 49 6e 20 74 79 70 l.output.from.HALT-TEST...In.typ
226c0 65 73 3a 20 28 61 20 2d 3e 20 61 29 20 2d 3e 20 61 20 2d 3e 20 61 2e 22 0a 20 20 28 64 65 63 6c es:.(a.->.a).->.a.->.a."...(decl
226e0 61 72 65 20 28 69 6d 70 6f 72 74 61 6e 74 2d 72 65 74 75 72 6e 2d 76 61 6c 75 65 20 74 29 29 0a are.(important-return-value.t)).
22700 20 20 28 6c 65 74 20 28 28 65 71 66 6e 20 20 20 28 6f 72 20 65 71 75 61 6c 2d 74 65 73 74 20 27 ..(let.((eqfn...(or.equal-test.'
22720 65 71 75 61 6c 29 29 0a 20 20 20 20 20 20 20 20 28 68 61 6c 74 66 6e 20 28 6f 72 20 68 61 6c 74 equal)).........(haltfn.(or.halt
22740 2d 74 65 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 6e 6f 74 0a -test.....................(-not.
22760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 75 6e 74 65 72 20 30 .....................(-counter.0
22780 20 2d 66 69 78 66 6e 2d 6d 61 78 2d 69 74 65 72 61 74 69 6f 6e 73 29 29 29 29 29 0a 20 20 20 20 .-fixfn-max-iterations))))).....
227a0 28 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 20 28 66 75 6e (lambda.(x).......(let.((re.(fun
227c0 63 61 6c 6c 20 66 6e 20 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 68 61 6c 74 3f 20 28 call.fn.x)).............(halt?.(
227e0 66 75 6e 63 61 6c 6c 20 68 61 6c 74 66 6e 20 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 funcall.haltfn.x))).........(whi
22800 6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 68 61 6c 74 3f 29 20 28 6e 6f 74 20 28 66 75 6e 63 61 6c le.(and.(not.halt?).(not.(funcal
22820 6c 20 65 71 66 6e 20 78 20 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 78 l.eqfn.x.re)))...........(setq.x
22840 20 20 20 20 20 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 20 20 20 20 28 66 .....re.................re....(f
22860 75 6e 63 61 6c 6c 20 66 6e 20 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 61 uncall.fn.re).................ha
22880 6c 74 3f 20 28 66 75 6e 63 61 6c 6c 20 68 61 6c 74 66 6e 20 72 65 29 29 29 0a 20 20 20 20 20 20 lt?.(funcall.haltfn.re))).......
228a0 20 20 28 69 66 20 68 61 6c 74 3f 20 28 63 6f 6e 73 20 27 68 61 6c 74 65 64 20 68 61 6c 74 3f 29 ..(if.halt?.(cons.'halted.halt?)
228c0 0a 20 20 20 20 20 20 20 20 20 20 72 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 2d 70 72 6f 64 ...........re)))))..(defun.-prod
228e0 66 6e 20 28 26 72 65 73 74 20 66 6e 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 fn.(&rest.fns)..."Return.a.funct
22900 69 6f 6e 20 74 68 61 74 20 61 70 70 6c 69 65 73 20 65 61 63 68 20 6f 66 20 46 4e 53 20 74 6f 20 ion.that.applies.each.of.FNS.to.
22920 65 61 63 68 20 6f 66 20 61 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 61 each.of.a.list.of.arguments...Ta
22940 6b 65 73 20 61 20 6c 69 73 74 20 6f 66 20 4e 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 72 65 kes.a.list.of.N.functions.and.re
22960 74 75 72 6e 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 0a 6c 69 turns.a.function.that.takes.a.li
22980 73 74 20 6f 66 20 6c 65 6e 67 74 68 20 4e 2c 20 61 70 70 6c 79 69 6e 67 20 49 74 68 20 66 75 6e st.of.length.N,.applying.Ith.fun
229a0 63 74 69 6f 6e 20 74 6f 20 49 74 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 69 6e 70 75 ction.to.Ith.element.of.the.inpu
229c0 74 20 6c 69 73 74 2e 20 20 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 65 6e 67 74 t.list...Returns.a.list.of.lengt
229e0 68 20 4e 2e 0a 0a 49 6e 20 74 79 70 65 73 20 28 66 6f 72 20 4e 3d 32 29 3a 20 28 28 61 20 2d 3e h.N...In.types.(for.N=2):.((a.->
22a00 20 62 29 2c 20 28 63 20 2d 3e 20 64 29 29 20 2d 3e 20 28 61 2c 20 63 29 20 2d 3e 20 28 62 2c 20 .b),.(c.->.d)).->.(a,.c).->.(b,.
22a20 64 29 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 69 65 73 20 74 68 65 20 d)..This.function.satisfies.the.
22a40 66 6f 6c 6c 6f 77 69 6e 67 20 6c 61 77 73 3a 0a 0a 20 20 20 20 28 2d 63 6f 6d 70 6f 73 65 20 28 following.laws:......(-compose.(
22a60 2d 70 72 6f 64 66 6e 20 66 20 67 20 2e 2e 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -prodfn.f.g....)...............(
22a80 2d 70 72 6f 64 66 6e 20 66 5c 5c 3d 27 20 67 5c 5c 3d 27 20 2e 2e 2e 29 29 0a 20 20 3d 20 28 2d -prodfn.f\\='.g\\='....))...=.(-
22aa0 70 72 6f 64 66 6e 20 28 2d 63 6f 6d 70 6f 73 65 20 66 20 66 5c 5c 3d 27 29 0a 20 20 20 20 20 20 prodfn.(-compose.f.f\\=').......
22ac0 20 20 20 20 20 20 20 28 2d 63 6f 6d 70 6f 73 65 20 67 20 67 5c 5c 3d 27 29 0a 20 20 20 20 20 20 .......(-compose.g.g\\=').......
22ae0 20 20 20 20 20 20 20 2e 2e 2e 29 0a 0a 20 20 20 20 28 2d 70 72 6f 64 66 6e 20 66 20 67 20 2e 2e ..........)......(-prodfn.f.g...
22b00 2e 29 0a 20 20 3d 20 28 2d 6a 75 78 74 20 28 2d 63 6f 6d 70 6f 73 65 20 66 20 28 2d 70 61 72 74 .)...=.(-juxt.(-compose.f.(-part
22b20 69 61 6c 20 23 5c 5c 3d 27 6e 74 68 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f ial.#\\='nth.0))............(-co
22b40 6d 70 6f 73 65 20 67 20 28 2d 70 61 72 74 69 61 6c 20 23 5c 5c 3d 27 6e 74 68 20 31 29 29 0a 20 mpose.g.(-partial.#\\='nth.1))..
22b60 20 20 20 20 20 20 20 20 20 20 2e 2e 2e 29 0a 0a 20 20 20 20 28 2d 63 6f 6d 70 6f 73 65 20 28 2d .............)......(-compose.(-
22b80 70 72 6f 64 66 6e 20 66 20 67 20 2e 2e 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d prodfn.f.g....)...............(-
22ba0 6a 75 78 74 20 66 5c 5c 3d 27 20 67 5c 5c 3d 27 20 2e 2e 2e 29 29 0a 20 20 3d 20 28 2d 6a 75 78 juxt.f\\='.g\\='....))...=.(-jux
22bc0 74 20 28 2d 63 6f 6d 70 6f 73 65 20 66 20 66 5c 5c 3d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 t.(-compose.f.f\\=')............
22be0 28 2d 63 6f 6d 70 6f 73 65 20 67 20 67 5c 5c 3d 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 2e 2e (-compose.g.g\\=')..............
22c00 2e 29 0a 0a 20 20 20 20 28 2d 63 6f 6d 70 6f 73 65 20 28 2d 70 61 72 74 69 61 6c 20 23 5c 5c 3d .)......(-compose.(-partial.#\\=
22c20 27 6e 74 68 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 70 72 6f 64 20 66 31 20 'nth.n)...............(-prod.f1.
22c40 66 32 20 2e 2e 2e 29 29 0a 20 20 3d 20 28 2d 63 6f 6d 70 6f 73 65 20 66 6e 20 28 2d 70 61 72 74 f2....))...=.(-compose.fn.(-part
22c60 69 61 6c 20 23 5c 5c 3d 27 6e 74 68 20 6e 29 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 70 75 ial.#\\='nth.n))"...(declare.(pu
22c80 72 65 20 74 29 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6c re.t).(side-effect-free.t))...(l
22ca0 61 6d 62 64 61 20 28 78 29 20 28 2d 2d 7a 69 70 2d 77 69 74 68 20 28 66 75 6e 63 61 6c 6c 20 69 ambda.(x).(--zip-with.(funcall.i
22cc0 74 20 6f 74 68 65 72 29 20 66 6e 73 20 78 29 29 29 0a 0c 0a 3b 3b 3b 20 46 6f 6e 74 20 6c 6f 63 t.other).fns.x)))...;;;.Font.loc
22ce0 6b 0a 0a 28 64 65 66 76 61 72 20 64 61 73 68 2d 2d 6b 65 79 77 6f 72 64 73 0a 20 20 60 28 3b 3b k..(defvar.dash--keywords...`(;;
22d00 20 54 4f 44 4f 3a 20 44 6f 20 6e 6f 74 20 66 6f 6e 74 69 66 79 20 74 68 65 20 66 6f 6c 6c 6f 77 .TODO:.Do.not.fontify.the.follow
22d20 69 6e 67 20 61 75 74 6f 6d 61 74 69 63 20 76 61 72 69 61 62 6c 65 73 0a 20 20 20 20 3b 3b 20 67 ing.automatic.variables.....;;.g
22d40 6c 6f 62 61 6c 6c 79 3b 20 64 65 74 65 63 74 20 61 6e 64 20 6c 69 6d 69 74 20 74 6f 20 74 68 65 lobally;.detect.and.limit.to.the
22d60 69 72 20 6c 6f 63 61 6c 20 61 6e 61 70 68 6f 72 69 63 20 73 63 6f 70 65 2e 0a 20 20 20 20 28 2c ir.local.anaphoric.scope......(,
22d80 28 72 78 20 73 79 6d 62 6f 6c 2d 73 74 61 72 74 20 28 7c 20 22 61 63 63 22 20 22 69 74 22 20 22 (rx.symbol-start.(|."acc"."it"."
22da0 69 74 2d 69 6e 64 65 78 22 20 22 6f 74 68 65 72 22 29 20 73 79 6d 62 6f 6c 2d 65 6e 64 29 0a 20 it-index"."other").symbol-end)..
22dc0 20 20 20 20 30 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 ....0.font-lock-variable-name-fa
22de0 63 65 29 0a 20 20 20 20 3b 3b 20 4d 61 63 72 6f 73 20 69 6e 20 64 65 76 2f 65 78 61 6d 70 6c 65 ce).....;;.Macros.in.dev/example
22e00 73 2e 65 6c 2e 20 20 42 61 73 65 64 20 6f 6e 20 60 6c 69 73 70 2d 6d 6f 64 65 2d 73 79 6d 62 6f s.el...Based.on.`lisp-mode-symbo
22e20 6c 2d 72 65 67 65 78 70 27 2e 0a 20 20 20 20 28 2c 28 72 78 20 3f 5c 28 20 28 67 72 6f 75 70 20 l-regexp'......(,(rx.?\(.(group.
22e40 28 7c 20 22 64 65 66 65 78 61 6d 70 6c 65 73 22 20 22 64 65 66 2d 65 78 61 6d 70 6c 65 2d 67 72 (|."defexamples"."def-example-gr
22e60 6f 75 70 22 29 29 20 73 79 6d 62 6f 6c 2d 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 oup")).symbol-end...........(+.(
22e80 69 6e 20 22 5c 74 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 20 28 2a 20 28 in."\t."))...........(group.(*.(
22ea0 7c 20 28 73 79 6e 74 61 78 20 77 6f 72 64 29 20 28 73 79 6e 74 61 78 20 73 79 6d 62 6f 6c 29 20 |.(syntax.word).(syntax.symbol).
22ec0 28 3a 20 3f 5c 5c 20 6e 6f 6e 6c 29 29 29 29 29 0a 20 20 20 20 20 28 31 20 66 6f 6e 74 2d 6c 6f (:.?\\.nonl)))))......(1.font-lo
22ee0 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 66 6f 6e 74 2d 6c 6f ck-keyword-face)......(2.font-lo
22f00 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 20 20 3b 3b 20 53 ck-function-name-face)).....;;.S
22f20 79 6d 62 6f 6c 73 20 69 6e 20 64 65 76 2f 65 78 61 6d 70 6c 65 73 2e 65 6c 2e 0a 20 20 20 20 2c ymbols.in.dev/examples.el......,
22f40 28 72 78 20 73 79 6d 62 6f 6c 2d 73 74 61 72 74 20 28 7c 20 22 3d 3e 22 20 22 7e 3e 22 20 22 21 (rx.symbol-start.(|."=>"."~>"."!
22f60 21 3e 22 29 20 73 79 6d 62 6f 6c 2d 65 6e 64 29 0a 20 20 20 20 3b 3b 20 45 6c 69 73 70 20 6d 61 !>").symbol-end).....;;.Elisp.ma
22f80 63 72 6f 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 77 61 73 20 73 74 61 74 69 63 20 70 72 69 cro.fontification.was.static.pri
22fa0 6f 72 20 74 6f 20 45 6d 61 63 73 20 32 35 2e 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 28 3c 20 65 or.to.Emacs.25......,@(when.(<.e
22fc0 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 35 29 0a 20 20 20 20 20 20 20 20 28 macs-major-version.25).........(
22fe0 6c 65 74 20 28 28 6d 61 63 73 20 27 28 22 21 63 64 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 let.((macs.'("!cdr".............
23000 20 20 20 20 20 20 20 20 20 20 22 21 63 6f 6e 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........."!cons"...............
23020 20 20 20 20 20 20 20 20 22 2d 2d 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........"-->"...................
23040 20 20 20 20 22 2d 2d 61 6c 6c 2d 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."--all-p"...................
23060 20 20 20 20 22 2d 2d 61 6c 6c 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."--all?"....................
23080 20 20 20 22 2d 2d 61 6e 6e 6f 74 61 74 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."--annotate".................
230a0 20 20 20 20 20 20 22 2d 2d 61 6e 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"--any"...................
230c0 20 20 20 20 22 2d 2d 61 6e 79 2d 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."--any-p"...................
230e0 20 20 20 20 22 2d 2d 61 6e 79 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."--any?"....................
23100 20 20 20 22 2d 2d 63 6f 75 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."--count"....................
23120 20 20 20 22 2d 2d 64 6f 74 69 6d 65 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."--dotimes"..................
23140 20 20 20 20 20 22 2d 2d 64 6f 74 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."--doto"...................
23160 20 20 20 20 22 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."--drop-while"..............
23180 20 20 20 20 20 20 20 20 20 22 2d 2d 65 61 63 68 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........."--each"...............
231a0 20 20 20 20 20 20 20 20 22 2d 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 22 0a 20 20 20 20 20 20 20 ........"--each-indexed"........
231c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 65 61 63 68 2d 72 22 0a 20 20 20 20 20 20 ..............."--each-r".......
231e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 22 ................"--each-r-while"
23200 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 65 61 63 68 2d 77 ......................."--each-w
23220 68 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 65 hile"......................."--e
23240 76 65 72 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 65 very"......................."--e
23260 76 65 72 79 2d 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d very-p"......................."-
23280 2d 65 76 65 72 79 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 -every?"......................."
232a0 2d 2d 66 69 6c 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 --filter".......................
232c0 22 2d 2d 66 69 6e 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 "--find"......................."
232e0 2d 2d 66 69 6e 64 2d 69 6e 64 65 78 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 --find-index"...................
23300 20 20 20 20 22 2d 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 ...."--find-indices"............
23320 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 22 0a 20 ..........."--find-last-index"..
23340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 66 69 72 73 74 22 0a 20 ....................."--first"..
23360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 66 69 78 22 0a 20 20 20 ....................."--fix"....
23380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 67 72 6f 75 70 2d 62 79 22 0a ..................."--group-by".
233a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 69 66 2d 6c 65 74 22 ......................"--if-let"
233c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 69 74 65 72 61 74 ......................."--iterat
233e0 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 6b 65 65 70 e"......................."--keep
23400 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 6c 61 73 74 22 "......................."--last"
23420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 6d 61 70 22 0a 20 ......................."--map"..
23440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 6d 61 70 2d 66 69 72 73 ....................."--map-firs
23460 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 6d 61 70 2d t"......................."--map-
23480 69 6e 64 65 78 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 indexed"......................."
234a0 2d 2d 6d 61 70 2d 6c 61 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 --map-last".....................
234c0 20 20 22 2d 2d 6d 61 70 2d 77 68 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."--map-when"..................
234e0 20 20 20 20 20 22 2d 2d 6d 61 70 63 61 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."--mapcat".................
23500 20 20 20 20 20 20 22 2d 2d 6d 61 78 2d 62 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"--max-by"................
23520 20 20 20 20 20 20 20 22 2d 2d 6d 69 6e 2d 62 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."--min-by"...............
23540 20 20 20 20 20 20 20 20 22 2d 2d 6e 6f 6e 65 2d 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........"--none-p"..............
23560 20 20 20 20 20 20 20 20 20 22 2d 2d 6e 6f 6e 65 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........."--none?"..............
23580 20 20 20 20 20 20 20 20 20 22 2d 2d 6f 6e 6c 79 2d 73 6f 6d 65 2d 70 22 0a 20 20 20 20 20 20 20 ........."--only-some-p"........
235a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 22 0a 20 20 ..............."--only-some?"...
235c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 70 61 72 74 69 74 69 6f 6e ...................."--partition
235e0 2d 61 66 74 65 72 2d 70 72 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -after-pred"....................
23600 20 20 20 22 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..."--partition-by".............
23620 20 20 20 20 20 20 20 20 20 20 22 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 65 61 64 65 72 .........."--partition-by-header
23640 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 64 75 63 "......................."--reduc
23660 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 64 75 e"......................."--redu
23680 63 65 2d 66 72 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ce-from"......................."
236a0 2d 2d 72 65 64 75 63 65 2d 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 --reduce-r".....................
236c0 20 20 22 2d 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."--reduce-r-from".............
236e0 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 64 75 63 74 69 6f 6e 73 22 0a 20 20 20 20 20 20 20 .........."--reductions"........
23700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 66 72 6f ..............."--reductions-fro
23720 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 64 75 m"......................."--redu
23740 63 74 69 6f 6e 73 2d 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ctions-r".......................
23760 22 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 "--reductions-r-from"...........
23780 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 6a 65 63 74 22 0a 20 20 20 20 20 20 20 20 20 ............"--reject"..........
237a0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 6a 65 63 74 2d 66 69 72 73 74 22 0a 20 20 ............."--reject-first"...
237c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 6a 65 63 74 2d 6c 61 ...................."--reject-la
237e0 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 6d st"......................."--rem
23800 6f 76 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 72 65 ove"......................."--re
23820 6d 6f 76 65 2d 66 69 72 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 move-first".....................
23840 20 20 22 2d 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."--remove-last"...............
23860 20 20 20 20 20 20 20 20 22 2d 2d 72 65 70 6c 61 63 65 2d 77 68 65 72 65 22 0a 20 20 20 20 20 20 ........"--replace-where".......
23880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 65 6c 65 63 74 22 0a 20 20 20 20 20 ................"--select"......
238a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 65 70 61 72 61 74 65 22 0a 20 20 ................."--separate"...
238c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 6f 6d 65 22 0a 20 20 20 ...................."--some"....
238e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 6f 6d 65 2d 70 22 0a 20 20 ..................."--some-p"...
23900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 6f 6d 65 3f 22 0a 20 20 ...................."--some?"...
23920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 6f 72 74 22 0a 20 20 20 ...................."--sort"....
23940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 70 6c 69 63 65 22 0a 20 20 ..................."--splice"...
23960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 70 6c 69 63 65 2d 6c 69 ...................."--splice-li
23980 73 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 73 70 6c st"......................."--spl
239a0 69 74 2d 77 68 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 it-when"......................."
239c0 2d 2d 73 70 6c 69 74 2d 77 69 74 68 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 --split-with"...................
239e0 20 20 20 20 22 2d 2d 74 61 6b 65 2d 77 68 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."--take-while"..............
23a00 20 20 20 20 20 20 20 20 20 22 2d 2d 74 72 65 65 2d 6d 61 70 22 0a 20 20 20 20 20 20 20 20 20 20 ........."--tree-map"...........
23a20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 22 0a 20 ............"--tree-map-nodes"..
23a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 74 72 65 65 2d 6d 61 70 ....................."--tree-map
23a60 72 65 64 75 63 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d reduce"......................."-
23a80 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 2d 66 72 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 -tree-mapreduce-from"...........
23aa0 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 74 72 65 65 2d 72 65 64 75 63 65 22 0a 20 20 20 20 ............"--tree-reduce".....
23ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 74 72 65 65 2d 72 65 64 75 63 65 .................."--tree-reduce
23ae0 2d 66 72 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d -from"......................."--
23b00 74 72 65 65 2d 73 65 71 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tree-seq".......................
23b20 22 2d 2d 75 6e 66 6f 6c 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "--unfold"......................
23b40 20 22 2d 2d 75 70 64 61 74 65 2d 61 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."--update-at"..................
23b60 20 20 20 20 20 22 2d 2d 77 68 65 6e 2d 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."--when-let"...............
23b80 20 20 20 20 20 20 20 20 22 2d 2d 7a 69 70 2d 77 69 74 68 22 0a 20 20 20 20 20 20 20 20 20 20 20 ........"--zip-with"............
23ba0 20 20 20 20 20 20 20 20 20 20 20 22 2d 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........."->".................
23bc0 20 20 20 20 20 20 22 2d 3e 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"->>".....................
23be0 20 20 22 2d 61 73 2d 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."-as->".......................
23c00 22 2d 63 75 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 64 "-cut"......................."-d
23c20 6f 74 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 69 66 2d oto"......................."-if-
23c40 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 69 66 2d let"......................."-if-
23c60 6c 65 74 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 6c 61 let*"......................."-la
23c80 6d 62 64 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 6c 65 mbda"......................."-le
23ca0 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 6c 65 74 2a 22 t"......................."-let*"
23cc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 73 65 74 71 22 0a 20 ......................."-setq"..
23ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 73 6f 6d 65 2d 2d 3e 22 0a ....................."-some-->".
23d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 73 6f 6d 65 2d 3e 22 0a ......................"-some->".
23d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 73 6f 6d 65 2d 3e 3e 22 ......................"-some->>"
23d40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 73 70 6c 69 74 2d 6f ......................."-split-o
23d60 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 77 68 65 6e 2d n"......................."-when-
23d80 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 77 68 65 let"......................."-whe
23da0 6e 2d 6c 65 74 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 60 28 28 2c 28 63 6f 6e 63 61 74 n-let*")))...........`((,(concat
23dc0 20 22 28 22 20 28 72 65 67 65 78 70 2d 6f 70 74 20 6d 61 63 73 20 27 73 79 6d 62 6f 6c 73 29 29 ."(".(regexp-opt.macs.'symbols))
23de0 20 2e 20 31 29 29 29 29 29 0a 20 20 22 46 6f 6e 74 20 6c 6f 63 6b 20 6b 65 79 77 6f 72 64 73 20 ...1)))))..."Font.lock.keywords.
23e00 66 6f 72 20 60 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 for.`dash-fontify-mode'.")..(def
23e20 63 75 73 74 6f 6d 20 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 2d 6c 69 67 68 74 65 72 custom.dash-fontify-mode-lighter
23e40 20 6e 69 6c 0a 20 20 22 4d 6f 64 65 20 6c 69 6e 65 20 6c 69 67 68 74 65 72 20 66 6f 72 20 60 64 .nil..."Mode.line.lighter.for.`d
23e60 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 27 2e 0a 45 69 74 68 65 72 20 61 20 73 74 72 69 ash-fontify-mode'..Either.a.stri
23e80 6e 67 20 74 6f 20 64 69 73 70 6c 61 79 20 69 6e 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 20 77 ng.to.display.in.the.mode.line.w
23ea0 68 65 6e 0a 60 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 27 20 69 73 20 6f 6e 2c 20 6f hen.`dash-fontify-mode'.is.on,.o
23ec0 72 20 6e 69 6c 20 74 6f 20 64 69 73 70 6c 61 79 0a 6e 6f 74 68 69 6e 67 20 28 74 68 65 20 64 65 r.nil.to.display.nothing.(the.de
23ee0 66 61 75 6c 74 29 2e 22 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 64 61 fault)."...:package-version.'(da
23f00 73 68 20 2e 20 22 32 2e 31 38 2e 30 22 29 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 sh..."2.18.0")...:type.'(choice.
23f20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 4c 69 67 68 74 65 72 22 20 3a 76 61 6c 75 65 20 22 20 (string.:tag."Lighter".:value.".
23f40 44 61 73 68 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a Dash")..................(const.:
23f60 74 61 67 20 22 4e 6f 74 68 69 6e 67 22 20 6e 69 6c 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f tag."Nothing".nil)))..;;;###auto
23f80 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 64 61 73 68 2d 66 6f 6e load.(define-minor-mode.dash-fon
23fa0 74 69 66 79 2d 6d 6f 64 65 0a 20 20 22 54 6f 67 67 6c 65 20 66 6f 6e 74 69 66 69 63 61 74 69 6f tify-mode..."Toggle.fontificatio
23fc0 6e 20 6f 66 20 44 61 73 68 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 2e 0a 0a 44 61 n.of.Dash.special.variables...Da
23fe0 73 68 2d 46 6f 6e 74 69 66 79 20 6d 6f 64 65 20 69 73 20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 sh-Fontify.mode.is.a.buffer-loca
24000 6c 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 45 6d 61 63 73 0a l.minor.mode.intended.for.Emacs.
24020 4c 69 73 70 20 62 75 66 66 65 72 73 2e 20 20 45 6e 61 62 6c 69 6e 67 20 69 74 20 63 61 75 73 65 Lisp.buffers...Enabling.it.cause
24040 73 20 74 68 65 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 20 62 6f 75 6e 64 20 69 6e s.the.special.variables.bound.in
24060 0a 61 6e 61 70 68 6f 72 69 63 20 44 61 73 68 20 6d 61 63 72 6f 73 20 74 6f 20 62 65 20 66 6f 6e .anaphoric.Dash.macros.to.be.fon
24080 74 69 66 69 65 64 2e 20 20 54 68 65 73 65 20 61 6e 61 70 68 6f 72 61 73 20 69 6e 63 6c 75 64 65 tified...These.anaphoras.include
240a0 0a 60 69 74 27 2c 20 60 69 74 2d 69 6e 64 65 78 27 2c 20 60 61 63 63 27 2c 20 61 6e 64 20 60 6f .`it',.`it-index',.`acc',.and.`o
240c0 74 68 65 72 27 2e 20 20 49 6e 20 6f 6c 64 65 72 20 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 73 0a ther'...In.older.Emacs.versions.
240e0 77 68 69 63 68 20 64 6f 20 6e 6f 74 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 64 65 74 65 63 74 20 which.do.not.dynamically.detect.
24100 6d 61 63 72 6f 73 2c 20 44 61 73 68 2d 46 6f 6e 74 69 66 79 20 6d 6f 64 65 0a 61 64 64 69 74 69 macros,.Dash-Fontify.mode.additi
24120 6f 6e 61 6c 6c 79 20 66 6f 6e 74 69 66 69 65 73 20 44 61 73 68 20 6d 61 63 72 6f 20 63 61 6c 6c onally.fontifies.Dash.macro.call
24140 73 2e 0a 0a 53 65 65 20 61 6c 73 6f 20 60 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 2d s...See.also.`dash-fontify-mode-
24160 6c 69 67 68 74 65 72 27 20 61 6e 64 0a 60 67 6c 6f 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 69 66 lighter'.and.`global-dash-fontif
24180 79 2d 6d 6f 64 65 27 2e 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 64 61 73 68 2d 66 6f 6e 74 69 66 y-mode'."...:lighter.dash-fontif
241a0 79 2d 6d 6f 64 65 2d 6c 69 67 68 74 65 72 0a 20 20 28 69 66 20 64 61 73 68 2d 66 6f 6e 74 69 66 y-mode-lighter...(if.dash-fontif
241c0 79 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 64 64 2d 6b 65 79 77 y-mode.......(font-lock-add-keyw
241e0 6f 72 64 73 20 6e 69 6c 20 64 61 73 68 2d 2d 6b 65 79 77 6f 72 64 73 20 74 29 0a 20 20 20 20 28 ords.nil.dash--keywords.t).....(
24200 66 6f 6e 74 2d 6c 6f 63 6b 2d 72 65 6d 6f 76 65 2d 6b 65 79 77 6f 72 64 73 20 6e 69 6c 20 64 61 font-lock-remove-keywords.nil.da
24220 73 68 2d 2d 6b 65 79 77 6f 72 64 73 29 29 0a 20 20 28 63 6f 6e 64 20 28 28 66 62 6f 75 6e 64 70 sh--keywords))...(cond.((fboundp
24240 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6c 75 73 68 29 20 3b 3b 20 41 64 64 65 64 20 69 6e 20 45 .'font-lock-flush).;;.Added.in.E
24260 6d 61 63 73 20 32 35 2e 0a 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6c 75 macs.25...........(font-lock-flu
24280 73 68 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6f 6e 74 69 sh)).........;;.`font-lock-fonti
242a0 66 79 2d 62 75 66 66 65 72 27 20 75 6e 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 65 6e 61 62 6c fy-buffer'.unconditionally.enabl
242c0 65 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 27 20 61 es.........;;.`font-lock-mode'.a
242e0 6e 64 20 69 73 20 6d 61 72 6b 65 64 20 60 69 6e 74 65 72 61 63 74 69 76 65 2d 6f 6e 6c 79 27 20 nd.is.marked.`interactive-only'.
24300 69 6e 20 6c 61 74 65 72 0a 20 20 20 20 20 20 20 20 3b 3b 20 45 6d 61 63 73 20 76 65 72 73 69 6f in.later.........;;.Emacs.versio
24320 6e 73 20 77 68 69 63 68 20 68 61 76 65 20 60 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6c 75 73 68 27 2c ns.which.have.`font-lock-flush',
24340 20 73 6f 20 77 65 20 67 75 61 72 64 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 64 20 70 61 63 69 .so.we.guard.........;;.and.paci
24360 66 79 20 61 73 20 6e 65 65 64 65 64 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 20 20 20 20 fy.as.needed,.respectively......
24380 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 28 77 69 ....(font-lock-mode..........(wi
243a0 74 68 2d 6e 6f 2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d th-no-warnings............(font-
243c0 6c 6f 63 6b 2d 66 6f 6e 74 69 66 79 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e lock-fontify-buffer)))))..(defun
243e0 20 64 61 73 68 2d 2d 74 75 72 6e 2d 6f 6e 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 20 28 29 0a 20 .dash--turn-on-fontify-mode.()..
24400 20 22 45 6e 61 62 6c 65 20 60 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 27 20 69 66 20 ."Enable.`dash-fontify-mode'.if.
24420 69 6e 20 61 6e 20 45 6d 61 63 73 20 4c 69 73 70 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 in.an.Emacs.Lisp.buffer."...(whe
24440 6e 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 23 27 65 6d 61 63 73 2d 6c 69 73 70 2d 6d n.(derived-mode-p.#'emacs-lisp-m
24460 6f 64 65 29 0a 20 20 20 20 28 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 29 29 29 0a 0a ode).....(dash-fontify-mode)))..
24480 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 67 6c 6f 62 61 6c 69 7a 65 ;;;###autoload.(define-globalize
244a0 64 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 67 6c 6f 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 69 66 79 d-minor-mode.global-dash-fontify
244c0 2d 6d 6f 64 65 0a 20 20 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 20 64 61 73 68 2d 2d -mode...dash-fontify-mode.dash--
244e0 74 75 72 6e 2d 6f 6e 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f turn-on-fontify-mode)..(defcusto
24500 6d 20 64 61 73 68 2d 65 6e 61 62 6c 65 2d 66 6f 6e 74 6c 6f 63 6b 20 6e 69 6c 0a 20 20 22 49 66 m.dash-enable-fontlock.nil..."If
24520 20 6e 6f 6e 2d 6e 69 6c 2c 20 66 6f 6e 74 69 66 79 20 44 61 73 68 20 6d 61 63 72 6f 20 63 61 6c .non-nil,.fontify.Dash.macro.cal
24540 6c 73 20 61 6e 64 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 2e 22 0a 20 20 3a 73 65 ls.and.special.variables."...:se
24560 74 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 t.(lambda.(sym.val)..........(se
24580 74 2d 64 65 66 61 75 6c 74 20 73 79 6d 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 28 67 6c 6f t-default.sym.val)..........(glo
245a0 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 20 28 69 66 20 76 61 6c 20 31 20 bal-dash-fontify-mode.(if.val.1.
245c0 30 29 29 29 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 6d 61 6b 65 2d 6f 62 0)))...:type.'boolean)..(make-ob
245e0 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 0a 20 27 64 61 73 68 2d 65 6e 61 62 6c 65 2d 66 6f solete-variable..'dash-enable-fo
24600 6e 74 6c 6f 63 6b 20 23 27 67 6c 6f 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 ntlock.#'global-dash-fontify-mod
24620 65 20 22 32 2e 31 38 2e 30 22 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 e."2.18.0")..(define-obsolete-fu
24640 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 0a 20 20 27 64 61 73 68 2d 65 6e 61 62 6c 65 2d 66 6f 6e 74 nction-alias...'dash-enable-font
24660 2d 6c 6f 63 6b 20 23 27 67 6c 6f 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 -lock.#'global-dash-fontify-mode
24680 20 22 32 2e 31 38 2e 30 22 29 0a 0c 0a 3b 3b 3b 20 49 6e 66 6f 0a 0a 28 64 65 66 76 61 72 20 64 ."2.18.0")...;;;.Info..(defvar.d
246a0 61 73 68 2d 2d 69 6e 66 6f 2d 64 6f 63 2d 73 70 65 63 20 27 28 22 28 64 61 73 68 29 20 49 6e 64 ash--info-doc-spec.'("(dash).Ind
246c0 65 78 22 20 6e 69 6c 20 22 5e 20 2d 2b 20 2e 2a 3a 20 22 20 22 5c 5c 28 20 5c 5c 7c 24 5c 5c 29 ex".nil."^.-+..*:."."\\(.\\|$\\)
246e0 22 29 0a 20 20 22 54 68 65 20 44 61 73 68 20 3a 64 6f 63 2d 73 70 65 63 20 65 6e 74 72 79 20 66 ")..."The.Dash.:doc-spec.entry.f
24700 6f 72 20 60 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d 61 6c 69 73 74 27 2e 0a 49 74 20 69 73 20 62 61 or.`info-lookup-alist'..It.is.ba
24720 73 65 64 20 6f 6e 20 74 68 61 74 20 66 6f 72 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 sed.on.that.for.`emacs-lisp-mode
24740 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 2d 69 6e 66 6f 2d 65 6c 69 73 70 2d 64 6f '.")..(defun.dash--info-elisp-do
24760 63 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 60 65 6d 61 63 73 2d 6c 69 73 70 2d cs.()..."Return.the.`emacs-lisp-
24780 6d 6f 64 65 27 20 73 79 6d 62 6f 6c 20 64 6f 63 73 20 66 72 6f 6d 20 60 69 6e 66 6f 2d 6c 6f 6f mode'.symbol.docs.from.`info-loo
247a0 6b 75 70 2d 61 6c 69 73 74 27 2e 0a 53 70 65 63 69 66 69 63 61 6c 6c 79 2c 20 72 65 74 75 72 6e kup-alist'..Specifically,.return
247c0 20 74 68 65 20 63 6f 6e 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 69 72 0a 60 69 6e 66 6f .the.cons.containing.their.`info
247e0 2d 6c 6f 6f 6b 75 70 2d 3e 64 6f 63 2d 73 70 65 63 27 20 73 6f 20 74 68 61 74 20 77 65 20 63 61 -lookup->doc-spec'.so.that.we.ca
24800 6e 20 6d 6f 64 69 66 79 20 69 74 2e 22 0a 20 20 28 64 65 66 76 61 72 20 69 6e 66 6f 2d 6c 6f 6f n.modify.it."...(defvar.info-loo
24820 6b 75 70 2d 61 6c 69 73 74 29 0a 20 20 28 6e 74 68 63 64 72 20 33 20 28 61 73 73 71 20 23 27 65 kup-alist)...(nthcdr.3.(assq.#'e
24840 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 20 28 63 64 72 20 28 61 73 73 71 20 27 73 79 6d 62 6f macs-lisp-mode.(cdr.(assq.'symbo
24860 6c 20 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d 61 6c 69 73 74 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 l.info-lookup-alist)))))..;;;###
24880 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 64 61 73 68 2d 72 65 67 69 73 74 65 72 2d 69 6e autoload.(defun.dash-register-in
248a0 66 6f 2d 6c 6f 6f 6b 75 70 20 28 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 74 68 65 20 44 61 73 fo-lookup.()..."Register.the.Das
248c0 68 20 49 6e 66 6f 20 6d 61 6e 75 61 6c 20 77 69 74 68 20 60 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d h.Info.manual.with.`info-lookup-
248e0 73 79 6d 62 6f 6c 27 2e 0a 54 68 69 73 20 61 6c 6c 6f 77 73 20 44 61 73 68 20 73 79 6d 62 6f 6c symbol'..This.allows.Dash.symbol
24900 73 20 74 6f 20 62 65 20 6c 6f 6f 6b 65 64 20 75 70 20 77 69 74 68 20 5c 5c 5b 69 6e 66 6f 2d 6c s.to.be.looked.up.with.\\[info-l
24920 6f 6f 6b 75 70 2d 73 79 6d 62 6f 6c 5d 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a ookup-symbol]."...(interactive).
24940 20 20 28 72 65 71 75 69 72 65 20 27 69 6e 66 6f 2d 6c 6f 6f 6b 29 0a 20 20 28 6c 65 74 20 28 28 ..(require.'info-look)...(let.((
24960 64 6f 63 73 20 28 64 61 73 68 2d 2d 69 6e 66 6f 2d 65 6c 69 73 70 2d 64 6f 63 73 29 29 29 0a 20 docs.(dash--info-elisp-docs)))..
24980 20 20 20 28 73 65 74 63 61 72 20 64 6f 63 73 20 28 61 70 70 65 6e 64 20 28 63 61 72 20 64 6f 63 ...(setcar.docs.(append.(car.doc
249a0 73 29 20 28 6c 69 73 74 20 64 61 73 68 2d 2d 69 6e 66 6f 2d 64 6f 63 2d 73 70 65 63 29 29 29 0a s).(list.dash--info-doc-spec))).
249c0 20 20 20 20 28 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d 72 65 73 65 74 29 29 29 0a 0a 28 64 65 66 75 ....(info-lookup-reset)))..(defu
249e0 6e 20 64 61 73 68 2d 75 6e 6c 6f 61 64 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 6d n.dash-unload-function.()..."Rem
24a00 6f 76 65 20 44 61 73 68 20 66 72 6f 6d 20 60 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 2d 61 6c 69 73 74 ove.Dash.from.`info-lookup-alist
24a20 27 2e 0a 55 73 65 64 20 62 79 20 60 75 6e 6c 6f 61 64 2d 66 65 61 74 75 72 65 27 2c 20 77 68 69 '..Used.by.`unload-feature',.whi
24a40 63 68 20 73 65 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 6f 63 73 20 28 61 6e 64 20 28 66 65 61 ch.see."...(let.((docs.(and.(fea
24a60 74 75 72 65 70 20 27 69 6e 66 6f 2d 6c 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 turep.'info-look)...............
24a80 20 20 20 20 20 28 64 61 73 68 2d 2d 69 6e 66 6f 2d 65 6c 69 73 70 2d 64 6f 63 73 29 29 29 29 0a .....(dash--info-elisp-docs)))).
24aa0 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 64 61 73 68 2d 2d 69 6e 66 6f 2d 64 6f 63 ....(when.(member.dash--info-doc
24ac0 2d 73 70 65 63 20 28 63 61 72 20 64 6f 63 73 29 29 0a 20 20 20 20 20 20 28 73 65 74 63 61 72 20 -spec.(car.docs)).......(setcar.
24ae0 64 6f 63 73 20 28 72 65 6d 6f 76 65 20 64 61 73 68 2d 2d 69 6e 66 6f 2d 64 6f 63 2d 73 70 65 63 docs.(remove.dash--info-doc-spec
24b00 20 28 63 61 72 20 64 6f 63 73 29 29 29 0a 20 20 20 20 20 20 28 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 .(car.docs))).......(info-lookup
24b20 2d 72 65 73 65 74 29 29 29 0a 20 20 6e 69 6c 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 64 61 73 68 -reset)))...nil)..(provide.'dash
24b40 29 0a 3b 3b 3b 20 64 61 73 68 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 ).;;;.dash.el.ends.here.........
24b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c00 64 61 73 68 2d 32 30 32 34 30 34 30 35 2e 39 34 36 2f 64 61 73 68 2e 69 6e 66 6f 00 00 00 00 00 dash-20240405.946/dash.info.....
24c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
24c80 30 36 31 33 37 30 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 34 36 31 00 20 30 00 00 00 0613703.00000000000.013461..0...
24ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
24d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
24d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e00 54 68 69 73 20 69 73 20 64 61 73 68 2e 69 6e 66 6f 2c 20 70 72 6f 64 75 63 65 64 20 62 79 20 6d This.is.dash.info,.produced.by.m
24e20 61 6b 65 69 6e 66 6f 20 76 65 72 73 69 6f 6e 20 36 2e 37 20 66 72 6f 6d 20 64 61 73 68 2e 74 65 akeinfo.version.6.7.from.dash.te
24e40 78 69 2e 0a 0a 54 68 69 73 20 6d 61 6e 75 61 6c 20 69 73 20 66 6f 72 20 44 61 73 68 20 76 65 72 xi...This.manual.is.for.Dash.ver
24e60 73 69 6f 6e 20 32 2e 31 39 2e 31 2e 0a 0a 20 20 20 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 32 30 sion.2.19.1......Copyright....20
24e80 31 32 e2 80 93 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 12...2024.Free.Software.Foundati
24ea0 6f 6e 2c 20 49 6e 63 2e 0a 0a 20 20 20 20 20 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 72 61 on,.Inc........Permission.is.gra
24ec0 6e 74 65 64 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 nted.to.copy,.distribute.and/or.
24ee0 6d 6f 64 69 66 79 20 74 68 69 73 0a 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 20 75 6e 64 65 72 20 modify.this......document.under.
24f00 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 the.terms.of.the.GNU.Free.Docume
24f20 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 2c 0a 20 20 20 20 20 56 65 72 73 69 6f 6e 20 31 2e ntation.License,......Version.1.
24f40 33 20 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 70 75 62 6c 69 73 68 65 64 3.or.any.later.version.published
24f60 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 20 20 20 20 20 46 6f 75 6e 64 .by.the.Free.Software......Found
24f80 61 74 69 6f 6e 3b 20 77 69 74 68 20 74 68 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f ation;.with.the.Invariant.Sectio
24fa0 6e 73 20 62 65 69 6e 67 20 e2 80 9c 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 20 ns.being....GNU.General.Public..
24fc0 20 20 20 20 4c 69 63 65 6e 73 65 2c e2 80 9d 20 61 6e 64 20 6e 6f 20 46 72 6f 6e 74 2d 43 6f 76 ....License,....and.no.Front-Cov
24fe0 65 72 20 54 65 78 74 73 20 6f 72 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 2e 20 20 41 er.Texts.or.Back-Cover.Texts...A
25000 20 63 6f 70 79 20 6f 66 0a 20 20 20 20 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 73 20 69 6e 63 .copy.of......the.license.is.inc
25020 6c 75 64 65 64 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e 20 65 6e 74 69 74 6c 65 64 20 e2 80 luded.in.the.section.entitled...
25040 9c 47 4e 55 20 46 72 65 65 0a 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 .GNU.Free......Documentation.Lic
25060 65 6e 73 65 e2 80 9d 2e 0a 49 4e 46 4f 2d 44 49 52 2d 53 45 43 54 49 4f 4e 20 45 6d 61 63 73 0a ense.....INFO-DIR-SECTION.Emacs.
25080 53 54 41 52 54 2d 49 4e 46 4f 2d 44 49 52 2d 45 4e 54 52 59 0a 2a 20 44 61 73 68 3a 20 28 64 61 START-INFO-DIR-ENTRY.*.Dash:.(da
250a0 73 68 2e 69 6e 66 6f 29 2e 20 20 20 20 41 20 6d 6f 64 65 72 6e 20 6c 69 73 74 20 6c 69 62 72 61 sh.info).....A.modern.list.libra
250c0 72 79 20 66 6f 72 20 47 4e 55 20 45 6d 61 63 73 2e 0a 45 4e 44 2d 49 4e 46 4f 2d 44 49 52 2d 45 ry.for.GNU.Emacs..END-INFO-DIR-E
250e0 4e 54 52 59 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 NTRY....File:.dash.info,..Node:.
25100 54 6f 70 2c 20 20 4e 65 78 74 3a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 2c 20 20 55 70 3a 20 28 Top,..Next:.Installation,..Up:.(
25120 64 69 72 29 0a 0a 44 61 73 68 0a 2a 2a 2a 2a 0a 0a 54 68 69 73 20 6d 61 6e 75 61 6c 20 69 73 20 dir)..Dash.****..This.manual.is.
25140 66 6f 72 20 44 61 73 68 20 76 65 72 73 69 6f 6e 20 32 2e 31 39 2e 31 2e 0a 0a 20 20 20 43 6f 70 for.Dash.version.2.19.1......Cop
25160 79 72 69 67 68 74 20 c2 a9 20 32 30 31 32 e2 80 93 32 30 32 34 20 46 72 65 65 20 53 6f 66 74 77 yright....2012...2024.Free.Softw
25180 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 20 20 20 20 20 50 65 72 6d 69 are.Foundation,.Inc........Permi
251a0 73 73 69 6f 6e 20 69 73 20 67 72 61 6e 74 65 64 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 ssion.is.granted.to.copy,.distri
251c0 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 0a 20 20 20 20 20 64 6f 63 bute.and/or.modify.this......doc
251e0 75 6d 65 6e 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 ument.under.the.terms.of.the.GNU
25200 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 2c 0a 20 20 20 .Free.Documentation.License,....
25220 20 20 56 65 72 73 69 6f 6e 20 31 2e 33 20 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 ..Version.1.3.or.any.later.versi
25240 6f 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 on.published.by.the.Free.Softwar
25260 65 0a 20 20 20 20 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 77 69 74 68 20 74 68 65 20 49 6e 76 61 e......Foundation;.with.the.Inva
25280 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 62 65 69 6e 67 20 e2 80 9c 47 4e 55 20 47 65 6e 65 riant.Sections.being....GNU.Gene
252a0 72 61 6c 20 50 75 62 6c 69 63 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 2c e2 80 9d 20 61 6e 64 20 ral.Public......License,....and.
252c0 6e 6f 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 20 6f 72 20 42 61 63 6b 2d 43 6f 76 no.Front-Cover.Texts.or.Back-Cov
252e0 65 72 20 54 65 78 74 73 2e 20 20 41 20 63 6f 70 79 20 6f 66 0a 20 20 20 20 20 74 68 65 20 6c 69 er.Texts...A.copy.of......the.li
25300 63 65 6e 73 65 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e cense.is.included.in.the.section
25320 20 65 6e 74 69 74 6c 65 64 20 e2 80 9c 47 4e 55 20 46 72 65 65 0a 20 20 20 20 20 44 6f 63 75 6d .entitled....GNU.Free......Docum
25340 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 e2 80 9d 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a entation.License......*.Menu:..*
25360 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 3a 3a 20 20 20 20 20 20 20 20 49 6e 73 74 61 6c 6c 69 6e .Installation::........Installin
25380 67 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 44 61 73 68 2e 0a 2a 20 46 75 6e 63 74 69 g.and.configuring.Dash..*.Functi
253a0 6f 6e 73 3a 3a 20 20 20 20 20 20 20 20 20 20 20 44 61 73 68 20 41 50 49 20 72 65 66 65 72 65 6e ons::...........Dash.API.referen
253c0 63 65 2e 0a 2a 20 44 65 76 65 6c 6f 70 6d 65 6e 74 3a 3a 20 20 20 20 20 20 20 20 20 43 6f 6e 74 ce..*.Development::.........Cont
253e0 72 69 62 75 74 69 6e 67 20 74 6f 20 44 61 73 68 20 64 65 76 65 6c 6f 70 6d 65 6e 74 2e 0a 0a 41 ributing.to.Dash.development...A
25400 70 70 65 6e 64 69 63 65 73 0a 0a 2a 20 46 44 4c 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ppendices..*.FDL::..............
25420 20 20 20 54 68 65 20 6c 69 63 65 6e 73 65 20 66 6f 72 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 ...The.license.for.this.document
25440 61 74 69 6f 6e 2e 0a 2a 20 47 50 4c 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 ation..*.GPL::.................C
25460 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 6e 67 20 61 6e 64 20 63 68 61 6e 67 69 onditions.for.copying.and.changi
25480 6e 67 20 44 61 73 68 2e 0a 2a 20 49 6e 64 65 78 3a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.Dash..*.Index::..............
254a0 20 49 6e 64 65 78 20 69 6e 63 6c 75 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 6d .Index.including.functions.and.m
254c0 61 63 72 6f 73 2e 0a 0a 20 e2 80 94 20 54 68 65 20 44 65 74 61 69 6c 65 64 20 4e 6f 64 65 20 4c acros........The.Detailed.Node.L
254e0 69 73 74 69 6e 67 20 e2 80 94 0a 0a 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 2a 20 55 73 69 6e isting......Installation..*.Usin
25500 67 20 69 6e 20 61 20 70 61 63 6b 61 67 65 3a 3a 20 20 4c 69 73 74 69 6e 67 20 44 61 73 68 20 61 g.in.a.package::..Listing.Dash.a
25520 73 20 61 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e 64 65 6e 63 79 2e 0a 2a 20 46 6f 6e 74 69 66 s.a.package.dependency..*.Fontif
25540 69 63 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 3a 3a 20 20 ication.of.special.variables::..
25560 46 6f 6e 74 20 4c 6f 63 6b 20 6f 66 20 61 6e 61 70 68 6f 72 69 63 20 6d 61 63 72 6f 20 76 61 72 Font.Lock.of.anaphoric.macro.var
25580 69 61 62 6c 65 73 2e 0a 2a 20 49 6e 66 6f 20 73 79 6d 62 6f 6c 20 6c 6f 6f 6b 75 70 3a 3a 20 20 iables..*.Info.symbol.lookup::..
255a0 4c 6f 6f 6b 69 6e 67 20 75 70 20 44 61 73 68 20 73 79 6d 62 6f 6c 73 20 69 6e 20 74 68 69 73 20 Looking.up.Dash.symbols.in.this.
255c0 6d 61 6e 75 61 6c 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73 0a 0a 2a 20 4d 61 70 73 3a 3a 0a 2a 20 53 manual...Functions..*.Maps::.*.S
255e0 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 3a 3a 0a 2a 20 4c 69 73 74 20 74 6f 20 6c 69 73 ublist.selection::.*.List.to.lis
25600 74 3a 3a 0a 2a 20 52 65 64 75 63 74 69 6f 6e 73 3a 3a 0a 2a 20 55 6e 66 6f 6c 64 69 6e 67 3a 3a t::.*.Reductions::.*.Unfolding::
25620 0a 2a 20 50 72 65 64 69 63 61 74 65 73 3a 3a 0a 2a 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 3a 3a .*.Predicates::.*.Partitioning::
25640 0a 2a 20 49 6e 64 65 78 69 6e 67 3a 3a 0a 2a 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 3a 3a .*.Indexing::.*.Set.operations::
25660 0a 2a 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 3a 3a 0a 2a 20 54 72 65 .*.Other.list.operations::.*.Tre
25680 65 20 6f 70 65 72 61 74 69 6f 6e 73 3a 3a 0a 2a 20 54 68 72 65 61 64 69 6e 67 20 6d 61 63 72 6f e.operations::.*.Threading.macro
256a0 73 3a 3a 0a 2a 20 42 69 6e 64 69 6e 67 3a 3a 0a 2a 20 53 69 64 65 20 65 66 66 65 63 74 73 3a 3a s::.*.Binding::.*.Side.effects::
256c0 0a 2a 20 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 3a 3a 0a 2a 20 46 75 .*.Destructive.operations::.*.Fu
256e0 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 3a 3a 0a 0a 44 65 76 65 6c 6f 70 6d 65 6e nction.combinators::..Developmen
25700 74 0a 0a 2a 20 43 6f 6e 74 72 69 62 75 74 65 3a 3a 20 20 20 20 20 20 20 20 20 20 48 6f 77 20 74 t..*.Contribute::..........How.t
25720 6f 20 63 6f 6e 74 72 69 62 75 74 65 2e 0a 2a 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 3a 3a 20 20 o.contribute..*.Contributors::..
25740 20 20 20 20 20 20 4c 69 73 74 20 6f 66 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 2e 0a 0a 1f 0a 46 ......List.of.contributors.....F
25760 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 49 6e 73 74 61 6c 6c 61 74 ile:.dash.info,..Node:.Installat
25780 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 46 75 6e 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 54 6f ion,..Next:.Functions,..Prev:.To
257a0 70 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 31 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 2a 2a 2a 2a p,..Up:.Top..1.Installation.****
257c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 44 61 73 68 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e **********..Dash.is.available.on
257e0 20 47 4e 55 20 45 4c 50 41 20 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f .GNU.ELPA.(https://elpa.gnu.org/
25800 29 2c 20 47 4e 55 2d 64 65 76 65 6c 20 45 4c 50 41 0a 28 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e ),.GNU-devel.ELPA.(https://elpa.
25820 67 6e 75 2e 6f 72 67 2f 64 65 76 65 6c 2f 29 2c 20 61 6e 64 20 4d 45 4c 50 41 20 28 68 74 74 70 gnu.org/devel/),.and.MELPA.(http
25840 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 29 2c 20 61 6e 64 20 63 61 6e 0a 62 65 20 69 6e 73 74 s://melpa.org/),.and.can.be.inst
25860 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 63 6f 6d 6d 61 6e 64 20 alled.with.the.standard.command.
25880 e2 80 98 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c e2 80 99 20 28 2a 6e 6f 74 65 0a 28 65 6d ...package-install....(*note.(em
258a0 61 63 73 29 50 61 63 6b 61 67 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 3a 3a 29 2e 0a 0a e2 80 acs)Package.Installation::).....
258c0 98 4d 2d 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 20 3c 52 45 54 3e 20 64 61 73 68 20 .M-x.package-install.<RET>.dash.
258e0 3c 52 45 54 3e e2 80 99 0a 20 20 20 20 20 49 6e 73 74 61 6c 6c 20 74 68 65 20 44 61 73 68 20 6c <RET>.........Install.the.Dash.l
25900 69 62 72 61 72 79 2e 0a 0a 20 20 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 79 6f 75 20 63 ibrary......Alternatively,.you.c
25920 61 6e 20 6a 75 73 74 20 64 75 6d 70 20 e2 80 98 64 61 73 68 2e 65 6c e2 80 99 20 69 6e 20 79 6f an.just.dump....dash.el....in.yo
25940 75 72 20 e2 80 98 6c 6f 61 64 2d 70 61 74 68 e2 80 99 0a 73 6f 6d 65 77 68 65 72 65 20 28 2a 6e ur....load-path....somewhere.(*n
25960 6f 74 65 20 28 65 6d 61 63 73 29 4c 69 73 70 20 4c 69 62 72 61 72 69 65 73 3a 3a 29 2e 0a 0a 2a ote.(emacs)Lisp.Libraries::)...*
25980 20 4d 65 6e 75 3a 0a 0a 2a 20 55 73 69 6e 67 20 69 6e 20 61 20 70 61 63 6b 61 67 65 3a 3a 20 20 .Menu:..*.Using.in.a.package::..
259a0 4c 69 73 74 69 6e 67 20 44 61 73 68 20 61 73 20 61 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e 64 Listing.Dash.as.a.package.depend
259c0 65 6e 63 79 2e 0a 2a 20 46 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 61 6c ency..*.Fontification.of.special
259e0 20 76 61 72 69 61 62 6c 65 73 3a 3a 20 20 46 6f 6e 74 20 4c 6f 63 6b 20 6f 66 20 61 6e 61 70 68 .variables::..Font.Lock.of.anaph
25a00 6f 72 69 63 20 6d 61 63 72 6f 20 76 61 72 69 61 62 6c 65 73 2e 0a 2a 20 49 6e 66 6f 20 73 79 6d oric.macro.variables..*.Info.sym
25a20 62 6f 6c 20 6c 6f 6f 6b 75 70 3a 3a 20 20 4c 6f 6f 6b 69 6e 67 20 75 70 20 44 61 73 68 20 73 79 bol.lookup::..Looking.up.Dash.sy
25a40 6d 62 6f 6c 73 20 69 6e 20 74 68 69 73 20 6d 61 6e 75 61 6c 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 mbols.in.this.manual.....File:.d
25a60 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 55 73 69 6e 67 20 69 6e 20 61 20 70 61 63 6b ash.info,..Node:.Using.in.a.pack
25a80 61 67 65 2c 20 20 4e 65 78 74 3a 20 46 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 73 70 65 age,..Next:.Fontification.of.spe
25aa0 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 2c 20 20 55 70 3a 20 49 6e 73 74 61 6c 6c 61 74 69 6f cial.variables,..Up:.Installatio
25ac0 6e 0a 0a 31 2e 31 20 55 73 69 6e 67 20 69 6e 20 61 20 70 61 63 6b 61 67 65 0a 3d 3d 3d 3d 3d 3d n..1.1.Using.in.a.package.======
25ae0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 66 20 79 6f 75 20 75 73 65 20 44 61 73 ================..If.you.use.Das
25b00 68 20 69 6e 20 79 6f 75 72 20 6f 77 6e 20 70 61 63 6b 61 67 65 2c 20 62 65 20 73 75 72 65 20 74 h.in.your.own.package,.be.sure.t
25b20 6f 20 6c 69 73 74 20 69 74 20 61 73 20 61 20 64 65 70 65 6e 64 65 6e 63 79 0a 69 6e 20 74 68 65 o.list.it.as.a.dependency.in.the
25b40 20 6c 69 62 72 61 72 79 e2 80 99 73 20 68 65 61 64 65 72 73 20 61 73 20 66 6f 6c 6c 6f 77 73 20 .library...s.headers.as.follows.
25b60 28 2a 6e 6f 74 65 20 28 65 6c 69 73 70 29 4c 69 62 72 61 72 79 20 48 65 61 64 65 72 73 3a 3a 29 (*note.(elisp)Library.Headers::)
25b80 2e 0a 0a 20 20 20 20 20 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 64 ........;;.Package-Requires:.((d
25ba0 61 73 68 20 22 32 2e 31 39 2e 31 22 29 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 ash."2.19.1"))....File:.dash.inf
25bc0 6f 2c 20 20 4e 6f 64 65 3a 20 46 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 o,..Node:.Fontification.of.speci
25be0 61 6c 20 76 61 72 69 61 62 6c 65 73 2c 20 20 4e 65 78 74 3a 20 49 6e 66 6f 20 73 79 6d 62 6f 6c al.variables,..Next:.Info.symbol
25c00 20 6c 6f 6f 6b 75 70 2c 20 20 50 72 65 76 3a 20 55 73 69 6e 67 20 69 6e 20 61 20 70 61 63 6b 61 .lookup,..Prev:.Using.in.a.packa
25c20 67 65 2c 20 20 55 70 3a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 31 2e 32 20 46 6f 6e 74 69 ge,..Up:.Installation..1.2.Fonti
25c40 66 69 63 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 0a 3d 3d fication.of.special.variables.==
25c60 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================================
25c80 3d 3d 3d 3d 0a 0a 54 68 65 20 61 75 74 6f 6c 6f 61 64 65 64 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 ====..The.autoloaded.minor.mode.
25ca0 e2 80 98 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f 64 65 e2 80 99 20 69 73 20 70 72 6f 76 69 ...dash-fontify-mode....is.provi
25cc0 64 65 64 20 66 6f 72 20 6f 70 74 69 6f 6e 61 6c 0a 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 6f ded.for.optional.fontification.o
25ce0 66 20 61 6e 61 70 68 6f 72 69 63 20 44 61 73 68 20 76 61 72 69 61 62 6c 65 73 20 28 e2 80 98 69 f.anaphoric.Dash.variables.(...i
25d00 74 e2 80 99 2c 20 e2 80 98 61 63 63 e2 80 99 2c 20 65 74 63 2e 29 20 69 6e 20 45 6d 61 63 73 0a t...,....acc...,.etc.).in.Emacs.
25d20 4c 69 73 70 20 62 75 66 66 65 72 73 20 75 73 69 6e 67 20 73 65 61 72 63 68 2d 62 61 73 65 64 20 Lisp.buffers.using.search-based.
25d40 46 6f 6e 74 20 4c 6f 63 6b 20 28 2a 6e 6f 74 65 20 28 65 6d 61 63 73 29 46 6f 6e 74 20 4c 6f 63 Font.Lock.(*note.(emacs)Font.Loc
25d60 6b 3a 3a 29 2e 0a 49 6e 20 6f 6c 64 65 72 20 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 73 20 77 68 k::)..In.older.Emacs.versions.wh
25d80 69 63 68 20 64 6f 20 6e 6f 74 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 64 65 74 65 63 74 20 6d 61 ich.do.not.dynamically.detect.ma
25da0 63 72 6f 73 2c 20 74 68 65 0a 6d 69 6e 6f 72 20 6d 6f 64 65 20 61 6c 73 6f 20 66 6f 6e 74 69 66 cros,.the.minor.mode.also.fontif
25dc0 69 65 73 20 63 61 6c 6c 73 20 74 6f 20 44 61 73 68 20 6d 61 63 72 6f 73 2e 0a 0a 20 20 20 54 6f ies.calls.to.Dash.macros......To
25de0 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 6e 61 62 6c 65 20 74 68 65 20 6d 69 6e 6f 72 20 .automatically.enable.the.minor.
25e00 6d 6f 64 65 20 69 6e 20 61 6c 6c 20 45 6d 61 63 73 20 4c 69 73 70 20 62 75 66 66 65 72 73 2c 0a mode.in.all.Emacs.Lisp.buffers,.
25e20 6a 75 73 74 20 63 61 6c 6c 20 69 74 73 20 61 75 74 6f 6c 6f 61 64 65 64 20 67 6c 6f 62 61 6c 20 just.call.its.autoloaded.global.
25e40 63 6f 75 6e 74 65 72 70 61 72 74 20 e2 80 98 67 6c 6f 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 69 counterpart....global-dash-fonti
25e60 66 79 2d 6d 6f 64 65 e2 80 99 2c 0a 65 69 74 68 65 72 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 fy-mode...,.either.interactively
25e80 20 6f 72 20 66 72 6f 6d 20 79 6f 75 72 20 e2 80 98 75 73 65 72 2d 69 6e 69 74 2d 66 69 6c 65 e2 .or.from.your....user-init-file.
25ea0 80 99 3a 0a 0a 20 20 20 20 20 28 67 6c 6f 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d ..:.......(global-dash-fontify-m
25ec0 6f 64 65 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 ode)....File:.dash.info,..Node:.
25ee0 49 6e 66 6f 20 73 79 6d 62 6f 6c 20 6c 6f 6f 6b 75 70 2c 20 20 50 72 65 76 3a 20 46 6f 6e 74 69 Info.symbol.lookup,..Prev:.Fonti
25f00 66 69 63 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 2c 20 20 fication.of.special.variables,..
25f20 55 70 3a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 31 2e 33 20 49 6e 66 6f 20 73 79 6d 62 6f Up:.Installation..1.3.Info.symbo
25f40 6c 20 6c 6f 6f 6b 75 70 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a l.lookup.======================.
25f60 0a 57 68 69 6c 65 20 65 64 69 74 69 6e 67 20 45 6c 69 73 70 20 66 69 6c 65 73 2c 20 79 6f 75 20 .While.editing.Elisp.files,.you.
25f80 63 61 6e 20 75 73 65 20 e2 80 98 43 2d 68 20 53 e2 80 99 20 28 e2 80 98 69 6e 66 6f 2d 6c 6f 6f can.use....C-h.S....(...info-loo
25fa0 6b 75 70 2d 73 79 6d 62 6f 6c e2 80 99 29 20 74 6f 0a 6c 6f 6f 6b 20 75 70 20 45 6c 69 73 70 20 kup-symbol...).to.look.up.Elisp.
25fc0 73 79 6d 62 6f 6c 73 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 49 6e 66 6f 20 6d 61 6e symbols.in.the.relevant.Info.man
25fe0 75 61 6c 73 20 28 2a 6e 6f 74 65 20 28 65 6d 61 63 73 29 49 6e 66 6f 0a 4c 6f 6f 6b 75 70 3a 3a uals.(*note.(emacs)Info.Lookup::
26000 29 2e 20 20 54 6f 20 65 6e 61 62 6c 65 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 44 61 73 68 20 )...To.enable.the.same.for.Dash.
26020 73 79 6d 62 6f 6c 73 2c 20 75 73 65 20 74 68 65 20 63 6f 6d 6d 61 6e 64 0a e2 80 98 64 61 73 68 symbols,.use.the.command....dash
26040 2d 72 65 67 69 73 74 65 72 2d 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 e2 80 99 2e 20 20 49 74 20 63 61 -register-info-lookup......It.ca
26060 6e 20 62 65 20 63 61 6c 6c 65 64 20 64 69 72 65 63 74 6c 79 20 77 68 65 6e 20 6e 65 65 64 65 64 n.be.called.directly.when.needed
26080 2c 20 6f 72 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 79 6f 75 72 20 e2 80 98 ,.or.automatically.from.your....
260a0 75 73 65 72 2d 69 6e 69 74 2d 66 69 6c 65 e2 80 99 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a user-init-file......For.example:
260c0 0a 0a 20 20 20 20 20 28 77 69 74 68 2d 65 76 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 20 27 69 6e .......(with-eval-after-load.'in
260e0 66 6f 2d 6c 6f 6f 6b 0a 20 20 20 20 20 20 20 28 64 61 73 68 2d 72 65 67 69 73 74 65 72 2d 69 6e fo-look........(dash-register-in
26100 66 6f 2d 6c 6f 6f 6b 75 70 29 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 fo-lookup))....File:.dash.info,.
26120 20 4e 6f 64 65 3a 20 46 75 6e 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 44 65 76 65 6c 6f 70 .Node:.Functions,..Next:.Develop
26140 6d 65 6e 74 2c 20 20 50 72 65 76 3a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 2c 20 20 55 70 3a 20 ment,..Prev:.Installation,..Up:.
26160 54 6f 70 0a 0a 32 20 46 75 6e 63 74 69 6f 6e 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 Top..2.Functions.***********..Th
26180 69 73 20 63 68 61 70 74 65 72 20 63 6f 6e 74 61 69 6e 73 20 72 65 66 65 72 65 6e 63 65 20 64 6f is.chapter.contains.reference.do
261a0 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 44 61 73 68 20 41 50 49 0a 28 41 70 cumentation.for.the.Dash.API.(Ap
261c0 70 6c 69 63 61 74 69 6f 6e 20 50 72 6f 67 72 61 6d 6d 69 6e 67 20 49 6e 74 65 72 66 61 63 65 29 plication.Programming.Interface)
261e0 2e 20 20 54 68 65 20 6e 61 6d 65 73 20 6f 66 20 61 6c 6c 20 70 75 62 6c 69 63 20 66 75 6e 63 74 ...The.names.of.all.public.funct
26200 69 6f 6e 73 0a 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 6c 69 62 72 61 72 79 20 61 72 65 20 ions.defined.in.the.library.are.
26220 70 72 65 66 69 78 65 64 20 77 69 74 68 20 61 20 64 61 73 68 20 63 68 61 72 61 63 74 65 72 20 28 prefixed.with.a.dash.character.(
26240 e2 80 98 2d e2 80 99 29 2e 0a 0a 20 20 20 54 68 65 20 6c 69 62 72 61 72 79 20 61 6c 73 6f 20 70 ...-...)......The.library.also.p
26260 72 6f 76 69 64 65 73 20 61 6e 61 70 68 6f 72 69 63 20 6d 61 63 72 6f 20 76 65 72 73 69 6f 6e 73 rovides.anaphoric.macro.versions
26280 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 77 68 65 72 65 0a 74 68 61 74 20 6d 61 6b 65 73 20 73 .of.functions.where.that.makes.s
262a0 65 6e 73 65 2e 20 20 54 68 65 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 73 65 20 6d 61 63 72 6f 73 ense...The.names.of.these.macros
262c0 20 61 72 65 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 74 77 6f 0a 64 61 73 68 65 73 20 28 e2 .are.prefixed.with.two.dashes.(.
262e0 80 98 2d 2d e2 80 99 29 20 69 6e 73 74 65 61 64 20 6f 66 20 6f 6e 65 2e 0a 0a 20 20 20 46 6f 72 ..--...).instead.of.one......For
26300 20 69 6e 73 74 61 6e 63 65 2c 20 77 68 69 6c 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 e2 80 .instance,.while.the.function...
26320 98 2d 6d 61 70 e2 80 99 20 61 70 70 6c 69 65 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 65 .-map....applies.a.function.to.e
26340 61 63 68 0a 65 6c 65 6d 65 6e 74 20 6f 66 20 61 20 6c 69 73 74 2c 20 69 74 73 20 61 6e 61 70 68 ach.element.of.a.list,.its.anaph
26360 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 e2 80 98 2d 2d 6d 61 70 e2 80 99 20 65 76 61 oric.counterpart....--map....eva
26380 6c 75 61 74 65 73 20 61 20 66 6f 72 6d 0a 77 69 74 68 20 74 68 65 20 6c 6f 63 61 6c 20 76 61 72 luates.a.form.with.the.local.var
263a0 69 61 62 6c 65 20 e2 80 98 69 74 e2 80 99 20 74 65 6d 70 6f 72 61 72 69 6c 79 20 62 6f 75 6e 64 iable....it....temporarily.bound
263c0 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 73 74 0a 65 6c 65 6d 65 6e 74 20 69 6e 73 .to.the.current.list.element.ins
263e0 74 65 61 64 2e 0a 0a 20 20 20 20 20 3b 3b 20 4e 6f 72 6d 61 6c 20 76 65 72 73 69 6f 6e 2e 0a 20 tead........;;.Normal.version...
26400 20 20 20 20 28 2d 6d 61 70 20 28 6c 61 6d 62 64 61 20 28 6e 29 20 28 2a 20 6e 20 6e 29 29 20 27 ....(-map.(lambda.(n).(*.n.n)).'
26420 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 34 20 39 20 31 (1.2.3.4))..............(1.4.9.1
26440 36 29 0a 0a 20 20 20 20 20 3b 3b 20 41 6e 61 70 68 6f 72 69 63 20 76 65 72 73 69 6f 6e 2e 0a 20 6).......;;.Anaphoric.version...
26460 20 20 20 20 28 2d 2d 6d 61 70 20 28 2a 20 69 74 20 69 74 29 20 27 28 31 20 32 20 33 20 34 29 29 ....(--map.(*.it.it).'(1.2.3.4))
26480 0a 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 34 20 39 20 31 36 29 0a 0a 20 20 20 54 68 65 ..............(1.4.9.16).....The
264a0 20 6e 6f 72 6d 61 6c 20 76 65 72 73 69 6f 6e 20 63 61 6e 2c 20 6f 66 20 63 6f 75 72 73 65 2c 20 .normal.version.can,.of.course,.
264c0 61 6c 73 6f 20 62 65 20 77 72 69 74 74 65 6e 20 61 73 20 69 6e 20 74 68 65 0a 66 6f 6c 6c 6f 77 also.be.written.as.in.the.follow
264e0 69 6e 67 20 65 78 61 6d 70 6c 65 2c 20 77 68 69 63 68 20 64 65 6d 6f 6e 73 74 72 61 74 65 73 20 ing.example,.which.demonstrates.
26500 74 68 65 20 75 74 69 6c 69 74 79 20 6f 66 20 62 6f 74 68 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 20 the.utility.of.both.versions....
26520 20 20 20 20 28 64 65 66 75 6e 20 6d 79 2d 73 71 75 61 72 65 20 28 6e 29 0a 20 20 20 20 20 20 20 ....(defun.my-square.(n)........
26540 22 52 65 74 75 72 6e 20 4e 20 6d 75 6c 74 69 70 6c 69 65 64 20 62 79 20 69 74 73 65 6c 66 2e 22 "Return.N.multiplied.by.itself."
26560 0a 20 20 20 20 20 20 20 28 2a 20 6e 20 6e 29 29 0a 0a 20 20 20 20 20 28 2d 6d 61 70 20 23 27 6d ........(*.n.n)).......(-map.#'m
26580 79 2d 73 71 75 61 72 65 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 e2 87 y-square.'(1.2.3.4))............
265a0 92 20 28 31 20 34 20 39 20 31 36 29 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 4d 61 70 73 3a 3a 0a ..(1.4.9.16)..*.Menu:..*.Maps::.
265c0 2a 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 3a 3a 0a 2a 20 4c 69 73 74 20 74 6f 20 *.Sublist.selection::.*.List.to.
265e0 6c 69 73 74 3a 3a 0a 2a 20 52 65 64 75 63 74 69 6f 6e 73 3a 3a 0a 2a 20 55 6e 66 6f 6c 64 69 6e list::.*.Reductions::.*.Unfoldin
26600 67 3a 3a 0a 2a 20 50 72 65 64 69 63 61 74 65 73 3a 3a 0a 2a 20 50 61 72 74 69 74 69 6f 6e 69 6e g::.*.Predicates::.*.Partitionin
26620 67 3a 3a 0a 2a 20 49 6e 64 65 78 69 6e 67 3a 3a 0a 2a 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e g::.*.Indexing::.*.Set.operation
26640 73 3a 3a 0a 2a 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 3a 3a 0a 2a 20 s::.*.Other.list.operations::.*.
26660 54 72 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 3a 3a 0a 2a 20 54 68 72 65 61 64 69 6e 67 20 6d 61 Tree.operations::.*.Threading.ma
26680 63 72 6f 73 3a 3a 0a 2a 20 42 69 6e 64 69 6e 67 3a 3a 0a 2a 20 53 69 64 65 20 65 66 66 65 63 74 cros::.*.Binding::.*.Side.effect
266a0 73 3a 3a 0a 2a 20 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 3a 3a 0a 2a s::.*.Destructive.operations::.*
266c0 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a .Function.combinators::....File:
266e0 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4d 61 70 73 2c 20 20 4e 65 78 74 3a 20 .dash.info,..Node:.Maps,..Next:.
26700 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e Sublist.selection,..Up:.Function
26720 73 0a 0a 32 2e 31 20 4d 61 70 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 6e 63 74 69 6f 6e 73 20 s..2.1.Maps.========..Functions.
26740 69 6e 20 74 68 69 73 20 63 61 74 65 67 6f 72 79 20 74 61 6b 65 20 61 20 74 72 61 6e 73 66 6f 72 in.this.category.take.a.transfor
26760 6d 69 6e 67 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 69 63 68 20 69 73 20 74 68 65 6e 0a 61 70 70 ming.function,.which.is.then.app
26780 6c 69 65 64 20 73 65 71 75 65 6e 74 69 61 6c 6c 79 20 74 6f 20 65 61 63 68 20 6f 72 20 73 65 6c lied.sequentially.to.each.or.sel
267a0 65 63 74 65 64 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 20 69 6e 70 75 74 20 6c 69 73 74 ected.elements.of.the.input.list
267c0 2e 0a 54 68 65 20 72 65 73 75 6c 74 73 20 61 72 65 20 63 6f 6c 6c 65 63 74 65 64 20 69 6e 20 6f ..The.results.are.collected.in.o
267e0 72 64 65 72 20 61 6e 64 20 72 65 74 75 72 6e 65 64 20 61 73 20 61 20 6e 65 77 20 6c 69 73 74 2e rder.and.returned.as.a.new.list.
26800 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6d 61 70 20 28 66 6e 20 6c 69 73 74 29 0a 20 ...--.Function:.-map.(fn.list)..
26820 20 20 20 20 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 ....Apply.FN.to.each.item.in.LIS
26840 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 65 73 75 6c 74 73 T.and.return.the.list.of.results
26860 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f ........This.function...s.anapho
26880 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 6d 61 70 e2 80 99 2e 0a ric.counterpart.is....--map.....
268a0 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 6c 61 6d 62 64 61 20 28 6e 75 6d 29 20 28 ...........(-map.(lambda.(num).(
268c0 2a 20 6e 75 6d 20 6e 75 6d 29 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 *.num.num)).'(1.2.3.4)).........
268e0 20 20 20 20 20 20 e2 87 92 20 28 31 20 34 20 39 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 28 ..........(1.4.9.16)...........(
26900 2d 6d 61 70 20 23 27 31 2b 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 -map.#'1+.'(1.2.3.4))...........
26920 20 20 20 20 e2 87 92 20 28 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d ........(2.3.4.5)...........(--m
26940 61 70 20 28 2a 20 69 74 20 69 74 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 ap.(*.it.it).'(1.2.3.4))........
26960 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 34 20 39 20 31 36 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 ...........(1.4.9.16)...--.Funct
26980 69 6f 6e 3a 20 2d 6d 61 70 2d 77 68 65 6e 20 28 70 72 65 64 20 72 65 70 20 6c 69 73 74 29 0a 20 ion:.-map-when.(pred.rep.list)..
269a0 20 20 20 20 55 73 65 20 50 52 45 44 20 74 6f 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 61 70 ....Use.PRED.to.conditionally.ap
269c0 70 6c 79 20 52 45 50 20 74 6f 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2e 20 20 52 ply.REP.to.each.item.in.LIST...R
269e0 65 74 75 72 6e 20 61 0a 20 20 20 20 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 68 65 72 65 20 eturn.a......copy.of.LIST.where.
26a00 74 68 65 20 69 74 65 6d 73 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 the.items.for.which.PRED.returns
26a20 20 e2 80 98 6e 69 6c e2 80 99 20 61 72 65 0a 20 20 20 20 20 75 6e 63 68 61 6e 67 65 64 2c 20 61 ....nil....are......unchanged,.a
26a40 6e 64 20 74 68 65 20 72 65 73 74 20 61 72 65 20 6d 61 70 70 65 64 20 74 68 72 6f 75 67 68 20 74 nd.the.rest.are.mapped.through.t
26a60 68 65 20 52 45 50 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 he.REP.function........Alias:...
26a80 98 2d 72 65 70 6c 61 63 65 2d 77 68 65 72 65 e2 80 99 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 .-replace-where..........See.als
26aa0 6f 3a 20 e2 80 98 2d 75 70 64 61 74 65 2d 61 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 75 70 64 61 o:....-update-at....(*note.-upda
26ac0 74 65 2d 61 74 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 2d 77 68 65 6e 20 27 te-at::)............(-map-when.'
26ae0 65 76 65 6e 3f 20 27 73 71 75 61 72 65 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 even?.'square.'(1.2.3.4)).......
26b00 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 34 20 33 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 ............(1.4.3.16)..........
26b20 20 28 2d 2d 6d 61 70 2d 77 68 65 6e 20 28 3e 20 69 74 20 32 29 20 28 2a 20 69 74 20 69 74 29 20 .(--map-when.(>.it.2).(*.it.it).
26b40 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 '(1.2.3.4))...................(1
26b60 20 32 20 39 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 2d 77 68 65 6e 20 28 .2.9.16)...........(--map-when.(
26b80 3d 20 69 74 20 32 29 20 31 37 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 =.it.2).17.'(1.2.3.4))..........
26ba0 20 20 20 20 20 e2 87 92 20 28 31 20 31 37 20 33 20 34 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f .........(1.17.3.4)...--.Functio
26bc0 6e 3a 20 2d 6d 61 70 2d 66 69 72 73 74 20 28 70 72 65 64 20 72 65 70 20 6c 69 73 74 29 0a 20 20 n:.-map-first.(pred.rep.list)...
26be0 20 20 20 55 73 65 20 50 52 45 44 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 66 69 72 ...Use.PRED.to.determine.the.fir
26c00 73 74 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 20 74 6f 20 63 61 6c 6c 20 52 45 50 20 6f 6e 2e 0a st.item.in.LIST.to.call.REP.on..
26c20 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 68 65 72 65 .....Return.a.copy.of.LIST.where
26c40 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 .the.first.item.for.which.PRED.r
26c60 65 74 75 72 6e 73 0a 20 20 20 20 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 73 20 72 65 70 eturns......non-...nil....is.rep
26c80 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 laced.with.the.result.of.calling
26ca0 20 52 45 50 20 6f 6e 20 74 68 61 74 20 69 74 65 6d 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 .REP.on.that.item........See.als
26cc0 6f 3a 20 e2 80 98 2d 6d 61 70 2d 77 68 65 6e e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6d 61 70 2d 77 o:....-map-when....(*note.-map-w
26ce0 68 65 6e 3a 3a 29 2c 20 e2 80 98 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 e2 80 99 20 28 2a 6e hen::),....-replace-first....(*n
26d00 6f 74 65 0a 20 20 20 20 20 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 3a 3a 29 0a 0a 20 20 20 20 ote......-replace-first::)......
26d20 20 20 20 20 20 20 28 2d 6d 61 70 2d 66 69 72 73 74 20 27 65 76 65 6e 3f 20 27 73 71 75 61 72 65 ......(-map-first.'even?.'square
26d40 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 .'(1.2.3.4))...................(
26d60 31 20 34 20 33 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 2d 66 69 72 73 74 20 1.4.3.4)...........(--map-first.
26d80 28 3e 20 69 74 20 32 29 20 28 2a 20 69 74 20 69 74 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 (>.it.2).(*.it.it).'(1.2.3.4))..
26da0 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 39 20 34 29 0a 20 20 20 20 20 .................(1.2.9.4)......
26dc0 20 20 20 20 20 28 2d 2d 6d 61 70 2d 66 69 72 73 74 20 28 3d 20 69 74 20 32 29 20 31 37 20 27 28 .....(--map-first.(=.it.2).17.'(
26de0 31 20 32 20 33 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 31 1.2.3.2))...................(1.1
26e00 37 20 33 20 32 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6d 61 70 2d 6c 61 73 74 20 7.3.2)...--.Function:.-map-last.
26e20 28 70 72 65 64 20 72 65 70 20 6c 69 73 74 29 0a 20 20 20 20 20 55 73 65 20 50 52 45 44 20 74 6f (pred.rep.list)......Use.PRED.to
26e40 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 .determine.the.last.item.in.LIST
26e60 20 74 6f 20 63 61 6c 6c 20 52 45 50 20 6f 6e 2e 20 20 52 65 74 75 72 6e 0a 20 20 20 20 20 61 20 .to.call.REP.on...Return......a.
26e80 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 68 65 72 65 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d copy.of.LIST.where.the.last.item
26ea0 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e .for.which.PRED.returns.non-...n
26ec0 69 6c e2 80 99 0a 20 20 20 20 20 69 73 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 il.........is.replaced.with.the.
26ee0 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 52 45 50 20 6f 6e 20 74 68 61 74 20 69 74 result.of.calling.REP.on.that.it
26f00 65 6d 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 6d 61 70 2d 77 68 65 6e em........See.also:....-map-when
26f20 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6d 61 70 2d 77 68 65 6e 3a 3a 29 2c 20 e2 80 98 2d 72 65 70 ....(*note.-map-when::),....-rep
26f40 6c 61 63 65 2d 6c 61 73 74 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 72 65 70 6c 61 63 lace-last....(*note......-replac
26f60 65 2d 6c 61 73 74 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 2d 6c 61 73 74 20 e-last::)............(-map-last.
26f80 27 65 76 65 6e 3f 20 27 73 71 75 61 72 65 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 'even?.'square.'(1.2.3.4))......
26fa0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 31 36 29 0a 20 20 20 20 20 20 20 20 .............(1.2.3.16).........
26fc0 20 20 28 2d 2d 6d 61 70 2d 6c 61 73 74 20 28 3e 20 69 74 20 32 29 20 28 2a 20 69 74 20 69 74 29 ..(--map-last.(>.it.2).(*.it.it)
26fe0 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 .'(1.2.3.4))...................(
27000 31 20 32 20 33 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 2d 6c 61 73 74 20 1.2.3.16)...........(--map-last.
27020 28 3d 20 69 74 20 32 29 20 31 37 20 27 28 31 20 32 20 33 20 32 29 29 0a 20 20 20 20 20 20 20 20 (=.it.2).17.'(1.2.3.2)).........
27040 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 31 37 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 ..........(1.2.3.17)...--.Functi
27060 6f 6e 3a 20 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 on:.-map-indexed.(fn.list)......
27080 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 69 6e 64 65 78 20 61 6e 64 20 69 74 65 6d 20 Apply.FN.to.each.index.and.item.
270a0 69 6e 20 4c 49 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 0a 20 in.LIST.and.return.the.list.of..
270c0 20 20 20 20 72 65 73 75 6c 74 73 2e 20 20 54 68 69 73 20 69 73 20 6c 69 6b 65 20 e2 80 98 2d 6d ....results...This.is.like....-m
270e0 61 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6d 61 70 3a 3a 29 2c 20 62 75 74 20 46 4e 20 74 61 6b ap....(*note.-map::),.but.FN.tak
27100 65 73 20 74 77 6f 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 69 6e 64 65 78 es.two......arguments:.the.index
27120 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6c 65 6d 65 6e 74 20 77 69 74 68 69 6e 20 4c .of.the.current.element.within.L
27140 49 53 54 2c 20 61 6e 64 20 74 68 65 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 20 69 74 73 65 6c 66 IST,.and.the......element.itself
27160 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f ........This.function...s.anapho
27180 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 6d 61 70 2d 69 6e 64 65 ric.counterpart.is....--map-inde
271a0 78 65 64 e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 61 20 73 69 64 65 2d 65 66 66 65 63 74 69 xed...........For.a.side-effecti
271c0 6e 67 20 76 61 72 69 61 6e 74 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 65 61 63 68 2d 69 6e ng.variant,.see.also....-each-in
271e0 64 65 78 65 64 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 65 61 63 68 2d 69 6e 64 65 78 dexed....(*note......-each-index
27200 65 64 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 ed::).............(-map-indexed.
27220 28 6c 61 6d 62 64 61 20 28 69 6e 64 65 78 20 69 74 65 6d 29 20 28 2d 20 69 74 65 6d 20 69 6e 64 (lambda.(index.item).(-.item.ind
27240 65 78 29 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 ex)).'(1.2.3.4))................
27260 87 92 20 28 31 20 31 20 31 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 2d 69 6e ...(1.1.1.1)...........(--map-in
27280 64 65 78 65 64 20 28 2d 20 69 74 20 69 74 2d 69 6e 64 65 78 29 20 27 28 31 20 32 20 33 20 34 29 dexed.(-.it.it-index).'(1.2.3.4)
272a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 31 20 31 20 31 29 0a 20 20 )...................(1.1.1.1)...
272c0 20 20 20 20 20 20 20 20 28 2d 6d 61 70 2d 69 6e 64 65 78 65 64 20 23 27 2a 20 27 28 31 20 32 20 ........(-map-indexed.#'*.'(1.2.
272e0 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 30 20 32 20 36 20 31 3.4))...................(0.2.6.1
27300 32 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 61 6e 6e 6f 74 61 74 65 20 28 66 6e 20 2)...--.Function:.-annotate.(fn.
27320 6c 69 73 74 29 0a 20 20 20 20 20 50 61 69 72 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 list)......Pair.each.item.in.LIS
27340 54 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 70 61 73 73 69 6e 67 20 69 74 20 T.with.the.result.of.passing.it.
27360 74 6f 20 46 4e 2e 0a 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 to.FN........Return.an.alist.of.
27380 28 52 45 53 55 4c 54 20 2e 20 20 49 54 45 4d 29 2c 20 77 68 65 72 65 20 65 61 63 68 20 49 54 45 (RESULT....ITEM),.where.each.ITE
273a0 4d 20 69 73 20 74 68 65 0a 20 20 20 20 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 6c 65 6d M.is.the......corresponding.elem
273c0 65 6e 74 20 6f 66 20 4c 49 53 54 2c 20 61 6e 64 20 52 45 53 55 4c 54 20 69 73 20 74 68 65 20 76 ent.of.LIST,.and.RESULT.is.the.v
273e0 61 6c 75 65 20 6f 62 74 61 69 6e 65 64 20 62 79 0a 20 20 20 20 20 63 61 6c 6c 69 6e 67 20 46 4e alue.obtained.by......calling.FN
27400 20 6f 6e 20 49 54 45 4d 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 .on.ITEM........This.function...
27420 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d s.anaphoric.counterpart.is....--
27440 61 6e 6e 6f 74 61 74 65 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 61 6e 6e 6f 74 61 annotate................(-annota
27460 74 65 20 23 27 31 2b 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te.#'1+.'(1.2.3))...............
27480 e2 87 92 20 28 28 32 20 2e 20 31 29 20 28 33 20 2e 20 32 29 20 28 34 20 2e 20 33 29 29 0a 20 20 ....((2...1).(3...2).(4...3))...
274a0 20 20 20 20 20 20 20 20 28 2d 61 6e 6e 6f 74 61 74 65 20 23 27 6c 65 6e 67 74 68 20 27 28 28 66 ........(-annotate.#'length.'((f
274c0 20 6f 20 6f 29 20 28 62 61 72 20 62 61 7a 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .o.o).(bar.baz)))...............
274e0 e2 87 92 20 28 28 33 20 66 20 6f 20 6f 29 20 28 32 20 62 61 72 20 62 61 7a 29 29 0a 20 20 20 20 ....((3.f.o.o).(2.bar.baz)).....
27500 20 20 20 20 20 20 28 2d 2d 61 6e 6e 6f 74 61 74 65 20 28 3e 20 69 74 20 31 29 20 27 28 30 20 31 ......(--annotate.(>.it.1).'(0.1
27520 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 6e 69 6c 20 2e .2.3))...................((nil..
27540 20 30 29 20 28 6e 69 6c 20 2e 20 31 29 20 28 74 20 2e 20 32 29 20 28 74 20 2e 20 33 29 29 0a 0a .0).(nil...1).(t...2).(t...3))..
27560 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 70 6c 69 63 65 20 28 70 72 65 64 20 66 75 6e 20 .--.Function:.-splice.(pred.fun.
27580 6c 69 73 74 29 0a 20 20 20 20 20 53 70 6c 69 63 65 20 6c 69 73 74 73 20 67 65 6e 65 72 61 74 65 list)......Splice.lists.generate
275a0 64 20 62 79 20 46 55 4e 20 69 6e 20 70 6c 61 63 65 20 6f 66 20 69 74 65 6d 73 20 73 61 74 69 73 d.by.FUN.in.place.of.items.satis
275c0 66 79 69 6e 67 20 50 52 45 44 20 69 6e 0a 20 20 20 20 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 43 fying.PRED.in......LIST........C
275e0 61 6c 6c 20 50 52 45 44 20 6f 6e 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 all.PRED.on.each.element.of.LIST
27600 2e 20 20 57 68 65 6e 65 76 65 72 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 20 69 ...Whenever.the.result.of.PRED.i
27620 73 0a 20 20 20 20 20 e2 80 98 6e 69 6c e2 80 99 2c 20 6c 65 61 76 65 20 74 68 61 74 20 e2 80 98 s.........nil...,.leave.that....
27640 69 74 e2 80 99 20 61 73 2d 69 73 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 63 61 6c 6c 20 46 55 it....as-is...Otherwise,.call.FU
27660 4e 20 6f 6e 20 74 68 65 20 73 61 6d 65 20 e2 80 98 69 74 e2 80 99 0a 20 20 20 20 20 74 68 61 74 N.on.the.same....it.........that
27680 20 73 61 74 69 73 66 69 65 64 20 50 52 45 44 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 73 68 6f .satisfied.PRED...The.result.sho
276a0 75 6c 64 20 62 65 20 61 20 28 70 6f 73 73 69 62 6c 79 20 65 6d 70 74 79 29 20 6c 69 73 74 0a 20 uld.be.a.(possibly.empty).list..
276c0 20 20 20 20 6f 66 20 69 74 65 6d 73 20 74 6f 20 73 70 6c 69 63 65 20 69 6e 20 70 6c 61 63 65 20 ....of.items.to.splice.in.place.
276e0 6f 66 20 e2 80 98 69 74 e2 80 99 20 69 6e 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 of....it....in.LIST........This.
27700 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 61 73 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 can.be.useful.as.an.alternative.
27720 74 6f 20 74 68 65 20 e2 80 98 2c 40 e2 80 99 20 63 6f 6e 73 74 72 75 63 74 20 69 6e 20 61 20 e2 to.the....,@....construct.in.a..
27740 80 98 60 e2 80 99 0a 20 20 20 20 20 73 74 72 75 63 74 75 72 65 2c 20 69 6e 20 63 61 73 65 20 79 ..`.........structure,.in.case.y
27760 6f 75 20 6e 65 65 64 20 74 6f 20 73 70 6c 69 63 65 20 73 65 76 65 72 61 6c 20 6c 69 73 74 73 20 ou.need.to.splice.several.lists.
27780 61 74 20 6d 61 72 6b 65 64 0a 20 20 20 20 20 70 6f 73 69 74 69 6f 6e 73 20 28 66 6f 72 20 65 78 at.marked......positions.(for.ex
277a0 61 6d 70 6c 65 20 77 69 74 68 20 6b 65 79 77 6f 72 64 73 29 2e 0a 0a 20 20 20 20 20 54 68 69 73 ample.with.keywords)........This
277c0 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 .function...s.anaphoric.counterp
277e0 61 72 74 20 69 73 20 e2 80 98 2d 2d 73 70 6c 69 63 65 e2 80 99 2e 0a 0a 20 20 20 20 20 53 65 65 art.is....--splice...........See
27800 20 61 6c 73 6f 3a 20 e2 80 98 2d 73 70 6c 69 63 65 2d 6c 69 73 74 e2 80 99 20 28 2a 6e 6f 74 65 .also:....-splice-list....(*note
27820 20 2d 73 70 6c 69 63 65 2d 6c 69 73 74 3a 3a 29 2c 20 e2 80 98 2d 69 6e 73 65 72 74 2d 61 74 e2 .-splice-list::),....-insert-at.
27840 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 69 6e 73 65 72 74 2d 61 74 3a 3a 29 2e 0a 0a 20 ........(*note.-insert-at::)....
27860 20 20 20 20 20 20 20 20 20 28 2d 73 70 6c 69 63 65 20 23 27 6e 75 6d 62 65 72 70 20 28 6c 61 6d .........(-splice.#'numberp.(lam
27880 62 64 61 20 28 6e 29 20 28 6c 69 73 74 20 6e 20 6e 29 29 20 27 28 61 20 31 20 62 20 32 29 29 0a bda.(n).(list.n.n)).'(a.1.b.2)).
278a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 61 20 31 20 31 20 62 20 32 20 32 29 0a ..................(a.1.1.b.2.2).
278c0 20 20 20 20 20 20 20 20 20 20 28 2d 2d 73 70 6c 69 63 65 20 74 20 28 6c 69 73 74 20 69 74 20 69 ..........(--splice.t.(list.it.i
278e0 74 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 t).'(1.2.3.4))..................
27900 20 28 31 20 31 20 32 20 32 20 33 20 33 20 34 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d .(1.1.2.2.3.3.4.4)...........(--
27920 73 70 6c 69 63 65 20 28 65 71 20 69 74 20 3a 6d 61 67 69 63 29 20 27 28 28 6d 61 67 69 63 61 6c splice.(eq.it.:magic).'((magical
27940 29 20 28 63 6f 64 65 29 29 20 27 28 28 66 6f 6f 29 20 3a 6d 61 67 69 63 20 28 62 61 72 29 29 29 ).(code)).'((foo).:magic.(bar)))
27960 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 66 6f 6f 29 20 28 6d 61 67 69 63 ...................((foo).(magic
27980 61 6c 29 20 28 63 6f 64 65 29 20 28 62 61 72 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a al).(code).(bar))...--.Function:
279a0 20 2d 73 70 6c 69 63 65 2d 6c 69 73 74 20 28 70 72 65 64 20 6e 65 77 2d 6c 69 73 74 20 6c 69 73 .-splice-list.(pred.new-list.lis
279c0 74 29 0a 20 20 20 20 20 53 70 6c 69 63 65 20 4e 45 57 2d 4c 49 53 54 20 69 6e 20 70 6c 61 63 65 t)......Splice.NEW-LIST.in.place
279e0 20 6f 66 20 65 6c 65 6d 65 6e 74 73 20 6d 61 74 63 68 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 .of.elements.matching.PRED.in.LI
27a00 53 54 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 73 70 6c 69 63 65 e2 80 ST........See.also:....-splice..
27a20 99 20 28 2a 6e 6f 74 65 20 2d 73 70 6c 69 63 65 3a 3a 29 2c 20 e2 80 98 2d 69 6e 73 65 72 74 2d ..(*note.-splice::),....-insert-
27a40 61 74 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 69 6e 73 65 72 74 2d 61 74 3a 3a 29 0a at....(*note......-insert-at::).
27a60 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 70 6c 69 63 65 2d 6c 69 73 74 20 27 6b 65 79 77 6f 72 ...........(-splice-list.'keywor
27a80 64 70 20 27 28 61 20 62 20 63 29 20 27 28 31 20 3a 66 6f 6f 20 32 29 29 0a 20 20 20 20 20 20 20 dp.'(a.b.c).'(1.:foo.2))........
27aa0 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 61 20 62 20 63 20 32 29 0a 20 20 20 20 20 20 20 20 20 ...........(1.a.b.c.2)..........
27ac0 20 28 2d 73 70 6c 69 63 65 2d 6c 69 73 74 20 27 6b 65 79 77 6f 72 64 70 20 6e 69 6c 20 27 28 31 .(-splice-list.'keywordp.nil.'(1
27ae0 20 3a 66 6f 6f 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 .:foo.2))...................(1.2
27b00 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 73 70 6c 69 63 65 2d 6c 69 73 74 20 28 6b 65 79 77 )...........(--splice-list.(keyw
27b20 6f 72 64 70 20 69 74 29 20 27 28 61 20 62 20 63 29 20 27 28 31 20 3a 66 6f 6f 20 32 29 29 0a 20 ordp.it).'(a.b.c).'(1.:foo.2))..
27b40 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 61 20 62 20 63 20 32 29 0a 0a 20 2d .................(1.a.b.c.2)...-
27b60 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6d 61 70 63 61 74 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 -.Function:.-mapcat.(fn.list)...
27b80 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 6f 66 20 74 ...Return.the.concatenation.of.t
27ba0 68 65 20 72 65 73 75 6c 74 20 6f 66 20 6d 61 70 70 69 6e 67 20 46 4e 20 6f 76 65 72 20 4c 49 53 he.result.of.mapping.FN.over.LIS
27bc0 54 2e 0a 20 20 20 20 20 54 68 75 73 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 73 68 6f 75 6c 64 20 T.......Thus.function.FN.should.
27be0 72 65 74 75 72 6e 20 61 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 63 return.a.list.............(-mapc
27c00 61 74 20 27 6c 69 73 74 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 at.'list.'(1.2.3))..............
27c20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 63 61 74 20 .....(1.2.3)...........(-mapcat.
27c40 28 6c 61 6d 62 64 61 20 28 69 74 65 6d 29 20 28 6c 69 73 74 20 30 20 69 74 65 6d 29 29 20 27 28 (lambda.(item).(list.0.item)).'(
27c60 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 30 20 31 20 30 1.2.3))...................(0.1.0
27c80 20 32 20 30 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 61 70 63 61 74 20 28 6c 69 73 .2.0.3)...........(--mapcat.(lis
27ca0 74 20 30 20 69 74 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.0.it).'(1.2.3))...............
27cc0 e2 87 92 20 28 30 20 31 20 30 20 32 20 30 20 33 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a ....(0.1.0.2.0.3)...--.Function:
27ce0 20 2d 63 6f 70 79 20 28 6c 69 73 74 29 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 73 68 61 6c .-copy.(list)......Create.a.shal
27d00 6c 6f 77 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 low.copy.of.LIST.............(-c
27d20 6f 70 79 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 opy.'(1.2.3))...................
27d40 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 20 27 28 31 20 32 (1.2.3)...........(let.((a.'(1.2
27d60 20 33 29 29 29 20 28 65 71 20 61 20 28 2d 63 6f 70 79 20 61 29 29 29 0a 20 20 20 20 20 20 20 20 .3))).(eq.a.(-copy.a))).........
27d80 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f ..........nil....File:.dash.info
27da0 2c 20 20 4e 6f 64 65 3a 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2c 20 20 4e 65 78 ,..Node:.Sublist.selection,..Nex
27dc0 74 3a 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 2c 20 20 50 72 65 76 3a 20 4d 61 70 73 2c 20 20 55 t:.List.to.list,..Prev:.Maps,..U
27de0 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 32 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 p:.Functions..2.2.Sublist.select
27e00 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 6e 63 74 ion.=====================..Funct
27e20 69 6f 6e 73 20 72 65 74 75 72 6e 69 6e 67 20 61 20 73 75 62 6c 69 73 74 20 6f 66 20 74 68 65 20 ions.returning.a.sublist.of.the.
27e40 6f 72 69 67 69 6e 61 6c 20 6c 69 73 74 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 66 original.list....--.Function:.-f
27e60 69 6c 74 65 72 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 ilter.(pred.list)......Return.a.
27e80 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 20 66 6f new.list.of.the.items.in.LIST.fo
27ea0 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 6e 6f 6e 2d e2 80 r.which.PRED.returns......non-..
27ec0 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d 73 65 6c 65 63 74 .nil...........Alias:....-select
27ee0 e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 ...........This.function...s.ana
27f00 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 66 69 6c 74 65 phoric.counterpart.is....--filte
27f20 72 e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 73 69 6d 69 6c 61 72 20 6f 70 65 72 61 74 69 6f r...........For.similar.operatio
27f40 6e 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 6b 65 65 70 e2 80 99 20 28 2a 6e 6f 74 65 20 ns,.see.also....-keep....(*note.
27f60 2d 6b 65 65 70 3a 3a 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d 72 65 6d 6f 76 65 e2 80 99 20 -keep::).and.........-remove....
27f80 28 2a 6e 6f 74 65 20 2d 72 65 6d 6f 76 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d (*note.-remove::).............(-
27fa0 66 69 6c 74 65 72 20 28 6c 61 6d 62 64 61 20 28 6e 75 6d 29 20 28 3d 20 30 20 28 25 20 6e 75 6d filter.(lambda.(num).(=.0.(%.num
27fc0 20 32 29 29 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .2))).'(1.2.3.4))...............
27fe0 e2 87 92 20 28 32 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6c 74 65 72 20 23 27 6e ....(2.4)...........(-filter.#'n
28000 61 74 6e 75 6d 70 20 27 28 2d 32 20 2d 31 20 30 20 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 atnump.'(-2.-1.0.1.2))..........
28020 20 20 20 20 20 e2 87 92 20 28 30 20 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 .........(0.1.2)...........(--fi
28040 6c 74 65 72 20 28 3d 20 30 20 28 25 20 69 74 20 32 29 29 20 27 28 31 20 32 20 33 20 34 29 29 0a lter.(=.0.(%.it.2)).'(1.2.3.4)).
28060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 34 29 0a 0a 20 2d 2d 20 46 75 6e ..................(2.4)...--.Fun
28080 63 74 69 6f 6e 3a 20 2d 72 65 6d 6f 76 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 ction:.-remove.(pred.list)......
280a0 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 74 65 6d 73 20 69 Return.a.new.list.of.the.items.i
280c0 6e 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 0a 20 20 n.LIST.for.which.PRED.returns...
280e0 20 20 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d 72 ......nil...........Alias:....-r
28100 65 6a 65 63 74 e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 eject...........This.function...
28120 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d s.anaphoric.counterpart.is....--
28140 72 65 6d 6f 76 65 e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 73 69 6d 69 6c 61 72 20 6f 70 65 remove...........For.similar.ope
28160 72 61 74 69 6f 6e 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 6b 65 65 70 e2 80 99 20 28 2a rations,.see.also....-keep....(*
28180 6e 6f 74 65 20 2d 6b 65 65 70 3a 3a 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d 66 69 6c 74 65 note.-keep::).and.........-filte
281a0 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 66 69 6c 74 65 72 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 r....(*note.-filter::)..........
281c0 20 20 20 28 2d 72 65 6d 6f 76 65 20 28 6c 61 6d 62 64 61 20 28 6e 75 6d 29 20 28 3d 20 30 20 28 ...(-remove.(lambda.(num).(=.0.(
281e0 25 20 6e 75 6d 20 32 29 29 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 %.num.2))).'(1.2.3.4))..........
28200 20 20 20 20 20 e2 87 92 20 28 31 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 .........(1.3)...........(-remov
28220 65 20 23 27 6e 61 74 6e 75 6d 70 20 27 28 2d 32 20 2d 31 20 30 20 31 20 32 29 29 0a 20 20 20 20 e.#'natnump.'(-2.-1.0.1.2)).....
28240 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 2d 32 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 ..............(-2.-1)...........
28260 28 2d 2d 72 65 6d 6f 76 65 20 28 3d 20 30 20 28 25 20 69 74 20 32 29 29 20 27 28 31 20 32 20 33 (--remove.(=.0.(%.it.2)).'(1.2.3
28280 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 33 29 0a 0a 20 2d .4))...................(1.3)...-
282a0 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 20 28 70 72 65 64 20 -.Function:.-remove-first.(pred.
282c0 6c 69 73 74 29 0a 20 20 20 20 20 52 65 6d 6f 76 65 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d list)......Remove.the.first.item
282e0 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e .from.LIST.for.which.PRED.return
28300 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 20 20 20 20 20 54 68 69 73 20 69 73 20 61 20 s.non-...nil..........This.is.a.
28320 6e 6f 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 2c 20 62 75 74 20 6f non-destructive.operation,.but.o
28340 6e 6c 79 20 74 68 65 20 66 72 6f 6e 74 20 6f 66 20 4c 49 53 54 0a 20 20 20 20 20 6c 65 61 64 69 nly.the.front.of.LIST......leadi
28360 6e 67 20 75 70 20 74 6f 20 74 68 65 20 72 65 6d 6f 76 65 64 20 69 74 65 6d 20 69 73 20 61 20 63 ng.up.to.the.removed.item.is.a.c
28380 6f 70 79 3b 20 74 68 65 20 72 65 73 74 20 69 73 20 4c 49 53 54 e2 80 99 73 0a 20 20 20 20 20 6f opy;.the.rest.is.LIST...s......o
283a0 72 69 67 69 6e 61 6c 20 74 61 69 6c 2e 20 20 49 66 20 6e 6f 20 69 74 65 6d 20 69 73 20 72 65 6d riginal.tail...If.no.item.is.rem
283c0 6f 76 65 64 2c 20 74 68 65 6e 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 0a 20 20 20 20 20 oved,.then.the.result.is.a......
283e0 63 6f 6d 70 6c 65 74 65 20 63 6f 70 79 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d complete.copy........Alias:....-
28400 72 65 6a 65 63 74 2d 66 69 72 73 74 e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 reject-first...........This.func
28420 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 tion...s.anaphoric.counterpart.i
28440 73 20 e2 80 98 2d 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 e2 80 99 2e 0a 0a 20 20 20 20 20 53 65 s....--remove-first...........Se
28460 65 20 61 6c 73 6f 20 e2 80 98 2d 6d 61 70 2d 66 69 72 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d e.also....-map-first....(*note.-
28480 6d 61 70 2d 66 69 72 73 74 3a 3a 29 2c 20 e2 80 98 2d 72 65 6d 6f 76 65 2d 69 74 65 6d e2 80 99 map-first::),....-remove-item...
284a0 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 72 65 6d 6f 76 65 2d 69 74 65 6d 3a 3a 29 2c 20 61 6e .(*note......-remove-item::),.an
284c0 64 20 e2 80 98 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 6d d....-remove-last....(*note.-rem
284e0 6f 76 65 2d 6c 61 73 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 ove-last::).............(-remove
28500 2d 66 69 72 73 74 20 23 27 6e 61 74 6e 75 6d 70 20 27 28 2d 32 20 2d 31 20 30 20 31 20 32 29 29 -first.#'natnump.'(-2.-1.0.1.2))
28520 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 2d 32 20 2d 31 20 31 20 32 29 0a 20 ...................(-2.-1.1.2)..
28540 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 20 23 27 73 74 72 69 6e 67 .........(-remove-first.#'string
28560 70 20 27 28 31 20 32 20 22 66 69 72 73 74 22 20 22 73 65 63 6f 6e 64 22 29 29 0a 20 20 20 20 20 p.'(1.2."first"."second"))......
28580 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 22 73 65 63 6f 6e 64 22 29 0a 20 20 20 20 .............(1.2."second").....
285a0 20 20 20 20 20 20 28 2d 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 20 28 3e 20 69 74 20 33 29 20 27 ......(--remove-first.(>.it.3).'
285c0 28 31 20 32 20 33 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 (1.2.3.4.5.6))..................
285e0 20 28 31 20 32 20 33 20 35 20 36 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 6d .(1.2.3.5.6)...--.Function:.-rem
28600 6f 76 65 2d 6c 61 73 74 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 6d 6f 76 65 ove-last.(pred.list)......Remove
28620 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 .the.last.item.from.LIST.for.whi
28640 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 20 ch.PRED.returns.non-...nil......
28660 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 ....The.result.is.a.copy.of.LIST
28680 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 61 6e 20 65 6c 65 6d 65 6e .regardless.of.whether.an.elemen
286a0 74 20 69 73 0a 20 20 20 20 20 72 65 6d 6f 76 65 64 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 t.is......removed........Alias:.
286c0 e2 80 98 2d 72 65 6a 65 63 74 2d 6c 61 73 74 e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 ...-reject-last...........This.f
286e0 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 unction...s.anaphoric.counterpar
28700 74 20 69 73 20 e2 80 98 2d 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 e2 80 99 2e 0a 0a 20 20 20 20 20 t.is....--remove-last...........
28720 53 65 65 20 61 6c 73 6f 20 e2 80 98 2d 6d 61 70 2d 6c 61 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 See.also....-map-last....(*note.
28740 2d 6d 61 70 2d 6c 61 73 74 3a 3a 29 2c 20 e2 80 98 2d 72 65 6d 6f 76 65 2d 69 74 65 6d e2 80 99 -map-last::),....-remove-item...
28760 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 72 65 6d 6f 76 65 2d 69 74 65 6d 3a 3a 29 2c 20 61 6e .(*note......-remove-item::),.an
28780 64 20 e2 80 98 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 d....-remove-first....(*note.-re
287a0 6d 6f 76 65 2d 66 69 72 73 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f move-first::).............(-remo
287c0 76 65 2d 6c 61 73 74 20 23 27 6e 61 74 6e 75 6d 70 20 27 28 31 20 33 20 35 20 34 20 37 20 38 20 ve-last.#'natnump.'(1.3.5.4.7.8.
287e0 31 30 20 2d 31 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 33 20 10.-11))...................(1.3.
28800 35 20 34 20 37 20 38 20 2d 31 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 2d 5.4.7.8.-11)...........(-remove-
28820 6c 61 73 74 20 23 27 73 74 72 69 6e 67 70 20 27 28 31 20 32 20 22 6c 61 73 74 22 20 22 73 65 63 last.#'stringp.'(1.2."last"."sec
28840 6f 6e 64 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 22 6c ond"))...................(1.2."l
28860 61 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 20 28 ast")...........(--remove-last.(
28880 3e 20 69 74 20 33 29 20 27 28 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20 39 20 31 30 29 29 >.it.3).'(1.2.3.4.5.6.7.8.9.10))
288a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 35 20 36 20 ...................(1.2.3.4.5.6.
288c0 37 20 38 20 39 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 6d 6f 76 65 2d 69 74 7.8.9)...--.Function:.-remove-it
288e0 65 6d 20 28 69 74 65 6d 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 63 6f 70 em.(item.list)......Return.a.cop
28900 79 20 6f 66 20 4c 49 53 54 20 77 69 74 68 20 61 6c 6c 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f y.of.LIST.with.all.occurrences.o
28920 66 20 49 54 45 4d 20 72 65 6d 6f 76 65 64 2e 20 20 54 68 65 0a 20 20 20 20 20 63 6f 6d 70 61 72 f.ITEM.removed...The......compar
28940 69 73 6f 6e 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 e2 80 98 65 71 75 61 6c e2 80 99 2e 0a 0a ison.is.done.with....equal......
28960 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 2d 69 74 65 6d 20 33 20 27 28 31 20 32 20 ..........(-remove-item.3.'(1.2.
28980 33 20 32 20 33 20 34 20 35 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 3.2.3.4.5.3))...................
289a0 28 31 20 32 20 32 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 2d 69 (1.2.2.4.5)...........(-remove-i
289c0 74 65 6d 20 27 66 6f 6f 20 27 28 66 6f 6f 20 62 61 72 20 62 61 7a 20 66 6f 6f 29 29 0a 20 20 20 tem.'foo.'(foo.bar.baz.foo))....
289e0 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 62 61 72 20 62 61 7a 29 0a 20 20 20 20 20 20 20 ...............(bar.baz)........
28a00 20 20 20 28 2d 72 65 6d 6f 76 65 2d 69 74 65 6d 20 22 62 6f 62 22 20 27 28 22 61 6c 69 63 65 22 ...(-remove-item."bob".'("alice"
28a20 20 22 62 6f 62 22 20 22 65 76 65 22 20 22 62 6f 62 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ."bob"."eve"."bob"))............
28a40 20 20 20 e2 87 92 20 28 22 61 6c 69 63 65 22 20 22 65 76 65 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 .......("alice"."eve")...--.Func
28a60 74 69 6f 6e 3a 20 2d 6e 6f 6e 2d 6e 69 6c 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 tion:.-non-nil.(list)......Retur
28a80 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 69 74 68 20 61 6c 6c 20 e2 80 98 6e 69 6c n.a.copy.of.LIST.with.all....nil
28aa0 e2 80 99 20 69 74 65 6d 73 20 72 65 6d 6f 76 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d ....items.removed.............(-
28ac0 6e 6f 6e 2d 6e 69 6c 20 27 28 6e 69 6c 20 31 20 6e 69 6c 20 32 20 6e 69 6c 20 6e 69 6c 20 33 20 non-nil.'(nil.1.nil.2.nil.nil.3.
28ae0 34 20 6e 69 6c 20 35 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 4.nil.5.nil))...................
28b00 28 31 20 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6e 6f 6e 2d 6e 69 6c 20 (1.2.3.4.5)...........(-non-nil.
28b20 27 28 28 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 6e 69 '((nil)))...................((ni
28b40 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6e 6f 6e 2d 6e 69 6c 20 28 29 29 0a 20 20 20 20 l))...........(-non-nil.()).....
28b60 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 ..............()...--.Function:.
28b80 2d 73 6c 69 63 65 20 28 6c 69 73 74 20 66 72 6f 6d 20 26 6f 70 74 69 6f 6e 61 6c 20 74 6f 20 73 -slice.(list.from.&optional.to.s
28ba0 74 65 70 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 2c 20 73 tep)......Return.copy.of.LIST,.s
28bc0 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 69 6e 64 65 78 20 46 52 4f 4d 20 74 6f 20 69 6e 64 65 78 tarting.from.index.FROM.to.index
28be0 20 54 4f 2e 0a 0a 20 20 20 20 20 46 52 4f 4d 20 6f 72 20 54 4f 20 6d 61 79 20 62 65 20 6e 65 67 .TO........FROM.or.TO.may.be.neg
28c00 61 74 69 76 65 2e 20 20 54 68 65 73 65 20 76 61 6c 75 65 73 20 61 72 65 20 74 68 65 6e 20 69 6e ative...These.values.are.then.in
28c20 74 65 72 70 72 65 74 65 64 0a 20 20 20 20 20 6d 6f 64 75 6c 6f 20 74 68 65 20 6c 65 6e 67 74 68 terpreted......modulo.the.length
28c40 20 6f 66 20 74 68 65 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 49 66 20 53 54 45 50 20 69 73 20 61 .of.the.list........If.STEP.is.a
28c60 20 6e 75 6d 62 65 72 2c 20 6f 6e 6c 79 20 65 61 63 68 20 53 54 45 50 74 68 20 69 74 65 6d 20 69 .number,.only.each.STEPth.item.i
28c80 6e 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 69 73 20 n.the.resulting.section......is.
28ca0 72 65 74 75 72 6e 65 64 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 31 2e 0a 0a 20 20 20 20 20 returned...Defaults.to.1........
28cc0 20 20 20 20 20 28 2d 73 6c 69 63 65 20 27 28 31 20 32 20 33 20 34 20 35 29 20 31 29 0a 20 20 20 .....(-slice.'(1.2.3.4.5).1)....
28ce0 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 ...............(2.3.4.5)........
28d00 20 20 20 28 2d 73 6c 69 63 65 20 27 28 31 20 32 20 33 20 34 20 35 29 20 30 20 33 29 0a 20 20 20 ...(-slice.'(1.2.3.4.5).0.3)....
28d20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 ...............(1.2.3)..........
28d40 20 28 2d 73 6c 69 63 65 20 27 28 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20 39 29 20 31 20 .(-slice.'(1.2.3.4.5.6.7.8.9).1.
28d60 2d 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 34 20 36 20 38 -1.2)...................(2.4.6.8
28d80 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 61 6b 65 20 28 6e 20 6c 69 73 74 29 0a )...--.Function:.-take.(n.list).
28da0 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 .....Return.a.copy.of.the.first.
28dc0 4e 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 2e 20 20 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 N.items.in.LIST...Return.a.copy.
28de0 6f 66 20 4c 49 53 54 0a 20 20 20 20 20 69 66 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 4e 20 69 74 of.LIST......if.it.contains.N.it
28e00 65 6d 73 20 6f 72 20 66 65 77 65 72 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 20 ems.or.fewer...Return....nil....
28e20 69 66 20 4e 20 69 73 20 7a 65 72 6f 20 6f 72 0a 20 20 20 20 20 6c 65 73 73 2e 0a 0a 20 20 20 20 if.N.is.zero.or......less.......
28e40 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 74 61 6b 65 2d 6c 61 73 74 e2 80 99 20 28 2a 6e 6f .See.also:....-take-last....(*no
28e60 74 65 20 2d 74 61 6b 65 2d 6c 61 73 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 te.-take-last::).............(-t
28e80 61 6b 65 20 33 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ake.3.'(1.2.3.4.5)).............
28ea0 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 6b 65 20 31 ......(1.2.3)...........(-take.1
28ec0 37 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 7.'(1.2.3.4.5)).................
28ee0 92 20 28 31 20 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 6b 65 20 30 ..(1.2.3.4.5)...........(-take.0
28f00 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 .'(1.2.3.4.5))..................
28f20 20 28 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 61 6b 65 2d 6c 61 73 74 20 28 6e .()...--.Function:.-take-last.(n
28f40 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 .list)......Return.a.copy.of.the
28f60 20 6c 61 73 74 20 4e 20 69 74 65 6d 73 20 6f 66 20 4c 49 53 54 20 69 6e 20 6f 72 64 65 72 2e 20 .last.N.items.of.LIST.in.order..
28f80 20 52 65 74 75 72 6e 20 61 20 63 6f 70 79 0a 20 20 20 20 20 6f 66 20 4c 49 53 54 20 69 66 20 69 .Return.a.copy......of.LIST.if.i
28fa0 74 20 63 6f 6e 74 61 69 6e 73 20 4e 20 69 74 65 6d 73 20 6f 72 20 66 65 77 65 72 2e 20 20 52 65 t.contains.N.items.or.fewer...Re
28fc0 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 20 4e 20 69 73 20 7a 65 72 6f 0a 20 20 20 20 turn....nil....if.N.is.zero.....
28fe0 20 6f 72 20 6c 65 73 73 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 74 61 .or.less........See.also:....-ta
29000 6b 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 74 61 6b 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 ke....(*note.-take::)...........
29020 20 20 28 2d 74 61 6b 65 2d 6c 61 73 74 20 33 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 ..(-take-last.3.'(1.2.3.4.5))...
29040 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 ................(3.4.5).........
29060 20 20 28 2d 74 61 6b 65 2d 6c 61 73 74 20 31 37 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 ..(-take-last.17.'(1.2.3.4.5))..
29080 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 35 29 0a 20 20 20 .................(1.2.3.4.5)....
290a0 20 20 20 20 20 20 20 28 2d 74 61 6b 65 2d 6c 61 73 74 20 31 20 27 28 31 20 32 20 33 20 34 20 35 .......(-take-last.1.'(1.2.3.4.5
290c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 35 29 0a 0a 20 2d 2d 20 46 75 ))...................(5)...--.Fu
290e0 6e 63 74 69 6f 6e 3a 20 2d 64 72 6f 70 20 28 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 nction:.-drop.(n.list)......Retu
29100 72 6e 20 74 68 65 20 74 61 69 6c 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 20 6f 66 20 4c 49 53 54 rn.the.tail.(not.a.copy).of.LIST
29120 20 77 69 74 68 6f 75 74 20 74 68 65 20 66 69 72 73 74 20 4e 20 69 74 65 6d 73 2e 0a 20 20 20 20 .without.the.first.N.items......
29140 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 20 4c 49 53 54 20 63 6f 6e 74 61 69 .Return....nil....if.LIST.contai
29160 6e 73 20 4e 20 69 74 65 6d 73 20 6f 72 20 66 65 77 65 72 2e 20 20 52 65 74 75 72 6e 20 4c 49 53 ns.N.items.or.fewer...Return.LIS
29180 54 20 69 66 20 4e 0a 20 20 20 20 20 69 73 20 7a 65 72 6f 20 6f 72 20 6c 65 73 73 2e 0a 0a 20 20 T.if.N......is.zero.or.less.....
291a0 20 20 20 46 6f 72 20 61 6e 6f 74 68 65 72 20 76 61 72 69 61 6e 74 2c 20 73 65 65 20 61 6c 73 6f ...For.another.variant,.see.also
291c0 20 e2 80 98 2d 64 72 6f 70 2d 6c 61 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 64 72 6f 70 2d 6c ....-drop-last....(*note.-drop-l
291e0 61 73 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 72 6f 70 20 33 20 27 28 31 20 ast::).............(-drop.3.'(1.
29200 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 20 35 2.3.4.5))...................(4.5
29220 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 72 6f 70 20 31 37 20 27 28 31 20 32 20 33 20 34 20 )...........(-drop.17.'(1.2.3.4.
29240 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 5))...................()........
29260 20 20 20 28 2d 64 72 6f 70 20 30 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 ...(-drop.0.'(1.2.3.4.5)).......
29280 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 35 29 0a 0a 20 2d 2d 20 46 75 6e ............(1.2.3.4.5)...--.Fun
292a0 63 74 69 6f 6e 3a 20 2d 64 72 6f 70 2d 6c 61 73 74 20 28 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 ction:.-drop-last.(n.list)......
292c0 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 20 77 69 74 68 6f 75 74 20 69 74 Return.a.copy.of.LIST.without.it
292e0 73 20 6c 61 73 74 20 4e 20 69 74 65 6d 73 2e 20 20 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f s.last.N.items...Return.a.copy.o
29300 66 0a 20 20 20 20 20 4c 49 53 54 20 69 66 20 4e 20 69 73 20 7a 65 72 6f 20 6f 72 20 6c 65 73 73 f......LIST.if.N.is.zero.or.less
29320 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 20 4c 49 53 54 20 63 6f 6e 74 ...Return....nil....if.LIST.cont
29340 61 69 6e 73 20 4e 20 69 74 65 6d 73 0a 20 20 20 20 20 6f 72 20 66 65 77 65 72 2e 0a 0a 20 20 20 ains.N.items......or.fewer......
29360 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 64 72 6f 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d ..See.also:....-drop....(*note.-
29380 64 72 6f 70 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 72 6f 70 2d 6c 61 73 74 20 drop::).............(-drop-last.
293a0 33 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 3.'(1.2.3.4.5)).................
293c0 92 20 28 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 72 6f 70 2d 6c 61 73 74 20 31 37 ..(1.2)...........(-drop-last.17
293e0 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 .'(1.2.3.4.5))..................
29400 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 72 6f 70 2d 6c 61 73 74 20 30 20 27 28 31 20 .()...........(-drop-last.0.'(1.
29420 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 2.3.4.5))...................(1.2
29440 20 33 20 34 20 35 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 61 6b 65 2d 77 68 69 .3.4.5)...--.Function:.-take-whi
29460 6c 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 54 61 6b 65 20 73 75 63 63 65 73 73 le.(pred.list)......Take.success
29480 69 76 65 20 69 74 65 6d 73 20 66 72 6f 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 ive.items.from.LIST.for.which.PR
294a0 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 20 20 20 20 20 50 ED.returns.non-...nil..........P
294c0 52 45 44 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 6f 6e 65 20 61 72 67 75 6d 65 6e RED.is.a.function.of.one.argumen
294e0 74 2e 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 0a 20 20 20 t...Return.a.new.list.of.the....
29500 20 20 73 75 63 63 65 73 73 69 76 65 20 65 6c 65 6d 65 6e 74 73 20 66 72 6f 6d 20 74 68 65 20 73 ..successive.elements.from.the.s
29520 74 61 72 74 20 6f 66 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 tart.of.LIST.for.which.PRED.retu
29540 72 6e 73 0a 20 20 20 20 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 rns......non-...nil...........Th
29560 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 is.function...s.anaphoric.counte
29580 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 74 61 6b 65 2d 77 68 69 6c 65 e2 80 99 2e 0a 0a 20 20 rpart.is....--take-while........
295a0 20 20 20 46 6f 72 20 61 6e 6f 74 68 65 72 20 76 61 72 69 61 6e 74 2c 20 73 65 65 20 61 6c 73 6f ...For.another.variant,.see.also
295c0 20 e2 80 98 2d 64 72 6f 70 2d 77 68 69 6c 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 64 72 6f 70 2d ....-drop-while....(*note.-drop-
295e0 77 68 69 6c 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 6b 65 2d 77 68 69 6c while::).............(-take-whil
29600 65 20 23 27 65 76 65 6e 3f 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 e.#'even?.'(1.2.3.4))...........
29620 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 6b 65 2d 77 68 69 6c ........()...........(-take-whil
29640 65 20 23 27 65 76 65 6e 3f 20 27 28 32 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 e.#'even?.'(2.4.5.6))...........
29660 20 20 20 20 e2 87 92 20 28 32 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 74 61 6b 65 2d ........(2.4)...........(--take-
29680 77 68 69 6c 65 20 28 3c 20 69 74 20 34 29 20 27 28 31 20 32 20 33 20 34 20 33 20 32 20 31 29 29 while.(<.it.4).'(1.2.3.4.3.2.1))
296a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 0a 20 2d 2d 20 ...................(1.2.3)...--.
296c0 46 75 6e 63 74 69 6f 6e 3a 20 2d 64 72 6f 70 2d 77 68 69 6c 65 20 28 70 72 65 64 20 6c 69 73 74 Function:.-drop-while.(pred.list
296e0 29 0a 20 20 20 20 20 44 72 6f 70 20 73 75 63 63 65 73 73 69 76 65 20 69 74 65 6d 73 20 66 72 6f )......Drop.successive.items.fro
29700 6d 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 6f m.LIST.for.which.PRED.returns.no
29720 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 20 20 20 20 20 50 52 45 44 20 69 73 20 61 20 66 75 6e 63 n-...nil..........PRED.is.a.func
29740 74 69 6f 6e 20 6f 66 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2e 20 20 52 65 74 75 72 6e 20 74 68 tion.of.one.argument...Return.th
29760 65 20 74 61 69 6c 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 0a 20 20 20 20 20 6f 66 20 4c 49 53 54 e.tail.(not.a.copy)......of.LIST
29780 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 69 74 73 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 .starting.from.its.first.element
297a0 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 e2 80 98 .for.which.PRED.returns.........
297c0 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 nil...........This.function...s.
297e0 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 64 72 anaphoric.counterpart.is....--dr
29800 6f 70 2d 77 68 69 6c 65 e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 61 6e 6f 74 68 65 72 20 76 op-while...........For.another.v
29820 61 72 69 61 6e 74 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 74 61 6b 65 2d 77 68 69 6c 65 e2 ariant,.see.also....-take-while.
29840 80 99 20 28 2a 6e 6f 74 65 20 2d 74 61 6b 65 2d 77 68 69 6c 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 ...(*note.-take-while::)........
29860 20 20 20 20 20 28 2d 64 72 6f 70 2d 77 68 69 6c 65 20 23 27 65 76 65 6e 3f 20 27 28 31 20 32 20 .....(-drop-while.#'even?.'(1.2.
29880 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 3.4))...................(1.2.3.4
298a0 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 72 6f 70 2d 77 68 69 6c 65 20 23 27 65 76 65 6e 3f )...........(-drop-while.#'even?
298c0 20 27 28 32 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 .'(2.4.5.6))...................(
298e0 35 20 36 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 64 72 6f 70 2d 77 68 69 6c 65 20 28 3c 20 5.6)...........(--drop-while.(<.
29900 69 74 20 34 29 20 27 28 31 20 32 20 33 20 34 20 33 20 32 20 31 29 29 0a 20 20 20 20 20 20 20 20 it.4).'(1.2.3.4.3.2.1)).........
29920 20 20 20 20 20 20 e2 87 92 20 28 34 20 33 20 32 20 31 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f ..........(4.3.2.1)...--.Functio
29940 6e 3a 20 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 20 28 69 6e 64 69 63 65 73 20 6c n:.-select-by-indices.(indices.l
29960 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 68 6f 73 65 20 65 6c ist)......Return.a.list.whose.el
29980 65 6d 65 6e 74 73 20 61 72 65 20 65 6c 65 6d 65 6e 74 73 20 66 72 6f 6d 20 4c 49 53 54 20 73 65 ements.are.elements.from.LIST.se
299a0 6c 65 63 74 65 64 20 61 73 0a 20 20 20 20 20 e2 80 98 28 6e 74 68 20 69 20 6c 69 73 74 29 e2 80 lected.as.........(nth.i.list)..
299c0 98 20 66 6f 72 20 61 6c 6c 20 69 20 66 72 6f 6d 20 49 4e 44 49 43 45 53 2e 0a 0a 20 20 20 20 20 ..for.all.i.from.INDICES........
299e0 20 20 20 20 20 28 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 20 27 28 34 20 31 30 20 .....(-select-by-indices.'(4.10.
29a00 32 20 33 20 36 29 20 27 28 22 76 22 20 22 65 22 20 22 6c 22 20 22 6f 22 20 22 63 22 20 22 69 22 2.3.6).'("v"."e"."l"."o"."c"."i"
29a20 20 22 72 22 20 22 61 22 20 22 70 22 20 22 74 22 20 22 6f 22 20 22 72 22 29 29 0a 20 20 20 20 20 ."r"."a"."p"."t"."o"."r"))......
29a40 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 63 22 20 22 6f 22 20 22 6c 22 20 22 6f 22 20 22 72 .............("c"."o"."l"."o"."r
29a60 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 ")...........(-select-by-indices
29a80 20 27 28 32 20 31 20 30 29 20 27 28 22 61 22 20 22 62 22 20 22 63 22 29 29 0a 20 20 20 20 20 20 .'(2.1.0).'("a"."b"."c")).......
29aa0 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 63 22 20 22 62 22 20 22 61 22 29 0a 20 20 20 20 20 20 ............("c"."b"."a").......
29ac0 20 20 20 20 28 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 20 27 28 30 20 31 20 32 20 ....(-select-by-indices.'(0.1.2.
29ae0 30 20 31 20 33 20 33 20 31 29 20 27 28 22 66 22 20 22 61 22 20 22 72 22 20 22 6c 22 29 29 0a 20 0.1.3.3.1).'("f"."a"."r"."l"))..
29b00 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 66 22 20 22 61 22 20 22 72 22 20 22 66 .................("f"."a"."r"."f
29b20 22 20 22 61 22 20 22 6c 22 20 22 6c 22 20 22 61 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e "."a"."l"."l"."a")...--.Function
29b40 3a 20 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 73 20 28 63 6f 6c 75 6d 6e 73 20 74 61 62 6c 65 :.-select-columns.(columns.table
29b60 29 0a 20 20 20 20 20 53 65 6c 65 63 74 20 43 4f 4c 55 4d 4e 53 20 66 72 6f 6d 20 54 41 42 4c 45 )......Select.COLUMNS.from.TABLE
29b80 2e 0a 0a 20 20 20 20 20 54 41 42 4c 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 ........TABLE.is.a.list.of.lists
29ba0 20 77 68 65 72 65 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 72 65 70 72 65 73 65 6e 74 73 20 6f .where.each.element.represents.o
29bc0 6e 65 20 72 6f 77 2e 20 20 49 74 0a 20 20 20 20 20 69 73 20 61 73 73 75 6d 65 64 20 65 61 63 68 ne.row...It......is.assumed.each
29be0 20 72 6f 77 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 6c 65 6e 67 74 68 2e 0a 0a 20 20 20 20 20 .row.has.the.same.length........
29c00 45 61 63 68 20 72 6f 77 20 69 73 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 73 75 63 68 20 74 68 61 Each.row.is.transformed.such.tha
29c20 74 20 6f 6e 6c 79 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 43 4f 4c 55 4d 4e 53 20 61 72 65 t.only.the.specified.COLUMNS.are
29c40 0a 20 20 20 20 20 73 65 6c 65 63 74 65 64 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 ......selected........See.also:.
29c60 e2 80 98 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e e2 80 99 20 28 2a 6e 6f 74 65 20 2d 73 65 6c ...-select-column....(*note.-sel
29c80 65 63 74 2d 63 6f 6c 75 6d 6e 3a 3a 29 2c 0a 20 20 20 20 20 e2 80 98 2d 73 65 6c 65 63 74 2d 62 ect-column::),.........-select-b
29ca0 79 2d 69 6e 64 69 63 65 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 73 65 6c 65 63 74 2d 62 79 2d 69 y-indices....(*note.-select-by-i
29cc0 6e 64 69 63 65 73 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 65 6c 65 63 74 2d 63 6f ndices::)............(-select-co
29ce0 6c 75 6d 6e 73 20 27 28 30 20 32 29 20 27 28 28 31 20 32 20 33 29 20 28 61 20 62 20 63 29 20 28 lumns.'(0.2).'((1.2.3).(a.b.c).(
29d00 3a 61 20 3a 62 20 3a 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 :a.:b.:c)))...................((
29d20 31 20 33 29 20 28 61 20 63 29 20 28 3a 61 20 3a 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 1.3).(a.c).(:a.:c))...........(-
29d40 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 73 20 27 28 31 29 20 27 28 28 31 20 32 20 33 29 20 28 61 select-columns.'(1).'((1.2.3).(a
29d60 20 62 20 63 29 20 28 3a 61 20 3a 62 20 3a 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .b.c).(:a.:b.:c)))..............
29d80 20 e2 87 92 20 28 28 32 29 20 28 62 29 20 28 3a 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d .....((2).(b).(:b))...........(-
29da0 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 73 20 6e 69 6c 20 27 28 28 31 20 32 20 33 29 20 28 61 20 select-columns.nil.'((1.2.3).(a.
29dc0 62 20 63 29 20 28 3a 61 20 3a 62 20 3a 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 b.c).(:a.:b.:c)))...............
29de0 e2 87 92 20 28 6e 69 6c 20 6e 69 6c 20 6e 69 6c 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a ....(nil.nil.nil)...--.Function:
29e00 20 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 20 28 63 6f 6c 75 6d 6e 20 74 61 62 6c 65 29 0a 20 .-select-column.(column.table)..
29e20 20 20 20 20 53 65 6c 65 63 74 20 43 4f 4c 55 4d 4e 20 66 72 6f 6d 20 54 41 42 4c 45 2e 0a 0a 20 ....Select.COLUMN.from.TABLE....
29e40 20 20 20 20 54 41 42 4c 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 77 68 65 ....TABLE.is.a.list.of.lists.whe
29e60 72 65 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 72 65 70 72 65 73 65 6e 74 73 20 6f 6e 65 20 72 re.each.element.represents.one.r
29e80 6f 77 2e 20 20 49 74 0a 20 20 20 20 20 69 73 20 61 73 73 75 6d 65 64 20 65 61 63 68 20 72 6f 77 ow...It......is.assumed.each.row
29ea0 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 6c 65 6e 67 74 68 2e 0a 0a 20 20 20 20 20 54 68 65 20 .has.the.same.length........The.
29ec0 73 69 6e 67 6c 65 20 73 65 6c 65 63 74 65 64 20 63 6f 6c 75 6d 6e 20 69 73 20 72 65 74 75 72 6e single.selected.column.is.return
29ee0 65 64 20 61 73 20 61 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 ed.as.a.list........See.also:...
29f00 98 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 73 65 6c 65 .-select-columns....(*note.-sele
29f20 63 74 2d 63 6f 6c 75 6d 6e 73 3a 3a 29 2c 0a 20 20 20 20 20 e2 80 98 2d 73 65 6c 65 63 74 2d 62 ct-columns::),.........-select-b
29f40 79 2d 69 6e 64 69 63 65 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 73 65 6c 65 63 74 2d 62 79 2d 69 y-indices....(*note.-select-by-i
29f60 6e 64 69 63 65 73 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 65 6c 65 63 74 2d 63 6f ndices::)............(-select-co
29f80 6c 75 6d 6e 20 31 20 27 28 28 31 20 32 20 33 29 20 28 61 20 62 20 63 29 20 28 3a 61 20 3a 62 20 lumn.1.'((1.2.3).(a.b.c).(:a.:b.
29fa0 3a 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 62 20 3a 62 29 :c)))...................(2.b.:b)
29fc0 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c 69 73 74 ....File:.dash.info,..Node:.List
29fe0 20 74 6f 20 6c 69 73 74 2c 20 20 4e 65 78 74 3a 20 52 65 64 75 63 74 69 6f 6e 73 2c 20 20 50 72 .to.list,..Next:.Reductions,..Pr
2a000 65 76 3a 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2c 20 20 55 70 3a 20 46 75 6e 63 ev:.Sublist.selection,..Up:.Func
2a020 74 69 6f 6e 73 0a 0a 32 2e 33 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 0a 3d 3d 3d 3d 3d 3d 3d 3d tions..2.3.List.to.list.========
2a040 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 6e 63 74 69 6f 6e 73 20 72 65 74 75 72 6e 69 6e 67 20 61 20 ========..Functions.returning.a.
2a060 6d 6f 64 69 66 69 65 64 20 63 6f 70 79 20 6f 66 20 74 68 65 20 69 6e 70 75 74 20 6c 69 73 74 2e modified.copy.of.the.input.list.
2a080 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6b 65 65 70 20 28 66 6e 20 6c 69 73 74 29 0a ...--.Function:.-keep.(fn.list).
2a0a0 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 20 6e 6f .....Return.a.new.list.of.the.no
2a0c0 6e 2d e2 80 98 6e 69 6c e2 80 99 20 72 65 73 75 6c 74 73 20 6f 66 20 61 70 70 6c 79 69 6e 67 20 n-...nil....results.of.applying.
2a0e0 46 4e 20 74 6f 20 65 61 63 68 0a 20 20 20 20 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2e 20 20 4c FN.to.each......item.in.LIST...L
2a100 69 6b 65 20 e2 80 98 2d 66 69 6c 74 65 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 66 69 6c 74 65 72 ike....-filter....(*note.-filter
2a120 3a 3a 29 2c 20 62 75 74 20 72 65 74 75 72 6e 73 20 74 68 65 0a 20 20 20 20 20 6e 6f 6e 2d e2 80 ::),.but.returns.the......non-..
2a140 98 6e 69 6c e2 80 99 20 72 65 73 75 6c 74 73 20 6f 66 20 46 4e 20 69 6e 73 74 65 61 64 20 6f 66 .nil....results.of.FN.instead.of
2a160 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 6f 66 0a 20 .the.corresponding.elements.of..
2a180 20 20 20 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 49 74 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f ....LIST........Its.anaphoric.co
2a1a0 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 6b 65 65 70 e2 80 99 2e 0a 0a 20 20 20 20 unterpart.is....--keep..........
2a1c0 20 20 20 20 20 20 28 2d 6b 65 65 70 20 23 27 63 64 72 20 27 28 28 31 20 32 20 33 29 20 28 34 20 ......(-keep.#'cdr.'((1.2.3).(4.
2a1e0 35 29 20 28 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 32 20 33 5).(6)))...................((2.3
2a200 29 20 28 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6b 65 65 70 20 28 6c 61 6d 62 64 61 20 ).(5))...........(-keep.(lambda.
2a220 28 6e 29 20 28 61 6e 64 20 28 3e 20 6e 20 33 29 20 28 2a 20 31 30 20 6e 29 29 29 20 27 28 31 20 (n).(and.(>.n.3).(*.10.n))).'(1.
2a240 32 20 33 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 2.3.4.5.6))...................(4
2a260 30 20 35 30 20 36 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6b 65 65 70 20 28 61 6e 64 20 0.50.60)...........(--keep.(and.
2a280 28 3e 20 69 74 20 33 29 20 28 2a 20 31 30 20 69 74 29 29 20 27 28 31 20 32 20 33 20 34 20 35 20 (>.it.3).(*.10.it)).'(1.2.3.4.5.
2a2a0 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 30 20 35 30 20 36 30 29 6))...................(40.50.60)
2a2c0 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 63 6f 6e 63 61 74 20 28 26 72 65 73 74 20 73 ...--.Function:.-concat.(&rest.s
2a2e0 65 71 75 65 6e 63 65 73 29 0a 20 20 20 20 20 43 6f 6e 63 61 74 65 6e 61 74 65 20 61 6c 6c 20 74 equences)......Concatenate.all.t
2a300 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 6d 61 6b 65 20 74 68 65 20 72 65 73 75 6c 74 he.arguments.and.make.the.result
2a320 20 61 20 6c 69 73 74 2e 20 20 54 68 65 0a 20 20 20 20 20 72 65 73 75 6c 74 20 69 73 20 61 20 6c .a.list...The......result.is.a.l
2a340 69 73 74 20 77 68 6f 73 65 20 65 6c 65 6d 65 6e 74 73 20 61 72 65 20 74 68 65 20 65 6c 65 6d 65 ist.whose.elements.are.the.eleme
2a360 6e 74 73 20 6f 66 20 61 6c 6c 20 74 68 65 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2e 20 20 nts.of.all.the......arguments...
2a380 45 61 63 68 20 61 72 67 75 6d 65 6e 74 20 6d 61 79 20 62 65 20 61 20 6c 69 73 74 2c 20 76 65 63 Each.argument.may.be.a.list,.vec
2a3a0 74 6f 72 20 6f 72 20 73 74 72 69 6e 67 2e 0a 0a 20 20 20 20 20 41 6c 6c 20 61 72 67 75 6d 65 6e tor.or.string........All.argumen
2a3c0 74 73 20 65 78 63 65 70 74 20 74 68 65 20 6c 61 73 74 20 61 72 67 75 6d 65 6e 74 20 61 72 65 20 ts.except.the.last.argument.are.
2a3e0 63 6f 70 69 65 64 2e 20 20 54 68 65 20 6c 61 73 74 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 20 copied...The.last......argument.
2a400 69 73 20 6a 75 73 74 20 75 73 65 64 20 61 73 20 74 68 65 20 74 61 69 6c 20 6f 66 20 74 68 65 20 is.just.used.as.the.tail.of.the.
2a420 6e 65 77 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 63 61 74 20 27 28 new.list.............(-concat.'(
2a440 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 29 0a 20 20 20 20 20 20 1))...................(1).......
2a460 20 20 20 20 28 2d 63 6f 6e 63 61 74 20 27 28 31 29 20 27 28 32 29 29 0a 20 20 20 20 20 20 20 20 ....(-concat.'(1).'(2)).........
2a480 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 63 ..........(1.2)...........(-conc
2a4a0 61 74 20 27 28 31 29 20 27 28 32 20 33 29 20 27 28 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 at.'(1).'(2.3).'(4))............
2a4c0 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 .......(1.2.3.4)...--.Function:.
2a4e0 2d 66 6c 61 74 74 65 6e 20 28 6c 29 0a 20 20 20 20 20 54 61 6b 65 20 61 20 6e 65 73 74 65 64 20 -flatten.(l)......Take.a.nested.
2a500 6c 69 73 74 20 4c 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 20 61 list.L.and.return.its.contents.a
2a520 73 20 61 20 73 69 6e 67 6c 65 2c 20 66 6c 61 74 0a 20 20 20 20 20 6c 69 73 74 2e 0a 0a 20 20 20 s.a.single,.flat......list......
2a540 20 20 4e 6f 74 65 20 74 68 61 74 20 62 65 63 61 75 73 65 20 e2 80 98 6e 69 6c e2 80 99 20 72 65 ..Note.that.because....nil....re
2a560 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 20 6f 66 20 7a 65 72 6f 20 65 6c 65 6d 65 6e 74 73 presents.a.list.of.zero.elements
2a580 20 28 61 6e 0a 20 20 20 20 20 65 6d 70 74 79 20 6c 69 73 74 29 2c 20 61 6e 79 20 6d 65 6e 74 69 .(an......empty.list),.any.menti
2a5a0 6f 6e 20 6f 66 20 e2 80 98 6e 69 6c e2 80 99 20 69 6e 20 4c 20 77 69 6c 6c 20 64 69 73 61 70 70 on.of....nil....in.L.will.disapp
2a5c0 65 61 72 20 61 66 74 65 72 0a 20 20 20 20 20 66 6c 61 74 74 65 6e 69 6e 67 2e 20 20 49 66 20 79 ear.after......flattening...If.y
2a5e0 6f 75 20 6e 65 65 64 20 74 6f 20 70 72 65 73 65 72 76 65 20 6e 69 6c 73 2c 20 63 6f 6e 73 69 64 ou.need.to.preserve.nils,.consid
2a600 65 72 20 e2 80 98 2d 66 6c 61 74 74 65 6e 2d 6e e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 er....-flatten-n.........(*note.
2a620 2d 66 6c 61 74 74 65 6e 2d 6e 3a 3a 29 20 6f 72 20 6d 61 70 20 74 68 65 6d 20 74 6f 20 73 6f 6d -flatten-n::).or.map.them.to.som
2a640 65 20 75 6e 69 71 75 65 20 73 79 6d 62 6f 6c 20 61 6e 64 20 74 68 65 6e 20 6d 61 70 0a 20 20 20 e.unique.symbol.and.then.map....
2a660 20 20 74 68 65 6d 20 62 61 63 6b 2e 0a 0a 20 20 20 20 20 43 6f 6e 73 65 73 20 6f 66 20 74 77 6f ..them.back........Conses.of.two
2a680 20 61 74 6f 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 22 74 65 72 6d 69 6e 61 6c 73 .atoms.are.considered."terminals
2a6a0 22 2c 20 74 68 61 74 20 69 73 2c 20 74 68 65 79 0a 20 20 20 20 20 61 72 65 6e e2 80 99 74 20 66 ",.that.is,.they......aren...t.f
2a6c0 6c 61 74 74 65 6e 65 64 20 66 75 72 74 68 65 72 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f lattened.further........See.also
2a6e0 3a 20 e2 80 98 2d 66 6c 61 74 74 65 6e 2d 6e e2 80 99 20 28 2a 6e 6f 74 65 20 2d 66 6c 61 74 74 :....-flatten-n....(*note.-flatt
2a700 65 6e 2d 6e 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 27 28 28 en-n::)............(-flatten.'((
2a720 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 29 0a 20 20 20 20 20 1)))...................(1)......
2a740 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 27 28 28 31 20 28 32 20 33 29 20 28 28 28 34 20 28 .....(-flatten.'((1.(2.3).(((4.(
2a760 35 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 5)))))))...................(1.2.
2a780 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 20 27 28 31 20 32 3.4.5)...........(-flatten.'(1.2
2a7a0 20 28 33 20 2e 20 34 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 .(3...4)))...................(1.
2a7c0 32 20 28 33 20 2e 20 34 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 66 6c 61 74 74 2.(3...4))...--.Function:.-flatt
2a7e0 65 6e 2d 6e 20 28 6e 75 6d 20 6c 69 73 74 29 0a 20 20 20 20 20 46 6c 61 74 74 65 6e 20 4e 55 4d en-n.(num.list)......Flatten.NUM
2a800 20 6c 65 76 65 6c 73 20 6f 66 20 61 20 6e 65 73 74 65 64 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 .levels.of.a.nested.LIST........
2a820 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 6c 61 74 74 65 6e e2 80 99 20 28 2a 6e 6f 74 65 20 See.also:....-flatten....(*note.
2a840 2d 66 6c 61 74 74 65 6e 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e -flatten::)............(-flatten
2a860 2d 6e 20 31 20 27 28 28 31 20 32 29 20 28 28 33 20 34 29 20 28 28 35 20 36 29 29 29 29 29 0a 20 -n.1.'((1.2).((3.4).((5.6)))))..
2a880 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 28 33 20 34 29 20 28 28 35 20 .................(1.2.(3.4).((5.
2a8a0 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e 2d 6e 20 32 20 27 28 28 6)))...........(-flatten-n.2.'((
2a8c0 31 20 32 29 20 28 28 33 20 34 29 20 28 28 35 20 36 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 1.2).((3.4).((5.6)))))..........
2a8e0 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 28 35 20 36 29 29 0a 20 20 20 20 20 20 20 .........(1.2.3.4.(5.6))........
2a900 20 20 20 28 2d 66 6c 61 74 74 65 6e 2d 6e 20 33 20 27 28 28 31 20 32 29 20 28 28 33 20 34 29 20 ...(-flatten-n.3.'((1.2).((3.4).
2a920 28 28 35 20 36 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 ((5.6)))))...................(1.
2a940 32 20 33 20 34 20 35 20 36 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 70 6c 61 2.3.4.5.6)...--.Function:.-repla
2a960 63 65 20 28 6f 6c 64 20 6e 65 77 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 70 6c 61 63 65 20 61 ce.(old.new.list)......Replace.a
2a980 6c 6c 20 4f 4c 44 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 20 77 69 74 68 20 4e 45 57 2e 0a 0a ll.OLD.items.in.LIST.with.NEW...
2a9a0 20 20 20 20 20 45 6c 65 6d 65 6e 74 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 75 73 69 6e 67 .....Elements.are.compared.using
2a9c0 20 e2 80 98 65 71 75 61 6c e2 80 99 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 ....equal...........See.also:...
2a9e0 98 2d 72 65 70 6c 61 63 65 2d 61 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 70 6c 61 63 65 2d .-replace-at....(*note.-replace-
2aa00 61 74 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 65 20 31 20 22 31 22 at::)............(-replace.1."1"
2aa20 20 27 28 31 20 32 20 33 20 34 20 33 20 32 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .'(1.2.3.4.3.2.1))..............
2aa40 20 e2 87 92 20 28 22 31 22 20 32 20 33 20 34 20 33 20 32 20 22 31 22 29 0a 20 20 20 20 20 20 20 .....("1".2.3.4.3.2."1")........
2aa60 20 20 20 28 2d 72 65 70 6c 61 63 65 20 22 66 6f 6f 22 20 22 62 61 72 22 20 27 28 22 61 22 20 22 ...(-replace."foo"."bar".'("a"."
2aa80 6e 69 63 65 22 20 22 66 6f 6f 22 20 22 73 65 6e 74 65 6e 63 65 22 20 22 61 62 6f 75 74 22 20 22 nice"."foo"."sentence"."about"."
2aaa0 66 6f 6f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 61 22 20 22 6e foo"))...................("a"."n
2aac0 69 63 65 22 20 22 62 61 72 22 20 22 73 65 6e 74 65 6e 63 65 22 20 22 61 62 6f 75 74 22 20 22 62 ice"."bar"."sentence"."about"."b
2aae0 61 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 65 20 31 20 32 20 6e 69 6c ar")...........(-replace.1.2.nil
2ab00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e )...................nil...--.Fun
2ab20 63 74 69 6f 6e 3a 20 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 20 28 6f 6c 64 20 6e 65 77 20 6c ction:.-replace-first.(old.new.l
2ab40 69 73 74 29 0a 20 20 20 20 20 52 65 70 6c 61 63 65 20 74 68 65 20 66 69 72 73 74 20 6f 63 63 75 ist)......Replace.the.first.occu
2ab60 72 72 65 6e 63 65 20 6f 66 20 4f 4c 44 20 77 69 74 68 20 4e 45 57 20 69 6e 20 4c 49 53 54 2e 0a rrence.of.OLD.with.NEW.in.LIST..
2ab80 0a 20 20 20 20 20 45 6c 65 6d 65 6e 74 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 75 73 69 6e ......Elements.are.compared.usin
2aba0 67 20 e2 80 98 65 71 75 61 6c e2 80 99 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 g....equal...........See.also:..
2abc0 80 98 2d 6d 61 70 2d 66 69 72 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6d 61 70 2d 66 69 72 73 ..-map-first....(*note.-map-firs
2abe0 74 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 20 t::)............(-replace-first.
2ac00 31 20 22 31 22 20 27 28 31 20 32 20 33 20 34 20 33 20 32 20 31 29 29 0a 20 20 20 20 20 20 20 20 1."1".'(1.2.3.4.3.2.1)).........
2ac20 20 20 20 20 20 20 e2 87 92 20 28 22 31 22 20 32 20 33 20 34 20 33 20 32 20 31 29 0a 20 20 20 20 ..........("1".2.3.4.3.2.1).....
2ac40 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 20 22 66 6f 6f 22 20 22 62 61 72 ......(-replace-first."foo"."bar
2ac60 22 20 27 28 22 61 22 20 22 6e 69 63 65 22 20 22 66 6f 6f 22 20 22 73 65 6e 74 65 6e 63 65 22 20 ".'("a"."nice"."foo"."sentence".
2ac80 22 61 62 6f 75 74 22 20 22 66 6f 6f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 "about"."foo")).................
2aca0 92 20 28 22 61 22 20 22 6e 69 63 65 22 20 22 62 61 72 22 20 22 73 65 6e 74 65 6e 63 65 22 20 22 ..("a"."nice"."bar"."sentence"."
2acc0 61 62 6f 75 74 22 20 22 66 6f 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 about"."foo")...........(-replac
2ace0 65 2d 66 69 72 73 74 20 31 20 32 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 e-first.1.2.nil)................
2ad00 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 70 6c 61 63 65 2d 6c ...nil...--.Function:.-replace-l
2ad20 61 73 74 20 28 6f 6c 64 20 6e 65 77 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 70 6c 61 63 65 20 ast.(old.new.list)......Replace.
2ad40 74 68 65 20 6c 61 73 74 20 6f 63 63 75 72 72 65 6e 63 65 20 6f 66 20 4f 4c 44 20 77 69 74 68 20 the.last.occurrence.of.OLD.with.
2ad60 4e 45 57 20 69 6e 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 45 6c 65 6d 65 6e 74 73 20 61 72 65 20 NEW.in.LIST........Elements.are.
2ad80 63 6f 6d 70 61 72 65 64 20 75 73 69 6e 67 20 e2 80 98 65 71 75 61 6c e2 80 99 2e 0a 0a 20 20 20 compared.using....equal.........
2ada0 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 6d 61 70 2d 6c 61 73 74 e2 80 99 20 28 2a 6e 6f ..See.also:....-map-last....(*no
2adc0 74 65 20 2d 6d 61 70 2d 6c 61 73 74 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 te.-map-last::)............(-rep
2ade0 6c 61 63 65 2d 6c 61 73 74 20 31 20 22 31 22 20 27 28 31 20 32 20 33 20 34 20 33 20 32 20 31 29 lace-last.1."1".'(1.2.3.4.3.2.1)
2ae00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 33 20 32 )...................(1.2.3.4.3.2
2ae20 20 22 31 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 65 2d 6c 61 73 74 20 22 ."1")...........(-replace-last."
2ae40 66 6f 6f 22 20 22 62 61 72 22 20 27 28 22 61 22 20 22 6e 69 63 65 22 20 22 66 6f 6f 22 20 22 73 foo"."bar".'("a"."nice"."foo"."s
2ae60 65 6e 74 65 6e 63 65 22 20 22 61 62 6f 75 74 22 20 22 66 6f 6f 22 29 29 0a 20 20 20 20 20 20 20 entence"."about"."foo"))........
2ae80 20 20 20 20 20 20 20 e2 87 92 20 28 22 61 22 20 22 6e 69 63 65 22 20 22 66 6f 6f 22 20 22 73 65 ...........("a"."nice"."foo"."se
2aea0 6e 74 65 6e 63 65 22 20 22 61 62 6f 75 74 22 20 22 62 61 72 22 29 0a 20 20 20 20 20 20 20 20 20 ntence"."about"."bar")..........
2aec0 20 28 2d 72 65 70 6c 61 63 65 2d 6c 61 73 74 20 31 20 32 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 .(-replace-last.1.2.nil)........
2aee0 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 69 ...........nil...--.Function:.-i
2af00 6e 73 65 72 74 2d 61 74 20 28 6e 20 78 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 nsert-at.(n.x.list)......Return.
2af20 61 20 6c 69 73 74 20 77 69 74 68 20 58 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 4c 49 53 54 a.list.with.X.inserted.into.LIST
2af40 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 4e 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 .at.position.N........See.also:.
2af60 e2 80 98 2d 73 70 6c 69 63 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 73 70 6c 69 63 65 3a 3a 29 2c ...-splice....(*note.-splice::),
2af80 20 e2 80 98 2d 73 70 6c 69 63 65 2d 6c 69 73 74 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 ....-splice-list....(*note......
2afa0 2d 73 70 6c 69 63 65 2d 6c 69 73 74 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 73 -splice-list::)............(-ins
2afc0 65 72 74 2d 61 74 20 31 20 27 78 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 ert-at.1.'x.'(a.b.c))...........
2afe0 20 20 20 20 e2 87 92 20 28 61 20 78 20 62 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e ........(a.x.b.c)...........(-in
2b000 73 65 72 74 2d 61 74 20 31 32 20 27 78 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 sert-at.12.'x.'(a.b.c)).........
2b020 20 20 20 20 20 20 e2 87 92 20 28 61 20 62 20 63 20 78 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f ..........(a.b.c.x)...--.Functio
2b040 6e 3a 20 2d 72 65 70 6c 61 63 65 2d 61 74 20 28 6e 20 78 20 6c 69 73 74 29 0a 20 20 20 20 20 52 n:.-replace-at.(n.x.list)......R
2b060 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 20 65 6c 65 6d 65 6e 74 20 61 74 20 4e 74 68 eturn.a.list.with.element.at.Nth
2b080 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 4c 49 53 54 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 .position.in.LIST.replaced.with.
2b0a0 58 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 72 65 70 6c 61 63 65 e2 80 X........See.also:....-replace..
2b0c0 99 20 28 2a 6e 6f 74 65 20 2d 72 65 70 6c 61 63 65 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 ..(*note.-replace::)............
2b0e0 28 2d 72 65 70 6c 61 63 65 2d 61 74 20 30 20 39 20 27 28 30 20 31 20 32 20 33 20 34 20 35 29 29 (-replace-at.0.9.'(0.1.2.3.4.5))
2b100 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 39 20 31 20 32 20 33 20 34 20 35 29 ...................(9.1.2.3.4.5)
2b120 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 65 2d 61 74 20 31 20 39 20 27 28 30 20 ...........(-replace-at.1.9.'(0.
2b140 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 30 1.2.3.4.5))...................(0
2b160 20 39 20 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 6c 61 63 65 2d .9.2.3.4.5)...........(-replace-
2b180 61 74 20 34 20 39 20 27 28 30 20 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 at.4.9.'(0.1.2.3.4.5))..........
2b1a0 20 20 20 20 20 e2 87 92 20 28 30 20 31 20 32 20 33 20 39 20 35 29 0a 0a 20 2d 2d 20 46 75 6e 63 .........(0.1.2.3.9.5)...--.Func
2b1c0 74 69 6f 6e 3a 20 2d 75 70 64 61 74 65 2d 61 74 20 28 6e 20 66 75 6e 63 20 6c 69 73 74 29 0a 20 tion:.-update-at.(n.func.list)..
2b1e0 20 20 20 20 55 73 65 20 46 55 4e 43 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 20 4e 74 68 20 65 ....Use.FUNC.to.update.the.Nth.e
2b200 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2e 20 20 52 65 74 75 72 6e 20 61 20 63 6f 70 79 20 6f lement.of.LIST...Return.a.copy.o
2b220 66 20 4c 49 53 54 0a 20 20 20 20 20 77 68 65 72 65 20 74 68 65 20 4e 74 68 20 65 6c 65 6d 65 6e f.LIST......where.the.Nth.elemen
2b240 74 20 69 73 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 t.is.replaced.with.the.result.of
2b260 20 63 61 6c 6c 69 6e 67 20 46 55 4e 43 0a 20 20 20 20 20 6f 6e 20 69 74 2e 0a 0a 20 20 20 20 20 .calling.FUNC......on.it........
2b280 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 6d 61 70 2d 77 68 65 6e e2 80 99 20 28 2a 6e 6f 74 65 See.also:....-map-when....(*note
2b2a0 20 2d 6d 61 70 2d 77 68 65 6e 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 70 64 61 74 .-map-when::)............(-updat
2b2c0 65 2d 61 74 20 30 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2b 20 78 20 39 29 29 20 27 28 30 20 e-at.0.(lambda.(x).(+.x.9)).'(0.
2b2e0 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 39 1.2.3.4.5))...................(9
2b300 20 31 20 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 70 64 61 74 65 2d 61 .1.2.3.4.5)...........(-update-a
2b320 74 20 31 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2b 20 78 20 38 29 29 20 27 28 30 20 31 20 32 t.1.(lambda.(x).(+.x.8)).'(0.1.2
2b340 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 30 20 39 20 .3.4.5))...................(0.9.
2b360 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 75 70 64 61 74 65 2d 61 74 20 2.3.4.5)...........(--update-at.
2b380 32 20 28 6c 65 6e 67 74 68 20 69 74 29 20 27 28 22 66 6f 6f 22 20 22 62 61 72 22 20 22 62 61 7a 2.(length.it).'("foo"."bar"."baz
2b3a0 22 20 22 71 75 75 78 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 66 "."quux"))...................("f
2b3c0 6f 6f 22 20 22 62 61 72 22 20 33 20 22 71 75 75 78 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f oo"."bar".3."quux")...--.Functio
2b3e0 6e 3a 20 2d 72 65 6d 6f 76 65 2d 61 74 20 28 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 n:.-remove-at.(n.list)......Retu
2b400 72 6e 20 4c 49 53 54 20 77 69 74 68 20 69 74 73 20 65 6c 65 6d 65 6e 74 20 61 74 20 69 6e 64 65 rn.LIST.with.its.element.at.inde
2b420 78 20 4e 20 72 65 6d 6f 76 65 64 2e 20 20 54 68 61 74 20 69 73 2c 20 72 65 6d 6f 76 65 0a 20 20 x.N.removed...That.is,.remove...
2b440 20 20 20 61 6e 79 20 65 6c 65 6d 65 6e 74 20 73 65 6c 65 63 74 65 64 20 61 73 20 28 6e 74 68 20 ...any.element.selected.as.(nth.
2b460 4e 20 4c 49 53 54 29 20 66 72 6f 6d 20 4c 49 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 N.LIST).from.LIST.and.return.the
2b480 0a 20 20 20 20 20 72 65 73 75 6c 74 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 69 73 20 61 20 6e 6f ......result........This.is.a.no
2b4a0 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 3a 20 70 61 72 74 73 20 6f n-destructive.operation:.parts.o
2b4c0 66 20 4c 49 53 54 20 28 62 75 74 20 6e 6f 74 0a 20 20 20 20 20 6e 65 63 65 73 73 61 72 69 6c 79 f.LIST.(but.not......necessarily
2b4e0 20 61 6c 6c 20 6f 66 20 69 74 29 20 61 72 65 20 63 6f 70 69 65 64 20 61 73 20 6e 65 65 64 65 64 .all.of.it).are.copied.as.needed
2b500 20 74 6f 20 61 76 6f 69 64 20 64 65 73 74 72 75 63 74 69 76 65 6c 79 0a 20 20 20 20 20 6d 6f 64 .to.avoid.destructively......mod
2b520 69 66 79 69 6e 67 20 69 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 72 ifying.it........See.also:....-r
2b540 65 6d 6f 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 6d 6f emove-at-indices....(*note.-remo
2b560 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 3a 3a 29 2c 0a 20 20 20 20 20 e2 80 98 2d 72 65 6d 6f 76 ve-at-indices::),.........-remov
2b580 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 6d 6f 76 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 e....(*note.-remove::)..........
2b5a0 20 20 20 28 2d 72 65 6d 6f 76 65 2d 61 74 20 30 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 ...(-remove-at.0.'(a.b.c))......
2b5c0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 62 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 .............(b.c)...........(-r
2b5e0 65 6d 6f 76 65 2d 61 74 20 31 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 emove-at.1.'(a.b.c))............
2b600 20 20 20 e2 87 92 20 28 61 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 2d .......(a.c)...........(-remove-
2b620 61 74 20 32 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 at.2.'(a.b.c))..................
2b640 20 28 61 20 62 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 6d 6f 76 65 2d 61 74 .(a.b)...--.Function:.-remove-at
2b660 2d 69 6e 64 69 63 65 73 20 28 69 6e 64 69 63 65 73 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 -indices.(indices.list)......Ret
2b680 75 72 6e 20 4c 49 53 54 20 77 69 74 68 20 69 74 73 20 65 6c 65 6d 65 6e 74 73 20 61 74 20 49 4e urn.LIST.with.its.elements.at.IN
2b6a0 44 49 43 45 53 20 72 65 6d 6f 76 65 64 2e 20 20 54 68 61 74 20 69 73 2c 20 66 6f 72 0a 20 20 20 DICES.removed...That.is,.for....
2b6c0 20 20 65 61 63 68 20 69 6e 64 65 78 20 49 20 69 6e 20 49 4e 44 49 43 45 53 2c 20 72 65 6d 6f 76 ..each.index.I.in.INDICES,.remov
2b6e0 65 20 61 6e 79 20 65 6c 65 6d 65 6e 74 20 73 65 6c 65 63 74 65 64 20 61 73 20 28 6e 74 68 20 49 e.any.element.selected.as.(nth.I
2b700 0a 20 20 20 20 20 4c 49 53 54 29 20 66 72 6f 6d 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 54 68 69 ......LIST).from.LIST........Thi
2b720 73 20 69 73 20 61 20 6e 6f 6e 2d 64 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e s.is.a.non-destructive.operation
2b740 3a 20 70 61 72 74 73 20 6f 66 20 4c 49 53 54 20 28 62 75 74 20 6e 6f 74 0a 20 20 20 20 20 6e 65 :.parts.of.LIST.(but.not......ne
2b760 63 65 73 73 61 72 69 6c 79 20 61 6c 6c 20 6f 66 20 69 74 29 20 61 72 65 20 63 6f 70 69 65 64 20 cessarily.all.of.it).are.copied.
2b780 61 73 20 6e 65 65 64 65 64 20 74 6f 20 61 76 6f 69 64 20 64 65 73 74 72 75 63 74 69 76 65 6c 79 as.needed.to.avoid.destructively
2b7a0 0a 20 20 20 20 20 6d 6f 64 69 66 79 69 6e 67 20 69 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c ......modifying.it........See.al
2b7c0 73 6f 3a 20 e2 80 98 2d 72 65 6d 6f 76 65 2d 61 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 6d so:....-remove-at....(*note.-rem
2b7e0 6f 76 65 2d 61 74 3a 3a 29 2c 20 e2 80 98 2d 72 65 6d 6f 76 65 e2 80 99 20 28 2a 6e 6f 74 65 0a ove-at::),....-remove....(*note.
2b800 20 20 20 20 20 2d 72 65 6d 6f 76 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 .....-remove::).............(-re
2b820 6d 6f 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 20 27 28 30 29 20 27 28 61 20 62 20 63 20 64 20 65 move-at-indices.'(0).'(a.b.c.d.e
2b840 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 62 20 63 20 64 20 65 29 0a 20 ))...................(b.c.d.e)..
2b860 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 20 27 28 31 .........(-remove-at-indices.'(1
2b880 20 33 29 20 27 28 61 20 62 20 63 20 64 20 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .3).'(a.b.c.d.e))...............
2b8a0 e2 87 92 20 28 61 20 63 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 6d 6f 76 65 2d 61 ....(a.c.e)...........(-remove-a
2b8c0 74 2d 69 6e 64 69 63 65 73 20 27 28 34 20 30 20 32 29 20 27 28 61 20 62 20 63 20 64 20 65 29 29 t-indices.'(4.0.2).'(a.b.c.d.e))
2b8e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 62 20 64 29 0a 0a 1f 0a 46 69 6c 65 ...................(b.d)....File
2b900 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 52 65 64 75 63 74 69 6f 6e 73 2c 20 :.dash.info,..Node:.Reductions,.
2b920 20 4e 65 78 74 3a 20 55 6e 66 6f 6c 64 69 6e 67 2c 20 20 50 72 65 76 3a 20 4c 69 73 74 20 74 6f .Next:.Unfolding,..Prev:.List.to
2b940 20 6c 69 73 74 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 34 20 52 65 64 75 63 .list,..Up:.Functions..2.4.Reduc
2b960 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 6e 63 74 69 6f 6e 73 20 tions.==============..Functions.
2b980 72 65 64 75 63 69 6e 67 20 6c 69 73 74 73 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 76 61 6c 75 65 reducing.lists.to.a.single.value
2b9a0 20 28 77 68 69 63 68 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 61 20 6c 69 73 74 29 2e 0a 0a 20 2d .(which.may.also.be.a.list)....-
2b9c0 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 66 6e 20 69 6e 69 -.Function:.-reduce-from.(fn.ini
2b9e0 74 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 64 75 63 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e t.list)......Reduce.the.function
2ba00 20 46 4e 20 61 63 72 6f 73 73 20 4c 49 53 54 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 49 .FN.across.LIST,.starting.with.I
2ba20 4e 49 54 2e 20 20 52 65 74 75 72 6e 20 74 68 65 0a 20 20 20 20 20 72 65 73 75 6c 74 20 6f 66 20 NIT...Return.the......result.of.
2ba40 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 49 4e 49 54 20 61 6e 64 20 74 68 65 20 66 69 72 73 applying.FN.to.INIT.and.the.firs
2ba60 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2c 20 74 68 65 6e 0a 20 20 20 20 20 61 70 70 t.element.of.LIST,.then......app
2ba80 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 61 74 20 72 65 73 75 6c 74 20 61 6e 64 20 74 68 65 20 lying.FN.to.that.result.and.the.
2baa0 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 2c 20 65 74 63 2e 20 20 49 66 20 4c 49 53 54 20 69 73 second.element,.etc...If.LIST.is
2bac0 0a 20 20 20 20 20 65 6d 70 74 79 2c 20 72 65 74 75 72 6e 20 49 4e 49 54 20 77 69 74 68 6f 75 74 ......empty,.return.INIT.without
2bae0 20 63 61 6c 6c 69 6e 67 20 46 4e 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e .calling.FN........This.function
2bb00 e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 ...s.anaphoric.counterpart.is...
2bb20 98 2d 2d 72 65 64 75 63 65 2d 66 72 6f 6d e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 6f 74 68 .--reduce-from...........For.oth
2bb40 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 72 65 64 75 63 65 e2 80 99 er.folds,.see.also....-reduce...
2bb60 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 3a 3a 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d .(*note.-reduce::).and.........-
2bb80 72 65 64 75 63 65 2d 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 72 3a 3a 29 2e reduce-r....(*note.-reduce-r::).
2bba0 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 23 27 2d 20 31 30 ............(-reduce-from.#'-.10
2bbc0 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 34 0a 20 .'(1.2.3))...................4..
2bbe0 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 23 27 6c 69 73 74 20 31 30 .........(-reduce-from.#'list.10
2bc00 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 28 .'(1.2.3))...................(((
2bc20 31 30 20 31 29 20 32 29 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 10.1).2).3)...........(--reduce-
2bc40 66 72 6f 6d 20 28 63 6f 6e 63 61 74 20 61 63 63 20 22 20 22 20 69 74 29 20 22 53 54 41 52 54 22 from.(concat.acc.".".it)."START"
2bc60 20 27 28 22 61 22 20 22 62 22 20 22 63 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 .'("a"."b"."c"))................
2bc80 87 92 20 22 53 54 41 52 54 20 61 20 62 20 63 22 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 ..."START.a.b.c"...--.Function:.
2bca0 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 20 28 66 6e 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 -reduce-r-from.(fn.init.list)...
2bcc0 20 20 20 52 65 64 75 63 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 61 63 72 6f 73 73 ...Reduce.the.function.FN.across
2bce0 20 4c 49 53 54 20 69 6e 20 72 65 76 65 72 73 65 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 .LIST.in.reverse,.starting.with.
2bd00 49 4e 49 54 2e 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 INIT.......Return.the.result.of.
2bd20 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 applying.FN.to.the.last.element.
2bd40 6f 66 20 4c 49 53 54 20 61 6e 64 0a 20 20 20 20 20 49 4e 49 54 2c 20 74 68 65 6e 20 61 70 70 6c of.LIST.and......INIT,.then.appl
2bd60 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 65 20 73 65 63 6f 6e 64 2d 74 6f 2d 6c 61 73 74 20 65 6c ying.FN.to.the.second-to-last.el
2bd80 65 6d 65 6e 74 20 61 6e 64 20 74 68 65 0a 20 20 20 20 20 70 72 65 76 69 6f 75 73 20 72 65 73 75 ement.and.the......previous.resu
2bda0 6c 74 20 6f 66 20 46 4e 2c 20 65 74 63 2e 20 20 54 68 61 74 20 69 73 2c 20 74 68 65 20 66 69 72 lt.of.FN,.etc...That.is,.the.fir
2bdc0 73 74 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 46 4e 20 69 73 0a 20 20 20 20 20 74 68 65 20 63 75 st.argument.of.FN.is......the.cu
2bde0 72 72 65 6e 74 20 65 6c 65 6d 65 6e 74 2c 20 61 6e 64 20 69 74 73 20 73 65 63 6f 6e 64 20 61 72 rrent.element,.and.its.second.ar
2be00 67 75 6d 65 6e 74 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 76 61 6c 75 65 2e 0a 20 20 gument.the.accumulated.value....
2be20 20 20 20 49 66 20 4c 49 53 54 20 69 73 20 65 6d 70 74 79 2c 20 72 65 74 75 72 6e 20 49 4e 49 54 ...If.LIST.is.empty,.return.INIT
2be40 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 20 46 4e 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 .without.calling.FN........This.
2be60 66 75 6e 63 74 69 6f 6e 20 69 73 20 6c 69 6b 65 20 e2 80 98 2d 72 65 64 75 63 65 2d 66 72 6f 6d function.is.like....-reduce-from
2be80 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 66 72 6f 6d 3a 3a 29 20 62 75 74 20 74 ....(*note.-reduce-from::).but.t
2bea0 68 65 0a 20 20 20 20 20 6f 70 65 72 61 74 69 6f 6e 20 61 73 73 6f 63 69 61 74 65 73 20 66 72 6f he......operation.associates.fro
2bec0 6d 20 74 68 65 20 72 69 67 68 74 20 72 61 74 68 65 72 20 74 68 61 6e 20 6c 65 66 74 2e 20 20 49 m.the.right.rather.than.left...I
2bee0 6e 20 6f 74 68 65 72 0a 20 20 20 20 20 77 6f 72 64 73 2c 20 69 74 20 73 74 61 72 74 73 20 66 72 n.other......words,.it.starts.fr
2bf00 6f 6d 20 74 68 65 20 65 6e 64 20 6f 66 20 4c 49 53 54 20 61 6e 64 20 66 6c 69 70 73 20 74 68 65 om.the.end.of.LIST.and.flips.the
2bf20 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 0a 20 20 20 20 20 46 4e 2e 20 20 43 6f 6e 63 65 70 74 75 .arguments.to......FN...Conceptu
2bf40 61 6c 6c 79 2c 20 69 74 20 69 73 20 6c 69 6b 65 20 72 65 70 6c 61 63 69 6e 67 20 74 68 65 20 63 ally,.it.is.like.replacing.the.c
2bf60 6f 6e 73 65 73 20 69 6e 20 4c 49 53 54 20 77 69 74 68 0a 20 20 20 20 20 61 70 70 6c 69 63 61 74 onses.in.LIST.with......applicat
2bf80 69 6f 6e 73 20 6f 66 20 46 4e 2c 20 61 6e 64 20 69 74 73 20 6c 61 73 74 20 6c 69 6e 6b 20 77 69 ions.of.FN,.and.its.last.link.wi
2bfa0 74 68 20 49 4e 49 54 2c 20 61 6e 64 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65 0a 20 20 20 20 th.INIT,.and.evaluating.the.....
2bfc0 20 72 65 73 75 6c 74 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 54 68 69 .resulting.expression........Thi
2bfe0 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 s.function...s.anaphoric.counter
2c000 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d e2 80 99 2e 0a 0a part.is....--reduce-r-from......
2c020 20 20 20 20 20 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 .....For.other.folds,.see.also..
2c040 80 98 2d 72 65 64 75 63 65 2d 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 72 3a ..-reduce-r....(*note.-reduce-r:
2c060 3a 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d 72 65 64 75 63 65 e2 80 99 20 28 2a 6e 6f 74 65 :).and.........-reduce....(*note
2c080 20 2d 72 65 64 75 63 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 65 .-reduce::).............(-reduce
2c0a0 2d 72 2d 66 72 6f 6d 20 23 27 2d 20 31 30 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 -r-from.#'-.10.'(1.2.3))........
2c0c0 20 20 20 20 20 20 20 e2 87 92 20 2d 38 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 65 ...........-8...........(-reduce
2c0e0 2d 72 2d 66 72 6f 6d 20 23 27 6c 69 73 74 20 31 30 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 -r-from.#'list.10.'(1.2.3)).....
2c100 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 28 32 20 28 33 20 31 30 29 29 29 0a 20 20 20 ..............(1.(2.(3.10)))....
2c120 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 20 28 63 6f 6e 63 61 74 20 .......(--reduce-r-from.(concat.
2c140 69 74 20 22 20 22 20 61 63 63 29 20 22 45 4e 44 22 20 27 28 22 61 22 20 22 62 22 20 22 63 22 29 it.".".acc)."END".'("a"."b"."c")
2c160 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 22 61 20 62 20 63 20 45 4e 44 22 0a )..................."a.b.c.END".
2c180 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 64 75 63 65 20 28 66 6e 20 6c 69 73 74 29 ..--.Function:.-reduce.(fn.list)
2c1a0 0a 20 20 20 20 20 52 65 64 75 63 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 61 63 72 ......Reduce.the.function.FN.acr
2c1c0 6f 73 73 20 4c 49 53 54 2e 20 20 52 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 oss.LIST...Return.the.result.of.
2c1e0 61 70 70 6c 79 69 6e 67 0a 20 20 20 20 20 46 4e 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 74 77 applying......FN.to.the.first.tw
2c200 6f 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 2c 20 74 68 65 6e 20 61 70 70 6c 79 69 6e o.elements.of.LIST,.then.applyin
2c220 67 20 46 4e 20 74 6f 20 74 68 61 74 0a 20 20 20 20 20 72 65 73 75 6c 74 20 61 6e 64 20 74 68 65 g.FN.to.that......result.and.the
2c240 20 74 68 69 72 64 20 65 6c 65 6d 65 6e 74 2c 20 65 74 63 2e 20 20 49 66 20 4c 49 53 54 20 63 6f .third.element,.etc...If.LIST.co
2c260 6e 74 61 69 6e 73 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 2c 20 72 65 ntains.a.single......element,.re
2c280 74 75 72 6e 20 69 74 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 20 46 4e 2e 20 20 49 66 20 turn.it.without.calling.FN...If.
2c2a0 4c 49 53 54 20 69 73 20 65 6d 70 74 79 2c 20 72 65 74 75 72 6e 0a 20 20 20 20 20 74 68 65 20 72 LIST.is.empty,.return......the.r
2c2c0 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 46 4e 20 77 69 74 68 20 6e 6f 20 61 72 67 75 esult.of.calling.FN.with.no.argu
2c2e0 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 ments........This.function...s.a
2c300 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 72 65 64 naphoric.counterpart.is....--red
2c320 75 63 65 e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 uce...........For.other.folds,.s
2c340 65 65 20 61 6c 73 6f 20 e2 80 98 2d 72 65 64 75 63 65 2d 66 72 6f 6d e2 80 99 20 28 2a 6e 6f 74 ee.also....-reduce-from....(*not
2c360 65 20 2d 72 65 64 75 63 65 2d 66 72 6f 6d 3a 3a 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d 72 e.-reduce-from::).and.........-r
2c380 65 64 75 63 65 2d 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 72 3a 3a 29 2e 0a educe-r....(*note.-reduce-r::)..
2c3a0 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 65 20 23 27 2d 20 27 28 31 20 32 20 33 20 ...........(-reduce.#'-.'(1.2.3.
2c3c0 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 2d 38 0a 20 20 20 20 20 20 20 4))...................-8........
2c3e0 20 20 20 28 2d 72 65 64 75 63 65 20 23 27 6c 69 73 74 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 ...(-reduce.#'list.'(1.2.3.4))..
2c400 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 28 31 20 32 29 20 33 29 20 34 29 0a 20 .................(((1.2).3).4)..
2c420 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 .........(--reduce.(format."%s-%
2c440 64 22 20 61 63 63 20 69 74 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 d".acc.it).'(1.2.3))............
2c460 20 20 20 e2 87 92 20 22 31 2d 32 2d 33 22 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 ......."1-2-3"...--.Function:.-r
2c480 65 64 75 63 65 2d 72 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 64 75 63 65 20 74 68 educe-r.(fn.list)......Reduce.th
2c4a0 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 61 63 72 6f 73 73 20 4c 49 53 54 20 69 6e 20 72 65 76 e.function.FN.across.LIST.in.rev
2c4c0 65 72 73 65 2e 20 20 52 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 6f 66 erse...Return.the.result......of
2c4e0 20 61 70 70 6c 79 69 6e 67 20 46 4e 20 74 6f 20 74 68 65 20 6c 61 73 74 20 74 77 6f 20 65 6c 65 .applying.FN.to.the.last.two.ele
2c500 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 2c 20 74 68 65 6e 20 61 70 70 6c 79 69 6e 67 20 46 4e 0a ments.of.LIST,.then.applying.FN.
2c520 20 20 20 20 20 74 6f 20 74 68 65 20 74 68 69 72 64 2d 74 6f 2d 6c 61 73 74 20 65 6c 65 6d 65 6e .....to.the.third-to-last.elemen
2c540 74 20 61 6e 64 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 73 75 6c 74 20 6f 66 20 46 4e 2c t.and.the.previous.result.of.FN,
2c560 20 65 74 63 2e 0a 20 20 20 20 20 54 68 61 74 20 69 73 2c 20 74 68 65 20 66 69 72 73 74 20 61 72 .etc.......That.is,.the.first.ar
2c580 67 75 6d 65 6e 74 20 6f 66 20 46 4e 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6c 65 6d gument.of.FN.is.the.current.elem
2c5a0 65 6e 74 2c 20 61 6e 64 20 69 74 73 0a 20 20 20 20 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e ent,.and.its......second.argumen
2c5c0 74 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 76 61 6c 75 65 2e 20 20 49 66 20 4c 49 53 t.the.accumulated.value...If.LIS
2c5e0 54 20 63 6f 6e 74 61 69 6e 73 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 T.contains.a.single......element
2c600 2c 20 72 65 74 75 72 6e 20 69 74 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 20 46 4e 2e 20 ,.return.it.without.calling.FN..
2c620 20 49 66 20 4c 49 53 54 20 69 73 20 65 6d 70 74 79 2c 20 72 65 74 75 72 6e 0a 20 20 20 20 20 74 .If.LIST.is.empty,.return......t
2c640 68 65 20 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 46 4e 20 77 69 74 68 20 6e 6f 20 he.result.of.calling.FN.with.no.
2c660 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 arguments........This.function.i
2c680 73 20 6c 69 6b 65 20 e2 80 98 2d 72 65 64 75 63 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 s.like....-reduce....(*note.-red
2c6a0 75 63 65 3a 3a 29 20 62 75 74 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 0a 20 20 20 20 20 61 73 uce::).but.the.operation......as
2c6c0 73 6f 63 69 61 74 65 73 20 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 20 72 61 74 68 65 72 20 74 sociates.from.the.right.rather.t
2c6e0 68 61 6e 20 6c 65 66 74 2e 20 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 69 74 0a 20 20 han.left...In.other.words,.it...
2c700 20 20 20 73 74 61 72 74 73 20 66 72 6f 6d 20 74 68 65 20 65 6e 64 20 6f 66 20 4c 49 53 54 20 61 ...starts.from.the.end.of.LIST.a
2c720 6e 64 20 66 6c 69 70 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 46 4e 2e 0a 20 20 nd.flips.the.arguments.to.FN....
2c740 20 20 20 43 6f 6e 63 65 70 74 75 61 6c 6c 79 2c 20 69 74 20 69 73 20 6c 69 6b 65 20 72 65 70 6c ...Conceptually,.it.is.like.repl
2c760 61 63 69 6e 67 20 74 68 65 20 63 6f 6e 73 65 73 20 69 6e 20 4c 49 53 54 20 77 69 74 68 0a 20 20 acing.the.conses.in.LIST.with...
2c780 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 6f 66 20 46 4e 2c 20 69 67 6e 6f 72 69 6e 67 20 ...applications.of.FN,.ignoring.
2c7a0 69 74 73 20 6c 61 73 74 20 6c 69 6e 6b 2c 20 61 6e 64 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 its.last.link,.and.evaluating.th
2c7c0 65 0a 20 20 20 20 20 72 65 73 75 6c 74 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 0a 20 20 e......resulting.expression.....
2c7e0 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 ...This.function...s.anaphoric.c
2c800 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 72 65 64 75 63 65 2d 72 e2 80 99 2e 0a ounterpart.is....--reduce-r.....
2c820 0a 20 20 20 20 20 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 ......For.other.folds,.see.also.
2c840 e2 80 98 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 ...-reduce-r-from....(*note.-red
2c860 75 63 65 2d 72 2d 66 72 6f 6d 3a 3a 29 0a 20 20 20 20 20 61 6e 64 20 e2 80 98 2d 72 65 64 75 63 uce-r-from::)......and....-reduc
2c880 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 e....(*note.-reduce::)..........
2c8a0 20 20 20 28 2d 72 65 64 75 63 65 2d 72 20 23 27 2d 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 ...(-reduce-r.#'-.'(1.2.3.4))...
2c8c0 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 2d 32 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 ................-2...........(-r
2c8e0 65 64 75 63 65 2d 72 20 23 27 6c 69 73 74 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 educe-r.#'list.'(1.2.3.4))......
2c900 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 28 32 20 28 33 20 34 29 29 29 0a 20 20 20 20 20 .............(1.(2.(3.4)))......
2c920 20 20 20 20 20 28 2d 2d 72 65 64 75 63 65 2d 72 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 64 22 .....(--reduce-r.(format."%s-%d"
2c940 20 61 63 63 20 69 74 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .acc.it).'(1.2.3))..............
2c960 20 e2 87 92 20 22 33 2d 32 2d 31 22 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 65 64 ....."3-2-1"...--.Function:.-red
2c980 75 63 74 69 6f 6e 73 2d 66 72 6f 6d 20 28 66 6e 20 69 6e 69 74 20 6c 69 73 74 29 0a 20 20 20 20 uctions-from.(fn.init.list).....
2c9a0 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 46 4e e2 80 99 73 20 69 6e 74 65 72 6d 65 .Return.a.list.of.FN...s.interme
2c9c0 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 4c 49 53 54 2e 20 20 54 diate.reductions.across.LIST...T
2c9e0 68 61 74 0a 20 20 20 20 20 69 73 2c 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 hat......is,.a.list.of.the.inter
2ca00 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f mediate.values.of.the.accumulato
2ca20 72 20 77 68 65 6e 0a 20 20 20 20 20 e2 80 98 2d 72 65 64 75 63 65 2d 66 72 6f 6d e2 80 99 20 28 r.when.........-reduce-from....(
2ca40 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 66 72 6f 6d 3a 3a 29 20 28 77 68 69 63 68 20 73 65 65 *note.-reduce-from::).(which.see
2ca60 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 0a 20 20 20 20 20 74 68 65 20 73 61 6d 65 20 61 ).is.called.with......the.same.a
2ca80 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 rguments........This.function...
2caa0 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d s.anaphoric.counterpart.is....--
2cac0 72 65 64 75 63 74 69 6f 6e 73 2d 66 72 6f 6d e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 6f 74 reductions-from...........For.ot
2cae0 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 72 65 64 75 63 74 69 6f her.folds,.see.also....-reductio
2cb00 6e 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 74 69 6f 6e 73 3a 3a 29 20 61 6e 64 0a ns....(*note.-reductions::).and.
2cb20 20 20 20 20 20 e2 80 98 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 e2 80 99 20 28 2a 6e 6f 74 65 20 ........-reductions-r....(*note.
2cb40 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 -reductions-r::).............(-r
2cb60 65 64 75 63 74 69 6f 6e 73 2d 66 72 6f 6d 20 23 27 6d 61 78 20 30 20 27 28 32 20 31 20 34 20 33 eductions-from.#'max.0.'(2.1.4.3
2cb80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 30 20 32 20 32 20 34 20 34 29 ))...................(0.2.2.4.4)
2cba0 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 2d 66 72 6f 6d 20 23 27 2a ...........(-reductions-from.#'*
2cbc0 20 31 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 .1.'(1.2.3.4))..................
2cbe0 20 28 31 20 31 20 32 20 36 20 32 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 .(1.1.2.6.24)...........(--reduc
2cc00 74 69 6f 6e 73 2d 66 72 6f 6d 20 28 66 6f 72 6d 61 74 20 22 28 46 4e 20 25 73 20 25 64 29 22 20 tions-from.(format."(FN.%s.%d)".
2cc20 61 63 63 20 69 74 29 20 22 49 4e 49 54 22 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 acc.it)."INIT".'(1.2.3))........
2cc40 20 20 20 20 20 20 20 e2 87 92 20 28 22 49 4e 49 54 22 20 22 28 46 4e 20 49 4e 49 54 20 31 29 22 ...........("INIT"."(FN.INIT.1)"
2cc60 20 22 28 46 4e 20 28 46 4e 20 49 4e 49 54 20 31 29 20 32 29 22 20 22 28 46 4e 20 28 46 4e 20 28 ."(FN.(FN.INIT.1).2)"."(FN.(FN.(
2cc80 46 4e 20 49 4e 49 54 20 31 29 20 32 29 20 33 29 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e FN.INIT.1).2).3)")...--.Function
2cca0 3a 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 20 28 66 6e 20 69 6e 69 74 20 6c 69 :.-reductions-r-from.(fn.init.li
2ccc0 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 46 4e e2 80 99 73 st)......Return.a.list.of.FN...s
2cce0 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 .intermediate.reductions.across.
2cd00 72 65 76 65 72 73 65 64 20 4c 49 53 54 2e 0a 20 20 20 20 20 54 68 61 74 20 69 73 2c 20 61 20 6c reversed.LIST.......That.is,.a.l
2cd20 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 20 6f ist.of.the.intermediate.values.o
2cd40 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 77 68 65 6e 0a 20 20 20 20 20 e2 80 98 2d f.the.accumulator.when.........-
2cd60 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d reduce-r-from....(*note.-reduce-
2cd80 72 2d 66 72 6f 6d 3a 3a 29 20 28 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 0a r-from::).(which.see).is.called.
2cda0 20 20 20 20 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 .....with.the.same.arguments....
2cdc0 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 ....This.function...s.anaphoric.
2cde0 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 counterpart.is....--reductions-r
2ce00 2d 66 72 6f 6d e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c -from...........For.other.folds,
2ce20 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 72 65 64 75 63 74 69 6f 6e 73 e2 80 99 20 28 2a 6e 6f .see.also....-reductions....(*no
2ce40 74 65 20 2d 72 65 64 75 63 74 69 6f 6e 73 3a 3a 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d 72 te.-reductions::).and.........-r
2ce60 65 64 75 63 74 69 6f 6e 73 2d 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 74 69 6f 6e eductions-r....(*note.-reduction
2ce80 73 2d 72 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 2d s-r::).............(-reductions-
2cea0 72 2d 66 72 6f 6d 20 23 27 6d 61 78 20 30 20 27 28 32 20 31 20 34 20 33 29 29 0a 20 20 20 20 20 r-from.#'max.0.'(2.1.4.3))......
2cec0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 20 34 20 34 20 33 20 30 29 0a 20 20 20 20 20 20 20 .............(4.4.4.3.0)........
2cee0 20 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 20 23 27 2a 20 31 20 27 28 31 ...(-reductions-r-from.#'*.1.'(1
2cf00 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 34 20 32 .2.3.4))...................(24.2
2cf20 34 20 31 32 20 34 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 74 69 6f 6e 4.12.4.1)...........(--reduction
2cf40 73 2d 72 2d 66 72 6f 6d 20 28 66 6f 72 6d 61 74 20 22 28 46 4e 20 25 64 20 25 73 29 22 20 69 74 s-r-from.(format."(FN.%d.%s)".it
2cf60 20 61 63 63 29 20 22 49 4e 49 54 22 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 .acc)."INIT".'(1.2.3))..........
2cf80 20 20 20 20 20 e2 87 92 20 28 22 28 46 4e 20 31 20 28 46 4e 20 32 20 28 46 4e 20 33 20 49 4e 49 .........("(FN.1.(FN.2.(FN.3.INI
2cfa0 54 29 29 29 22 20 22 28 46 4e 20 32 20 28 46 4e 20 33 20 49 4e 49 54 29 29 22 20 22 28 46 4e 20 T)))"."(FN.2.(FN.3.INIT))"."(FN.
2cfc0 33 20 49 4e 49 54 29 22 20 22 49 4e 49 54 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 3.INIT)"."INIT")...--.Function:.
2cfe0 2d 72 65 64 75 63 74 69 6f 6e 73 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 -reductions.(fn.list)......Retur
2d000 6e 20 61 20 6c 69 73 74 20 6f 66 20 46 4e e2 80 99 73 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 n.a.list.of.FN...s.intermediate.
2d020 72 65 64 75 63 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 4c 49 53 54 2e 20 20 54 68 61 74 0a 20 20 reductions.across.LIST...That...
2d040 20 20 20 69 73 2c 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 ...is,.a.list.of.the.intermediat
2d060 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 77 68 65 6e e.values.of.the.accumulator.when
2d080 0a 20 20 20 20 20 e2 80 98 2d 72 65 64 75 63 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 .........-reduce....(*note.-redu
2d0a0 63 65 3a 3a 29 20 28 77 68 69 63 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 ce::).(which.see).is.called.with
2d0c0 20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 .the.same......arguments........
2d0e0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e This.function...s.anaphoric.coun
2d100 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 72 65 64 75 63 74 69 6f 6e 73 e2 80 99 2e 0a 0a terpart.is....--reductions......
2d120 20 20 20 20 20 46 6f 72 20 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 .....For.other.folds,.see.also..
2d140 80 98 2d 72 65 64 75 63 74 69 6f 6e 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 74 69 ..-reductions....(*note.-reducti
2d160 6f 6e 73 3a 3a 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 ons::).and.........-reductions-r
2d180 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 3a 3a 29 2e 0a 0a 20 20 ....(*note.-reductions-r::).....
2d1a0 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 20 23 27 2b 20 27 28 31 20 32 20 33 ........(-reductions.#'+.'(1.2.3
2d1c0 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 33 20 36 20 31 30 .4))...................(1.3.6.10
2d1e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 20 23 27 2a 20 27 28 31 )...........(-reductions.#'*.'(1
2d200 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 .2.3.4))...................(1.2.
2d220 36 20 32 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 74 69 6f 6e 73 20 28 66 6.24)...........(--reductions.(f
2d240 6f 72 6d 61 74 20 22 28 46 4e 20 25 73 20 25 64 29 22 20 61 63 63 20 69 74 29 20 27 28 31 20 32 ormat."(FN.%s.%d)".acc.it).'(1.2
2d260 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 22 28 46 4e 20 31 .3))...................(1."(FN.1
2d280 20 32 29 22 20 22 28 46 4e 20 28 46 4e 20 31 20 32 29 20 33 29 22 29 0a 0a 20 2d 2d 20 46 75 6e .2)"."(FN.(FN.1.2).3)")...--.Fun
2d2a0 63 74 69 6f 6e 3a 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 20 28 66 6e 20 6c 69 73 74 29 0a 20 ction:.-reductions-r.(fn.list)..
2d2c0 20 20 20 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 46 4e e2 80 99 73 20 69 6e 74 65 ....Return.a.list.of.FN...s.inte
2d2e0 72 6d 65 64 69 61 74 65 20 72 65 64 75 63 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 72 65 76 65 72 rmediate.reductions.across.rever
2d300 73 65 64 20 4c 49 53 54 2e 0a 20 20 20 20 20 54 68 61 74 20 69 73 2c 20 61 20 6c 69 73 74 20 6f sed.LIST.......That.is,.a.list.o
2d320 66 20 74 68 65 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 f.the.intermediate.values.of.the
2d340 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 77 68 65 6e 0a 20 20 20 20 20 e2 80 98 2d 72 65 64 75 63 .accumulator.when.........-reduc
2d360 65 2d 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 72 3a 3a 29 20 28 77 68 69 63 e-r....(*note.-reduce-r::).(whic
2d380 68 20 73 65 65 29 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 0a 20 h.see).is.called.with.the.same..
2d3a0 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 ....arguments........This.functi
2d3c0 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 on...s.anaphoric.counterpart.is.
2d3e0 e2 80 98 2d 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 ...--reductions-r...........For.
2d400 6f 74 68 65 72 20 66 6f 6c 64 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d 72 65 64 75 63 74 other.folds,.see.also....-reduct
2d420 69 6f 6e 73 2d 72 2d 66 72 6f 6d e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 72 65 64 75 ions-r-from....(*note......-redu
2d440 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 3a 3a 29 20 61 6e 64 20 e2 80 98 2d 72 65 64 75 63 74 69 ctions-r-from::).and....-reducti
2d460 6f 6e 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 74 69 6f 6e 73 3a 3a 29 2e 0a 0a 20 ons....(*note.-reductions::)....
2d480 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 20 23 27 2b 20 27 28 31 20 .........(-reductions-r.#'+.'(1.
2d4a0 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 30 20 39 20 2.3.4))...................(10.9.
2d4c0 37 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 20 23 27 7.4)...........(-reductions-r.#'
2d4e0 2a 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 *.'(1.2.3.4))...................
2d500 28 32 34 20 32 34 20 31 32 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 72 65 64 75 63 74 (24.24.12.4)...........(--reduct
2d520 69 6f 6e 73 2d 72 20 28 66 6f 72 6d 61 74 20 22 28 46 4e 20 25 64 20 25 73 29 22 20 69 74 20 61 ions-r.(format."(FN.%d.%s)".it.a
2d540 63 63 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 cc).'(1.2.3))...................
2d560 28 22 28 46 4e 20 31 20 28 46 4e 20 32 20 33 29 29 22 20 22 28 46 4e 20 32 20 33 29 22 20 33 29 ("(FN.1.(FN.2.3))"."(FN.2.3)".3)
2d580 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 63 6f 75 6e 74 20 28 70 72 65 64 20 6c 69 73 ...--.Function:.-count.(pred.lis
2d5a0 74 29 0a 20 20 20 20 20 43 6f 75 6e 74 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 t)......Counts.the.number.of.ite
2d5c0 6d 73 20 69 6e 20 4c 49 53 54 20 77 68 65 72 65 20 28 50 52 45 44 20 69 74 65 6d 29 20 69 73 20 ms.in.LIST.where.(PRED.item).is.
2d5e0 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 75 6e non-...nil................(-coun
2d600 74 20 27 65 76 65 6e 3f 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 t.'even?.'(1.2.3.4.5))..........
2d620 20 20 20 20 20 e2 87 92 20 32 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 63 6f 75 6e 74 20 28 3c .........2...........(--count.(<
2d640 20 69 74 20 34 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .it.4).'(1.2.3.4))..............
2d660 20 e2 87 92 20 33 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 75 6d 20 28 6c 69 73 74 .....3...--.Function:.-sum.(list
2d680 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 73 75 6d 20 6f 66 20 4c 49 53 54 2e 0a 0a )......Return.the.sum.of.LIST...
2d6a0 20 20 20 20 20 20 20 20 20 20 28 2d 73 75 6d 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..........(-sum.()).............
2d6c0 20 20 e2 87 92 20 30 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 75 6d 20 27 28 31 29 29 0a 20 20 ......0...........(-sum.'(1))...
2d6e0 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 75 ................1...........(-su
2d700 6d 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 m.'(1.2.3.4))...................
2d720 31 30 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 75 6e 6e 69 6e 67 2d 73 75 6d 20 28 10...--.Function:.-running-sum.(
2d740 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 20 72 75 list)......Return.a.list.with.ru
2d760 6e 6e 69 6e 67 20 73 75 6d 73 20 6f 66 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 2e 20 20 4c 49 nning.sums.of.items.in.LIST...LI
2d780 53 54 20 6d 75 73 74 20 62 65 0a 20 20 20 20 20 6e 6f 6e 2d 65 6d 70 74 79 2e 0a 0a 20 20 20 20 ST.must.be......non-empty.......
2d7a0 20 20 20 20 20 20 28 2d 72 75 6e 6e 69 6e 67 2d 73 75 6d 20 27 28 31 20 32 20 33 20 34 29 29 0a ......(-running-sum.'(1.2.3.4)).
2d7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 33 20 36 20 31 30 29 0a 20 20 20 ..................(1.3.6.10)....
2d7e0 20 20 20 20 20 20 20 28 2d 72 75 6e 6e 69 6e 67 2d 73 75 6d 20 27 28 31 29 29 0a 20 20 20 20 20 .......(-running-sum.'(1))......
2d800 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 75 6e .............(1)...........(-run
2d820 6e 69 6e 67 2d 73 75 6d 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 ning-sum.())...............error
2d840 e2 86 92 20 57 72 6f 6e 67 20 74 79 70 65 20 61 72 67 75 6d 65 6e 74 3a 20 63 6f 6e 73 70 2c 20 ....Wrong.type.argument:.consp,.
2d860 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 72 6f 64 75 63 74 20 28 6c 69 73 nil...--.Function:.-product.(lis
2d880 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 70 72 6f 64 75 63 74 20 6f 66 20 4c 49 t)......Return.the.product.of.LI
2d8a0 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 72 6f 64 75 63 74 20 28 29 29 0a 20 20 20 ST.............(-product.())....
2d8c0 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 72 6f ...............1...........(-pro
2d8e0 64 75 63 74 20 27 28 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 20 duct.'(1))...................1..
2d900 20 20 20 20 20 20 20 20 20 28 2d 70 72 6f 64 75 63 74 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 .........(-product.'(1.2.3.4))..
2d920 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 32 34 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f .................24...--.Functio
2d940 6e 3a 20 2d 72 75 6e 6e 69 6e 67 2d 70 72 6f 64 75 63 74 20 28 6c 69 73 74 29 0a 20 20 20 20 20 n:.-running-product.(list)......
2d960 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 20 72 75 6e 6e 69 6e 67 20 70 72 6f 64 75 Return.a.list.with.running.produ
2d980 63 74 73 20 6f 66 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 2e 20 20 4c 49 53 54 20 6d 75 73 74 cts.of.items.in.LIST...LIST.must
2d9a0 20 62 65 0a 20 20 20 20 20 6e 6f 6e 2d 65 6d 70 74 79 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 .be......non-empty.............(
2d9c0 2d 72 75 6e 6e 69 6e 67 2d 70 72 6f 64 75 63 74 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 -running-product.'(1.2.3.4))....
2d9e0 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 36 20 32 34 29 0a 20 20 20 20 20 20 ...............(1.2.6.24).......
2da00 20 20 20 20 28 2d 72 75 6e 6e 69 6e 67 2d 70 72 6f 64 75 63 74 20 27 28 31 29 29 0a 20 20 20 20 ....(-running-product.'(1)).....
2da20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 75 ..............(1)...........(-ru
2da40 6e 6e 69 6e 67 2d 70 72 6f 64 75 63 74 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nning-product.())...............
2da60 65 72 72 6f 72 e2 86 92 20 57 72 6f 6e 67 20 74 79 70 65 20 61 72 67 75 6d 65 6e 74 3a 20 63 6f error....Wrong.type.argument:.co
2da80 6e 73 70 2c 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 69 6e 69 74 73 20 28 nsp,.nil...--.Function:.-inits.(
2daa0 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 6c 6c 20 70 72 65 66 69 78 65 73 20 6f list)......Return.all.prefixes.o
2dac0 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 69 74 73 20 27 28 31 20 32 f.LIST.............(-inits.'(1.2
2dae0 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 20 28 31 .3.4))...................(nil.(1
2db00 29 20 28 31 20 32 29 20 28 31 20 32 20 33 29 20 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 ).(1.2).(1.2.3).(1.2.3.4))......
2db20 20 20 20 20 20 28 2d 69 6e 69 74 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(-inits.nil)...............
2db40 e2 87 92 20 28 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 69 74 73 20 27 28 31 29 ....(nil)...........(-inits.'(1)
2db60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 20 28 31 29 29 0a 0a 20 )...................(nil.(1))...
2db80 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 61 69 6c 73 20 28 6c 69 73 74 29 0a 20 20 20 20 20 --.Function:.-tails.(list)......
2dba0 52 65 74 75 72 6e 20 61 6c 6c 20 73 75 66 66 69 78 65 73 20 6f 66 20 4c 49 53 54 2e 0a 0a 20 20 Return.all.suffixes.of.LIST.....
2dbc0 20 20 20 20 20 20 20 20 28 2d 74 61 69 6c 73 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 ........(-tails.'(1.2.3.4)).....
2dbe0 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 20 34 29 20 28 32 20 33 20 34 29 ..............((1.2.3.4).(2.3.4)
2dc00 20 28 33 20 34 29 20 28 34 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 69 6c .(3.4).(4).nil)...........(-tail
2dc20 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 29 0a 20 s.nil)...................(nil)..
2dc40 20 20 20 20 20 20 20 20 20 28 2d 74 61 69 6c 73 20 27 28 31 29 29 0a 20 20 20 20 20 20 20 20 20 .........(-tails.'(1))..........
2dc60 20 20 20 20 20 e2 87 92 20 28 28 31 29 20 6e 69 6c 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e .........((1).nil)...--.Function
2dc80 3a 20 2d 63 6f 6d 6d 6f 6e 2d 70 72 65 66 69 78 20 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 :.-common-prefix.(&rest.lists)..
2dca0 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 6c 6f 6e 67 65 73 74 20 63 6f 6d 6d 6f 6e 20 70 72 ....Return.the.longest.common.pr
2dcc0 65 66 69 78 20 6f 66 20 4c 49 53 54 53 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6d 6d efix.of.LISTS.............(-comm
2dce0 6f 6e 2d 70 72 65 66 69 78 20 27 28 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 on-prefix.'(1)).................
2dd00 92 20 28 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6d 6d 6f 6e 2d 70 72 65 66 69 78 20 ..(1)...........(-common-prefix.
2dd20 27 28 31 20 32 29 20 27 28 33 20 34 29 20 27 28 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 '(1.2).'(3.4).'(1.2))...........
2dd40 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6d 6d 6f 6e 2d 70 72 ........()...........(-common-pr
2dd60 65 66 69 78 20 27 28 31 20 32 29 20 27 28 31 20 32 20 33 29 20 27 28 31 20 32 20 33 20 34 29 29 efix.'(1.2).'(1.2.3).'(1.2.3.4))
2dd80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 29 0a 0a 20 2d 2d 20 46 75 ...................(1.2)...--.Fu
2dda0 6e 63 74 69 6f 6e 3a 20 2d 63 6f 6d 6d 6f 6e 2d 73 75 66 66 69 78 20 28 26 72 65 73 74 20 6c 69 nction:.-common-suffix.(&rest.li
2ddc0 73 74 73 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 6c 6f 6e 67 65 73 74 20 63 6f 6d sts)......Return.the.longest.com
2dde0 6d 6f 6e 20 73 75 66 66 69 78 20 6f 66 20 4c 49 53 54 53 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 mon.suffix.of.LISTS.............
2de00 28 2d 63 6f 6d 6d 6f 6e 2d 73 75 66 66 69 78 20 27 28 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 (-common-suffix.'(1))...........
2de20 20 20 20 20 e2 87 92 20 28 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6d 6d 6f 6e 2d 73 ........(1)...........(-common-s
2de40 75 66 66 69 78 20 27 28 31 20 32 29 20 27 28 33 20 34 29 20 27 28 31 20 32 29 29 0a 20 20 20 20 uffix.'(1.2).'(3.4).'(1.2)).....
2de60 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6d ..............()...........(-com
2de80 6d 6f 6e 2d 73 75 66 66 69 78 20 27 28 31 20 32 20 33 20 34 29 20 27 28 32 20 33 20 34 29 20 27 mon-suffix.'(1.2.3.4).'(2.3.4).'
2dea0 28 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 34 29 0a 0a (3.4))...................(3.4)..
2dec0 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6d 69 6e 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 .--.Function:.-min.(list)......R
2dee0 65 74 75 72 6e 20 74 68 65 20 73 6d 61 6c 6c 65 73 74 20 76 61 6c 75 65 20 66 72 6f 6d 20 4c 49 eturn.the.smallest.value.from.LI
2df00 53 54 20 6f 66 20 6e 75 6d 62 65 72 73 20 6f 72 20 6d 61 72 6b 65 72 73 2e 0a 0a 20 20 20 20 20 ST.of.numbers.or.markers........
2df20 20 20 20 20 20 28 2d 6d 69 6e 20 27 28 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 .....(-min.'(0))................
2df40 87 92 20 30 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 69 6e 20 27 28 33 20 32 20 31 29 29 0a 20 ...0...........(-min.'(3.2.1))..
2df60 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d .................1...........(-m
2df80 69 6e 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 in.'(1.2.3))...................1
2dfa0 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6d 69 6e 2d 62 79 20 28 63 6f 6d 70 61 72 61 ...--.Function:.-min-by.(compara
2dfc0 74 6f 72 20 6c 69 73 74 29 0a 20 20 20 20 20 54 61 6b 65 20 61 20 63 6f 6d 70 61 72 69 73 6f 6e tor.list)......Take.a.comparison
2dfe0 20 66 75 6e 63 74 69 6f 6e 20 43 4f 4d 50 41 52 41 54 4f 52 20 61 6e 64 20 61 20 4c 49 53 54 20 .function.COMPARATOR.and.a.LIST.
2e000 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 0a 20 20 20 20 20 6c 65 61 73 74 20 65 6c 65 6d 65 6e and.return.the......least.elemen
2e020 74 20 6f 66 20 74 68 65 20 6c 69 73 74 20 62 79 20 74 68 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 t.of.the.list.by.the.comparison.
2e040 66 75 6e 63 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 20 63 6f 6d 62 69 6e 61 function........See.also.combina
2e060 74 6f 72 20 e2 80 98 2d 6f 6e e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6f 6e 3a 3a 29 20 77 68 69 63 tor....-on....(*note.-on::).whic
2e080 68 20 63 61 6e 20 74 72 61 6e 73 66 6f 72 6d 20 74 68 65 0a 20 20 20 20 20 76 61 6c 75 65 73 20 h.can.transform.the......values.
2e0a0 62 65 66 6f 72 65 20 63 6f 6d 70 61 72 69 6e 67 20 74 68 65 6d 2e 0a 0a 20 20 20 20 20 20 20 20 before.comparing.them...........
2e0c0 20 20 28 2d 6d 69 6e 2d 62 79 20 27 3e 20 27 28 34 20 33 20 36 20 31 29 29 0a 20 20 20 20 20 20 ..(-min-by.'>.'(4.3.6.1)).......
2e0e0 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 69 6e 2d 62 ............1...........(--min-b
2e100 79 20 28 3e 20 28 63 61 72 20 69 74 29 20 28 63 61 72 20 6f 74 68 65 72 29 29 20 27 28 28 31 20 y.(>.(car.it).(car.other)).'((1.
2e120 32 20 33 29 20 28 32 29 20 28 33 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 2.3).(2).(3.2)))................
2e140 87 92 20 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6d 69 6e 2d 62 79 20 28 ...(1.2.3)...........(--min-by.(
2e160 3e 20 28 6c 65 6e 67 74 68 20 69 74 29 20 28 6c 65 6e 67 74 68 20 6f 74 68 65 72 29 29 20 27 28 >.(length.it).(length.other)).'(
2e180 28 31 20 32 20 33 29 20 28 32 29 20 28 33 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (1.2.3).(2).(3.2))).............
2e1a0 20 20 e2 87 92 20 28 32 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6d 61 78 20 28 6c ......(2)...--.Function:.-max.(l
2e1c0 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 6c 61 72 67 65 73 74 20 76 61 6c ist)......Return.the.largest.val
2e1e0 75 65 20 66 72 6f 6d 20 4c 49 53 54 20 6f 66 20 6e 75 6d 62 65 72 73 20 6f 72 20 6d 61 72 6b 65 ue.from.LIST.of.numbers.or.marke
2e200 72 73 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 78 20 27 28 30 29 29 0a 20 20 20 20 20 rs.............(-max.'(0))......
2e220 20 20 20 20 20 20 20 20 20 e2 87 92 20 30 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 78 20 27 .............0...........(-max.'
2e240 28 33 20 32 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 33 0a 20 20 20 (3.2.1))...................3....
2e260 20 20 20 20 20 20 20 28 2d 6d 61 78 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 .......(-max.'(1.2.3))..........
2e280 20 20 20 20 20 e2 87 92 20 33 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6d 61 78 2d 62 .........3...--.Function:.-max-b
2e2a0 79 20 28 63 6f 6d 70 61 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 20 20 20 54 61 6b 65 20 61 20 y.(comparator.list)......Take.a.
2e2c0 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 43 4f 4d 50 41 52 41 54 4f 52 20 61 comparison.function.COMPARATOR.a
2e2e0 6e 64 20 61 20 4c 49 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 0a 20 20 20 20 20 67 72 nd.a.LIST.and.return.the......gr
2e300 65 61 74 65 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 6c 69 73 74 20 62 79 20 74 68 eatest.element.of.the.list.by.th
2e320 65 20 63 6f 6d 70 61 72 69 73 6f 6e 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 53 65 65 e.comparison.function........See
2e340 20 61 6c 73 6f 20 63 6f 6d 62 69 6e 61 74 6f 72 20 e2 80 98 2d 6f 6e e2 80 99 20 28 2a 6e 6f 74 .also.combinator....-on....(*not
2e360 65 20 2d 6f 6e 3a 3a 29 20 77 68 69 63 68 20 63 61 6e 20 74 72 61 6e 73 66 6f 72 6d 20 74 68 65 e.-on::).which.can.transform.the
2e380 0a 20 20 20 20 20 76 61 6c 75 65 73 20 62 65 66 6f 72 65 20 63 6f 6d 70 61 72 69 6e 67 20 74 68 ......values.before.comparing.th
2e3a0 65 6d 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 78 2d 62 79 20 27 3e 20 27 28 34 20 33 em.............(-max-by.'>.'(4.3
2e3c0 20 36 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 36 0a 20 20 20 20 20 .6.1))...................6......
2e3e0 20 20 20 20 20 28 2d 2d 6d 61 78 2d 62 79 20 28 3e 20 28 63 61 72 20 69 74 29 20 28 63 61 72 20 .....(--max-by.(>.(car.it).(car.
2e400 6f 74 68 65 72 29 29 20 27 28 28 31 20 32 20 33 29 20 28 32 29 20 28 33 20 32 29 29 29 0a 20 20 other)).'((1.2.3).(2).(3.2)))...
2e420 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 ................(3.2)...........
2e440 28 2d 2d 6d 61 78 2d 62 79 20 28 3e 20 28 6c 65 6e 67 74 68 20 69 74 29 20 28 6c 65 6e 67 74 68 (--max-by.(>.(length.it).(length
2e460 20 6f 74 68 65 72 29 29 20 27 28 28 31 20 32 20 33 29 20 28 32 29 20 28 33 20 32 29 29 29 0a 20 .other)).'((1.2.3).(2).(3.2)))..
2e480 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 0a 20 2d 2d 20 46 75 .................(1.2.3)...--.Fu
2e4a0 6e 63 74 69 6f 6e 3a 20 2d 66 72 65 71 75 65 6e 63 69 65 73 20 28 6c 69 73 74 29 0a 20 20 20 20 nction:.-frequencies.(list).....
2e4c0 20 43 6f 75 6e 74 20 74 68 65 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 65 61 63 68 20 64 .Count.the.occurrences.of.each.d
2e4e0 69 73 74 69 6e 63 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 52 istinct.element.of.LIST........R
2e500 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 28 45 4c 45 4d 45 4e 54 20 2e 20 20 4e 29 eturn.an.alist.of.(ELEMENT....N)
2e520 2c 20 77 68 65 72 65 20 65 61 63 68 20 45 4c 45 4d 45 4e 54 20 6f 63 63 75 72 73 20 4e 0a 20 20 ,.where.each.ELEMENT.occurs.N...
2e540 20 20 20 74 69 6d 65 73 20 69 6e 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 54 68 65 20 74 65 73 74 ...times.in.LIST........The.test
2e560 20 66 6f 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 e2 80 98 65 71 .for.equality.is.done.with....eq
2e580 75 61 6c e2 80 99 2c 20 6f 72 20 77 69 74 68 20 e2 80 98 2d 63 6f 6d 70 61 72 65 2d 66 6e e2 80 ual...,.or.with....-compare-fn..
2e5a0 99 0a 20 20 20 20 20 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e .......if.that.is.non-...nil....
2e5c0 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 20 e2 80 98 2d 63 6f 75 6e 74 e2 80 99 20 28 2a 6e .......See.also....-count....(*n
2e5e0 6f 74 65 20 2d 63 6f 75 6e 74 3a 3a 29 20 61 6e 64 20 e2 80 98 2d 67 72 6f 75 70 2d 62 79 e2 80 ote.-count::).and....-group-by..
2e600 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 67 72 6f 75 70 2d 62 79 3a 3a 29 2e 0a 0a 20 20 20 ..(*note......-group-by::)......
2e620 20 20 20 20 20 20 20 28 2d 66 72 65 71 75 65 6e 63 69 65 73 20 28 29 29 0a 20 20 20 20 20 20 20 .......(-frequencies.())........
2e640 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 72 65 71 75 65 ...........()...........(-freque
2e660 6e 63 69 65 73 20 27 28 31 20 32 20 33 20 31 20 32 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 ncies.'(1.2.3.1.2.1))...........
2e680 20 20 20 20 e2 87 92 20 28 28 31 20 2e 20 33 29 20 28 32 20 2e 20 32 29 20 28 33 20 2e 20 31 29 ........((1...3).(2...2).(3...1)
2e6a0 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 2d 63 6f 6d 70 61 72 65 2d 66 6e 20 23 )...........(let.((-compare-fn.#
2e6c0 27 73 74 72 69 6e 67 3d 29 29 20 28 2d 66 72 65 71 75 65 6e 63 69 65 73 20 27 28 61 20 22 61 22 'string=)).(-frequencies.'(a."a"
2e6e0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 61 20 2e 20 32 29 29 0a )))...................((a...2)).
2e700 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 55 6e 66 6f 6c ...File:.dash.info,..Node:.Unfol
2e720 64 69 6e 67 2c 20 20 4e 65 78 74 3a 20 50 72 65 64 69 63 61 74 65 73 2c 20 20 50 72 65 76 3a 20 ding,..Next:.Predicates,..Prev:.
2e740 52 65 64 75 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 35 20 Reductions,..Up:.Functions..2.5.
2e760 55 6e 66 6f 6c 64 69 6e 67 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4f 70 65 72 61 74 69 Unfolding.=============..Operati
2e780 6f 6e 73 20 64 75 61 6c 20 74 6f 20 72 65 64 75 63 74 69 6f 6e 73 2c 20 62 75 69 6c 64 69 6e 67 ons.dual.to.reductions,.building
2e7a0 20 6c 69 73 74 73 20 66 72 6f 6d 20 61 20 73 65 65 64 20 76 61 6c 75 65 20 72 61 74 68 65 72 0a .lists.from.a.seed.value.rather.
2e7c0 74 68 61 6e 20 63 6f 6e 73 75 6d 69 6e 67 20 61 20 6c 69 73 74 20 74 6f 20 70 72 6f 64 75 63 65 than.consuming.a.list.to.produce
2e7e0 20 61 20 73 69 6e 67 6c 65 20 76 61 6c 75 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 .a.single.value....--.Function:.
2e800 2d 69 74 65 72 61 74 65 20 28 66 75 6e 20 69 6e 69 74 20 6e 29 0a 20 20 20 20 20 52 65 74 75 72 -iterate.(fun.init.n)......Retur
2e820 6e 20 61 20 6c 69 73 74 20 6f 66 20 69 74 65 72 61 74 65 64 20 61 70 70 6c 69 63 61 74 69 6f 6e n.a.list.of.iterated.application
2e840 73 20 6f 66 20 46 55 4e 20 74 6f 20 49 4e 49 54 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 6d 65 61 s.of.FUN.to.INIT........This.mea
2e860 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 0a 20 20 20 20 20 28 49 4e ns.a.list.of.the.form:.......(IN
2e880 49 54 20 28 46 55 4e 20 49 4e 49 54 29 20 28 46 55 4e 20 28 46 55 4e 20 49 4e 49 54 29 29 20 2e IT.(FUN.INIT).(FUN.(FUN.INIT))..
2e8a0 2e 2e 29 0a 0a 20 20 20 20 20 4e 20 69 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 ..).......N.is.the.length.of.the
2e8c0 20 72 65 74 75 72 6e 65 64 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 74 65 .returned.list.............(-ite
2e8e0 72 61 74 65 20 23 27 31 2b 20 31 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 rate.#'1+.1.10).................
2e900 92 20 28 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20 39 20 31 30 29 0a 20 20 20 20 20 20 20 ..(1.2.3.4.5.6.7.8.9.10)........
2e920 20 20 20 28 2d 69 74 65 72 61 74 65 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2b 20 78 20 78 29 ...(-iterate.(lambda.(x).(+.x.x)
2e940 29 20 32 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 34 20 38 20 ).2.5)...................(2.4.8.
2e960 31 36 20 33 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 69 74 65 72 61 74 65 20 28 2a 20 69 16.32)...........(--iterate.(*.i
2e980 74 20 69 74 29 20 32 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 t.it).2.5)...................(2.
2e9a0 34 20 31 36 20 32 35 36 20 36 35 35 33 36 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 4.16.256.65536)...--.Function:.-
2e9c0 75 6e 66 6f 6c 64 20 28 66 75 6e 20 73 65 65 64 29 0a 20 20 20 20 20 42 75 69 6c 64 20 61 20 6c unfold.(fun.seed)......Build.a.l
2e9e0 69 73 74 20 66 72 6f 6d 20 53 45 45 44 20 75 73 69 6e 67 20 46 55 4e 2e 0a 0a 20 20 20 20 20 54 ist.from.SEED.using.FUN........T
2ea00 68 69 73 20 69 73 20 22 64 75 61 6c 22 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 e2 80 98 2d 72 his.is."dual".operation.to....-r
2ea20 65 64 75 63 65 2d 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 72 3a 3a 29 3a 20 educe-r....(*note.-reduce-r::):.
2ea40 77 68 69 6c 65 0a 20 20 20 20 20 2d 72 65 64 75 63 65 2d 72 20 63 6f 6e 73 75 6d 65 73 20 61 20 while......-reduce-r.consumes.a.
2ea60 6c 69 73 74 20 74 6f 20 70 72 6f 64 75 63 65 20 61 20 73 69 6e 67 6c 65 20 76 61 6c 75 65 2c 20 list.to.produce.a.single.value,.
2ea80 e2 80 98 2d 75 6e 66 6f 6c 64 e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 75 6e 66 6f 6c ...-unfold.........(*note.-unfol
2eaa0 64 3a 3a 29 20 74 61 6b 65 73 20 61 20 73 65 65 64 20 76 61 6c 75 65 20 61 6e 64 20 62 75 69 6c d::).takes.a.seed.value.and.buil
2eac0 64 73 20 61 20 28 70 6f 74 65 6e 74 69 61 6c 6c 79 0a 20 20 20 20 20 69 6e 66 69 6e 69 74 65 21 ds.a.(potentially......infinite!
2eae0 29 20 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 46 55 4e 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e )..list........FUN.should.return
2eb00 20 e2 80 98 6e 69 6c e2 80 99 20 74 6f 20 73 74 6f 70 20 74 68 65 20 67 65 6e 65 72 61 74 69 6e ....nil....to.stop.the.generatin
2eb20 67 20 70 72 6f 63 65 73 73 2c 20 6f 72 20 61 20 63 6f 6e 73 0a 20 20 20 20 20 28 41 20 2e 20 20 g.process,.or.a.cons......(A....
2eb40 42 29 2c 20 77 68 65 72 65 20 41 20 77 69 6c 6c 20 62 65 20 70 72 65 70 65 6e 64 65 64 20 74 6f B),.where.A.will.be.prepended.to
2eb60 20 74 68 65 20 72 65 73 75 6c 74 20 61 6e 64 20 42 20 69 73 20 74 68 65 20 6e 65 77 0a 20 20 20 .the.result.and.B.is.the.new....
2eb80 20 20 73 65 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 66 6f 6c 64 20 28 6c 61 6d ..seed.............(-unfold.(lam
2eba0 62 64 61 20 28 78 29 20 28 75 6e 6c 65 73 73 20 28 3d 20 78 20 30 29 20 28 63 6f 6e 73 20 78 20 bda.(x).(unless.(=.x.0).(cons.x.
2ebc0 28 31 2d 20 78 29 29 29 29 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 (1-.x)))).10)...................
2ebe0 28 31 30 20 39 20 38 20 37 20 36 20 35 20 34 20 33 20 32 20 31 29 0a 20 20 20 20 20 20 20 20 20 (10.9.8.7.6.5.4.3.2.1)..........
2ec00 20 28 2d 2d 75 6e 66 6f 6c 64 20 28 77 68 65 6e 20 69 74 20 28 63 6f 6e 73 20 69 74 20 28 63 64 .(--unfold.(when.it.(cons.it.(cd
2ec20 72 20 69 74 29 29 29 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 r.it))).'(1.2.3.4)).............
2ec40 20 20 e2 87 92 20 28 28 31 20 32 20 33 20 34 29 20 28 32 20 33 20 34 29 20 28 33 20 34 29 20 28 ......((1.2.3.4).(2.3.4).(3.4).(
2ec60 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 75 6e 66 6f 6c 64 20 28 77 68 65 6e 20 69 74 4))...........(--unfold.(when.it
2ec80 20 28 63 6f 6e 73 20 69 74 20 28 62 75 74 6c 61 73 74 20 69 74 29 29 29 20 27 28 31 20 32 20 33 .(cons.it.(butlast.it))).'(1.2.3
2eca0 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 20 34 .4))...................((1.2.3.4
2ecc0 29 20 28 31 20 32 20 33 29 20 28 31 20 32 29 20 28 31 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 ).(1.2.3).(1.2).(1))...--.Functi
2ece0 6f 6e 3a 20 2d 72 65 70 65 61 74 20 28 6e 20 78 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 on:.-repeat.(n.x)......Return.a.
2ed00 6e 65 77 20 6c 69 73 74 20 6f 66 20 6c 65 6e 67 74 68 20 4e 20 77 69 74 68 20 65 61 63 68 20 65 new.list.of.length.N.with.each.e
2ed20 6c 65 6d 65 6e 74 20 62 65 69 6e 67 20 58 2e 20 20 52 65 74 75 72 6e 0a 20 20 20 20 20 e2 80 98 lement.being.X...Return.........
2ed40 6e 69 6c e2 80 99 20 69 66 20 4e 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20 31 2e 0a 0a 20 20 20 nil....if.N.is.less.than.1......
2ed60 20 20 20 20 20 20 20 28 2d 72 65 70 65 61 74 20 33 20 3a 61 29 0a 20 20 20 20 20 20 20 20 20 20 .......(-repeat.3.:a)...........
2ed80 20 20 20 20 e2 87 92 20 28 3a 61 20 3a 61 20 3a 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 ........(:a.:a.:a)...........(-r
2eda0 65 70 65 61 74 20 31 20 3a 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 3a epeat.1.:a)...................(:
2edc0 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 65 70 65 61 74 20 30 20 3a 61 29 0a 20 20 20 20 a)...........(-repeat.0.:a).....
2ede0 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 ..............()...--.Function:.
2ee00 2d 63 79 63 6c 65 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 6e 20 69 6e 66 -cycle.(list)......Return.an.inf
2ee20 69 6e 69 74 65 20 63 69 72 63 75 6c 61 72 20 63 6f 70 79 20 6f 66 20 4c 49 53 54 2e 20 20 54 68 inite.circular.copy.of.LIST...Th
2ee40 65 20 72 65 74 75 72 6e 65 64 20 6c 69 73 74 20 63 79 63 6c 65 73 0a 20 20 20 20 20 74 68 72 6f e.returned.list.cycles......thro
2ee60 75 67 68 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 61 6e 64 20 72 65 70 ugh.the.elements.of.LIST.and.rep
2ee80 65 61 74 73 20 66 72 6f 6d 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 2e 0a 0a 20 20 20 20 20 20 eats.from.the.beginning.........
2eea0 20 20 20 20 28 2d 74 61 6b 65 20 35 20 28 2d 63 79 63 6c 65 20 27 28 31 20 32 20 33 29 29 29 0a ....(-take.5.(-cycle.'(1.2.3))).
2eec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 31 20 32 29 0a 20 20 ..................(1.2.3.1.2)...
2eee0 20 20 20 20 20 20 20 20 28 2d 74 61 6b 65 20 37 20 28 2d 63 79 63 6c 65 20 27 28 31 20 22 61 6e ........(-take.7.(-cycle.'(1."an
2ef00 64 22 20 33 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 22 61 6e d".3)))...................(1."an
2ef20 64 22 20 33 20 31 20 22 61 6e 64 22 20 33 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 d".3.1."and".3.1)...........(-zi
2ef40 70 2d 6c 69 73 74 73 20 28 2d 63 79 63 6c 65 20 27 28 33 29 29 20 27 28 31 20 32 29 29 0a 20 20 p-lists.(-cycle.'(3)).'(1.2))...
2ef60 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 33 20 31 29 20 28 33 20 32 29 29 0a 0a 1f ................((3.1).(3.2))...
2ef80 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 50 72 65 64 69 63 61 .File:.dash.info,..Node:.Predica
2efa0 74 65 73 2c 20 20 4e 65 78 74 3a 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2c 20 20 50 72 65 76 3a tes,..Next:.Partitioning,..Prev:
2efc0 20 55 6e 66 6f 6c 64 69 6e 67 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 36 20 .Unfolding,..Up:.Functions..2.6.
2efe0 50 72 65 64 69 63 61 74 65 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 52 65 64 75 63 Predicates.==============..Reduc
2f000 74 69 6f 6e 73 20 6f 66 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6c 69 73 74 73 20 74 6f 20 61 20 tions.of.one.or.more.lists.to.a.
2f020 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 boolean.value....--.Function:.-s
2f040 6f 6d 65 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 28 50 52 45 ome.(pred.list)......Return.(PRE
2f060 44 20 78 29 20 66 6f 72 20 74 68 65 20 66 69 72 73 74 20 4c 49 53 54 20 69 74 65 6d 20 77 68 65 D.x).for.the.first.LIST.item.whe
2f080 72 65 20 28 50 52 45 44 20 78 29 20 69 73 0a 20 20 20 20 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 re.(PRED.x).is......non-...nil..
2f0a0 99 2c 20 65 6c 73 65 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 .,.else....nil...........Alias:.
2f0c0 e2 80 98 2d 61 6e 79 e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 ...-any...........This.function.
2f0e0 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 ..s.anaphoric.counterpart.is....
2f100 2d 2d 73 6f 6d 65 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 6d 65 20 23 27 73 --some................(-some.#'s
2f120 74 72 69 6e 67 70 20 27 28 31 20 22 32 22 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 tringp.'(1."2".3))..............
2f140 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 73 6f 6d 65 20 28 73 74 72 69 6e 67 .....t...........(--some.(string
2f160 2d 6d 61 74 63 68 2d 70 20 22 78 22 20 69 74 29 20 27 28 22 66 6f 6f 22 20 22 61 78 65 22 20 22 -match-p."x".it).'("foo"."axe"."
2f180 78 6f 72 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 xor"))...................1......
2f1a0 20 20 20 20 20 28 2d 2d 73 6f 6d 65 20 28 3d 20 69 74 2d 69 6e 64 65 78 20 33 29 20 27 28 30 20 .....(--some.(=.it-index.3).'(0.
2f1c0 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 1.2))...................nil...--
2f1e0 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 65 76 65 72 79 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 .Function:.-every.(pred.list)...
2f200 20 20 20 52 65 74 75 72 6e 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 66 20 50 52 45 44 20 ...Return.non-...nil....if.PRED.
2f220 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 66 6f 72 20 61 6c 6c 20 69 74 returns.non-...nil....for.all.it
2f240 65 6d 73 20 69 6e 20 4c 49 53 54 2e 0a 20 20 20 20 20 49 66 20 73 6f 2c 20 72 65 74 75 72 6e 20 ems.in.LIST.......If.so,.return.
2f260 74 68 65 20 6c 61 73 74 20 73 75 63 68 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 2e 20 20 4f the.last.such.result.of.PRED...O
2f280 74 68 65 72 77 69 73 65 2c 20 6f 6e 63 65 20 61 6e 0a 20 20 20 20 20 69 74 65 6d 20 69 73 20 72 therwise,.once.an......item.is.r
2f2a0 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 e2 80 eached.for.which.PRED.returns...
2f2c0 98 6e 69 6c e2 80 99 2c 20 72 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 20 77 69 74 68 6f 75 .nil...,.return....nil....withou
2f2e0 74 0a 20 20 20 20 20 63 61 6c 6c 69 6e 67 20 50 52 45 44 20 6f 6e 20 61 6e 79 20 66 75 72 74 68 t......calling.PRED.on.any.furth
2f300 65 72 20 4c 49 53 54 20 65 6c 65 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e er.LIST.elements........This.fun
2f320 63 74 69 6f 6e 20 69 73 20 6c 69 6b 65 20 e2 80 98 2d 65 76 65 72 79 2d 70 e2 80 99 2c 20 62 75 ction.is.like....-every-p...,.bu
2f340 74 20 6f 6e 20 73 75 63 63 65 73 73 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 0a 20 20 t.on.success.returns.the.last...
2f360 20 20 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 20 ...non-...nil....result.of.PRED.
2f380 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73 74 20 e2 80 98 74 e2 80 99 2e 0a 0a 20 20 20 20 20 54 instead.of.just....t...........T
2f3a0 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 his.function...s.anaphoric.count
2f3c0 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 65 76 65 72 79 e2 80 99 2e 0a 0a 20 20 20 20 20 20 erpart.is....--every............
2f3e0 20 20 20 20 28 2d 65 76 65 72 79 20 23 27 6e 75 6d 62 65 72 70 20 27 28 31 20 32 20 33 29 29 0a ....(-every.#'numberp.'(1.2.3)).
2f400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d ..................t...........(-
2f420 2d 65 76 65 72 79 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 78 22 20 69 74 29 20 27 -every.(string-match-p."x".it).'
2f440 28 22 61 78 65 22 20 22 78 6f 72 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 ("axe"."xor"))..................
2f460 20 30 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 65 76 65 72 79 20 28 3d 20 69 74 20 69 74 2d 69 .0...........(--every.(=.it.it-i
2f480 6e 64 65 78 29 20 27 28 30 20 31 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 ndex).'(0.1.3)).................
2f4a0 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 61 6e 79 3f 20 28 70 72 65 64 ..nil...--.Function:.-any?.(pred
2f4c0 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 e2 80 98 74 e2 80 99 20 69 66 20 28 50 .list)......Return....t....if.(P
2f4e0 52 45 44 20 58 29 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 66 6f 72 20 61 6e 79 20 RED.X).is.non-...nil....for.any.
2f500 58 20 69 6e 20 4c 49 53 54 2c 20 65 6c 73 65 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 X.in.LIST,.else....nil..........
2f520 20 41 6c 69 61 73 3a 20 e2 80 98 2d 61 6e 79 2d 70 e2 80 99 2c 20 e2 80 98 2d 73 6f 6d 65 3f e2 .Alias:....-any-p...,....-some?.
2f540 80 99 2c 20 e2 80 98 2d 73 6f 6d 65 2d 70 e2 80 99 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 61 ..,....-some-p...............(-a
2f560 6e 79 3f 20 23 27 6e 75 6d 62 65 72 70 20 27 28 6e 69 6c 20 30 20 74 29 29 0a 20 20 20 20 20 20 ny?.#'numberp.'(nil.0.t)).......
2f580 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 61 6e 79 3f 20 23 ............t...........(-any?.#
2f5a0 27 6e 75 6d 62 65 72 70 20 27 28 6e 69 6c 20 74 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 'numberp.'(nil.t.t))............
2f5c0 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d 61 6e 79 3f 20 23 27 6e 75 .......nil...........(-any?.#'nu
2f5e0 6c 6c 20 27 28 31 20 33 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e ll.'(1.3.5))...................n
2f600 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 61 6c 6c 3f 20 28 70 72 65 64 20 6c 69 il...--.Function:.-all?.(pred.li
2f620 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 e2 80 98 74 e2 80 99 20 69 66 20 28 50 52 45 44 st)......Return....t....if.(PRED
2f640 20 58 29 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 66 6f 72 20 61 6c 6c 20 58 20 69 .X).is.non-...nil....for.all.X.i
2f660 6e 20 4c 49 53 54 2c 20 65 6c 73 65 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 20 20 20 20 20 49 6e 20 n.LIST,.else....nil..........In.
2f680 74 68 65 20 6c 61 74 74 65 72 20 63 61 73 65 2c 20 73 74 6f 70 20 61 66 74 65 72 20 74 68 65 20 the.latter.case,.stop.after.the.
2f6a0 66 69 72 73 74 20 58 20 66 6f 72 20 77 68 69 63 68 20 28 50 52 45 44 20 58 29 20 69 73 0a 20 20 first.X.for.which.(PRED.X).is...
2f6c0 20 20 20 e2 80 98 6e 69 6c e2 80 99 2c 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 20 50 52 ......nil...,.without.calling.PR
2f6e0 45 44 20 6f 6e 20 61 6e 79 20 73 75 62 73 65 71 75 65 6e 74 20 65 6c 65 6d 65 6e 74 73 20 6f 66 ED.on.any.subsequent.elements.of
2f700 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 54 68 65 20 73 69 6d 69 6c 61 72 20 66 75 6e 63 74 69 6f .LIST........The.similar.functio
2f720 6e 20 e2 80 98 2d 65 76 65 72 79 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 65 76 65 72 79 3a 3a 29 20 n....-every....(*note.-every::).
2f740 69 73 20 6d 6f 72 65 20 77 69 64 65 6c 79 0a 20 20 20 20 20 75 73 65 66 75 6c 2c 20 73 69 6e 63 is.more.widely......useful,.sinc
2f760 65 20 69 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 20 6e 6f 6e 2d e2 80 98 6e 69 6c e.it.returns.the.last.non-...nil
2f780 e2 80 99 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 44 20 69 6e 73 74 65 61 64 0a 20 20 20 20 20 ....result.of.PRED.instead......
2f7a0 6f 66 20 6a 75 73 74 20 e2 80 98 74 e2 80 99 20 6f 6e 20 73 75 63 63 65 73 73 2e 0a 0a 20 20 20 of.just....t....on.success......
2f7c0 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d 61 6c 6c 2d 70 e2 80 99 2c 20 e2 80 98 2d 65 76 65 72 79 ..Alias:....-all-p...,....-every
2f7e0 2d 70 e2 80 99 2c 20 e2 80 98 2d 65 76 65 72 79 3f e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 -p...,....-every?...........This
2f800 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 .function...s.anaphoric.counterp
2f820 61 72 74 20 69 73 20 e2 80 98 2d 2d 61 6c 6c 3f e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 art.is....--all?................
2f840 28 2d 61 6c 6c 3f 20 23 27 6e 75 6d 62 65 72 70 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 (-all?.#'numberp.'(1.2.3))......
2f860 20 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 61 6c 6c 3f 20 .............t...........(-all?.
2f880 23 27 6e 75 6d 62 65 72 70 20 27 28 32 20 74 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 #'numberp.'(2.t.6)).............
2f8a0 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 61 6c 6c 3f 20 28 3d 20 30 ......nil...........(--all?.(=.0
2f8c0 20 28 25 20 69 74 20 32 29 29 20 27 28 32 20 34 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(%.it.2)).'(2.4.6))............
2f8e0 20 20 20 e2 87 92 20 74 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6e 6f 6e 65 3f 20 28 .......t...--.Function:.-none?.(
2f900 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 e2 80 98 74 e2 80 99 20 69 pred.list)......Return....t....i
2f920 66 20 28 50 52 45 44 20 58 29 20 69 73 20 e2 80 98 6e 69 6c e2 80 99 20 66 6f 72 20 61 6c 6c 20 f.(PRED.X).is....nil....for.all.
2f940 58 20 69 6e 20 4c 49 53 54 2c 20 65 6c 73 65 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 X.in.LIST,.else....nil..........
2f960 20 41 6c 69 61 73 3a 20 e2 80 98 2d 6e 6f 6e 65 2d 70 e2 80 99 0a 0a 20 20 20 20 20 20 20 20 20 .Alias:....-none-p..............
2f980 20 28 2d 6e 6f 6e 65 3f 20 27 65 76 65 6e 3f 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 .(-none?.'even?.'(1.2.3)).......
2f9a0 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6e 6f 6e 65 ............nil...........(-none
2f9c0 3f 20 27 65 76 65 6e 3f 20 27 28 31 20 33 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ?.'even?.'(1.3.5))..............
2f9e0 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6e 6f 6e 65 3f 20 28 3d 20 30 20 28 .....t...........(--none?.(=.0.(
2fa00 25 20 69 74 20 32 29 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 %.it.2)).'(1.2.3))..............
2fa20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6f 6e 6c 79 2d 73 6f .....nil...--.Function:.-only-so
2fa40 6d 65 3f 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 e2 80 98 74 me?.(pred.list)......Return....t
2fa60 e2 80 99 20 69 66 20 64 69 66 66 65 72 65 6e 74 20 4c 49 53 54 20 69 74 65 6d 73 20 62 6f 74 68 ....if.different.LIST.items.both
2fa80 20 73 61 74 69 73 66 79 20 61 6e 64 20 64 6f 20 6e 6f 74 20 73 61 74 69 73 66 79 0a 20 20 20 20 .satisfy.and.do.not.satisfy.....
2faa0 20 50 52 45 44 2e 20 20 54 68 61 74 20 69 73 2c 20 69 66 20 50 52 45 44 20 72 65 74 75 72 6e 73 .PRED...That.is,.if.PRED.returns
2fac0 20 62 6f 74 68 20 e2 80 98 6e 69 6c e2 80 99 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 .both....nil....for.at.least.one
2fae0 20 69 74 65 6d 2c 0a 20 20 20 20 20 61 6e 64 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 66 6f .item,......and.non-...nil....fo
2fb00 72 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 6f 74 68 65 72 20 69 74 65 6d 20 69 6e 20 4c 49 53 r.at.least.one.other.item.in.LIS
2fb20 54 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 0a 20 20 20 20 20 61 6c 6c T...Return....nil....if......all
2fb40 20 69 74 65 6d 73 20 73 61 74 69 73 66 79 20 74 68 65 20 70 72 65 64 69 63 61 74 65 20 6f 72 20 .items.satisfy.the.predicate.or.
2fb60 6e 6f 6e 65 20 6f 66 20 74 68 65 6d 20 64 6f 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 none.of.them.do........Alias:...
2fb80 98 2d 6f 6e 6c 79 2d 73 6f 6d 65 2d 70 e2 80 99 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6f 6e .-only-some-p...............(-on
2fba0 6c 79 2d 73 6f 6d 65 3f 20 27 65 76 65 6e 3f 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 ly-some?.'even?.'(1.2.3)).......
2fbc0 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6f 6e 6c 79 2d 73 ............t...........(-only-s
2fbe0 6f 6d 65 3f 20 27 65 76 65 6e 3f 20 27 28 31 20 33 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 ome?.'even?.'(1.3.5))...........
2fc00 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6f 6e 6c 79 2d 73 6f 6d ........nil...........(-only-som
2fc20 65 3f 20 27 65 76 65 6e 3f 20 27 28 32 20 34 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 e?.'even?.'(2.4.6)).............
2fc40 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 63 6f 6e 74 61 69 ......nil...--.Function:.-contai
2fc60 6e 73 3f 20 28 6c 69 73 74 20 65 6c 65 6d 65 6e 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 6e ns?.(list.element)......Return.n
2fc80 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 66 20 4c 49 53 54 20 63 6f 6e 74 61 69 6e 73 20 45 4c on-...nil....if.LIST.contains.EL
2fca0 45 4d 45 4e 54 2e 0a 0a 20 20 20 20 20 54 68 65 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 6c 69 EMENT........The.test.for.equali
2fcc0 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 e2 80 98 65 71 75 61 6c e2 80 99 2c 20 6f 72 20 ty.is.done.with....equal...,.or.
2fce0 77 69 74 68 20 e2 80 98 2d 63 6f 6d 70 61 72 65 2d 66 6e e2 80 99 0a 20 20 20 20 20 69 66 20 74 with....-compare-fn.........if.t
2fd00 68 61 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 20 20 41 73 20 77 69 74 68 20 e2 hat.is.non-...nil......As.with..
2fd20 80 98 6d 65 6d 62 65 72 e2 80 99 2c 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 ..member...,.the.return.value.is
2fd40 0a 20 20 20 20 20 61 63 74 75 61 6c 6c 79 20 74 68 65 20 74 61 69 6c 20 6f 66 20 4c 49 53 54 20 ......actually.the.tail.of.LIST.
2fd60 77 68 6f 73 65 20 63 61 72 20 69 73 20 45 4c 45 4d 45 4e 54 2e 0a 0a 20 20 20 20 20 41 6c 69 61 whose.car.is.ELEMENT........Alia
2fd80 73 3a 20 e2 80 98 2d 63 6f 6e 74 61 69 6e 73 2d 70 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 s:....-contains-p...............
2fda0 20 28 2d 63 6f 6e 74 61 69 6e 73 3f 20 27 28 31 20 32 20 33 29 20 31 29 0a 20 20 20 20 20 20 20 .(-contains?.'(1.2.3).1)........
2fdc0 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 ...........(1.2.3)...........(-c
2fde0 6f 6e 74 61 69 6e 73 3f 20 27 28 31 20 32 20 33 29 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 ontains?.'(1.2.3).2)............
2fe00 20 20 20 e2 87 92 20 28 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 74 61 69 6e .......(2.3)...........(-contain
2fe20 73 3f 20 27 28 31 20 32 20 33 29 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 s?.'(1.2.3).4)..................
2fe40 20 28 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 69 73 2d 70 72 65 66 69 78 3f 20 28 .()...--.Function:.-is-prefix?.(
2fe60 70 72 65 66 69 78 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 6e 6f 6e 2d e2 80 98 prefix.list)......Return.non-...
2fe80 6e 69 6c e2 80 99 20 69 66 20 50 52 45 46 49 58 20 69 73 20 61 20 70 72 65 66 69 78 20 6f 66 20 nil....if.PREFIX.is.a.prefix.of.
2fea0 4c 49 53 54 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d 69 73 2d 70 72 65 66 69 78 LIST........Alias:....-is-prefix
2fec0 2d 70 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 73 2d 70 72 65 66 69 78 3f 20 27 -p................(-is-prefix?.'
2fee0 28 31 20 32 20 33 29 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 (1.2.3).'(1.2.3.4.5))...........
2ff00 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 73 2d 70 72 65 66 69 78 3f ........t...........(-is-prefix?
2ff20 20 27 28 31 20 32 20 33 20 34 20 35 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 .'(1.2.3.4.5).'(1.2.3)).........
2ff40 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 73 2d 70 72 65 ..........nil...........(-is-pre
2ff60 66 69 78 3f 20 27 28 31 20 33 29 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 fix?.'(1.3).'(1.2.3.4.5)).......
2ff80 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d ............nil...--.Function:.-
2ffa0 69 73 2d 73 75 66 66 69 78 3f 20 28 73 75 66 66 69 78 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 is-suffix?.(suffix.list)......Re
2ffc0 74 75 72 6e 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 66 20 53 55 46 46 49 58 20 69 73 20 turn.non-...nil....if.SUFFIX.is.
2ffe0 61 20 73 75 66 66 69 78 20 6f 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 a.suffix.of.LIST........Alias:..
30000 80 98 2d 69 73 2d 73 75 66 66 69 78 2d 70 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d ..-is-suffix-p................(-
30020 69 73 2d 73 75 66 66 69 78 3f 20 27 28 33 20 34 20 35 29 20 27 28 31 20 32 20 33 20 34 20 35 29 is-suffix?.'(3.4.5).'(1.2.3.4.5)
30040 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 )...................t...........
30060 28 2d 69 73 2d 73 75 66 66 69 78 3f 20 27 28 31 20 32 20 33 20 34 20 35 29 20 27 28 33 20 34 20 (-is-suffix?.'(1.2.3.4.5).'(3.4.
30080 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 5))...................nil.......
300a0 20 20 20 20 28 2d 69 73 2d 73 75 66 66 69 78 3f 20 27 28 33 20 35 29 20 27 28 31 20 32 20 33 20 ....(-is-suffix?.'(3.5).'(1.2.3.
300c0 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 4.5))...................nil...--
300e0 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 69 73 2d 69 6e 66 69 78 3f 20 28 69 6e 66 69 78 20 6c 69 73 .Function:.-is-infix?.(infix.lis
30100 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 66 20 t)......Return.non-...nil....if.
30120 49 4e 46 49 58 20 69 73 20 69 6e 66 69 78 20 6f 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 54 68 INFIX.is.infix.of.LIST........Th
30140 69 73 20 6f 70 65 72 61 74 69 6f 6e 20 72 75 6e 73 20 69 6e 20 4f 28 6e 5e 32 29 20 74 69 6d 65 is.operation.runs.in.O(n^2).time
30160 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d 69 73 2d 69 6e 66 69 78 2d 70 e2 80 99 0a .......Alias:....-is-infix-p....
30180 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 73 2d 69 6e 66 69 78 3f 20 27 28 31 20 32 20 33 29 20 ...........(-is-infix?.'(1.2.3).
301a0 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 '(1.2.3.4.5))...................
301c0 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 73 2d 69 6e 66 69 78 3f 20 27 28 32 20 33 20 34 29 t...........(-is-infix?.'(2.3.4)
301e0 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 .'(1.2.3.4.5))..................
30200 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 73 2d 69 6e 66 69 78 3f 20 27 28 33 20 34 20 35 .t...........(-is-infix?.'(3.4.5
30220 29 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 ).'(1.2.3.4.5)).................
30240 92 20 74 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 28 ..t...--.Function:.-cons-pair?.(
30260 6f 62 6a 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 obj)......Return.non-...nil....i
30280 66 20 4f 42 4a 20 69 73 20 61 20 74 72 75 65 20 63 6f 6e 73 20 70 61 69 72 2e 20 20 54 68 61 74 f.OBJ.is.a.true.cons.pair...That
302a0 20 69 73 2c 20 61 20 63 6f 6e 73 20 28 41 20 2e 0a 20 20 20 20 20 42 29 20 77 68 65 72 65 20 42 .is,.a.cons.(A........B).where.B
302c0 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 .is.not.a.list........Alias:....
302e0 2d 63 6f 6e 73 2d 70 61 69 72 2d 70 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f -cons-pair-p................(-co
30300 6e 73 2d 70 61 69 72 3f 20 27 28 31 20 2e 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ns-pair?.'(1...2))..............
30320 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 27 28 .....t...........(-cons-pair?.'(
30340 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 1.2))...................nil.....
30360 20 20 20 20 20 20 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 27 28 31 29 29 0a 20 20 20 20 20 20 20 ......(-cons-pair?.'(1))........
30380 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 ...........nil....File:.dash.inf
303a0 6f 2c 20 20 4e 6f 64 65 3a 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2c 20 20 4e 65 78 74 3a 20 49 o,..Node:.Partitioning,..Next:.I
303c0 6e 64 65 78 69 6e 67 2c 20 20 50 72 65 76 3a 20 50 72 65 64 69 63 61 74 65 73 2c 20 20 55 70 3a ndexing,..Prev:.Predicates,..Up:
303e0 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 37 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 0a 3d 3d 3d .Functions..2.7.Partitioning.===
30400 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 6e 63 74 69 6f 6e 73 20 70 61 72 74 69 74 69 =============..Functions.partiti
30420 6f 6e 69 6e 67 20 74 68 65 20 69 6e 70 75 74 20 6c 69 73 74 20 69 6e 74 6f 20 61 20 6c 69 73 74 oning.the.input.list.into.a.list
30440 20 6f 66 20 6c 69 73 74 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 70 6c 69 74 .of.lists....--.Function:.-split
30460 2d 61 74 20 28 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 53 70 6c 69 74 20 4c 49 53 54 20 69 6e 74 -at.(n.list)......Split.LIST.int
30480 6f 20 74 77 6f 20 73 75 62 6c 69 73 74 73 20 61 66 74 65 72 20 74 68 65 20 4e 74 68 20 65 6c 65 o.two.sublists.after.the.Nth.ele
304a0 6d 65 6e 74 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 0a 20 20 20 20 20 61 20 6c 69 73 74 ment...The.result.is......a.list
304c0 20 6f 66 20 74 77 6f 20 65 6c 65 6d 65 6e 74 73 20 28 54 41 4b 45 20 44 52 4f 50 29 20 77 68 65 .of.two.elements.(TAKE.DROP).whe
304e0 72 65 20 54 41 4b 45 20 69 73 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 74 68 65 0a 20 20 20 re.TAKE.is.a.new.list.of.the....
30500 20 20 66 69 72 73 74 20 4e 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 2c 20 61 6e 64 20 ..first.N.elements.of.LIST,.and.
30520 44 52 4f 50 20 69 73 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 6f DROP.is.the.remaining.elements.o
30540 66 0a 20 20 20 20 20 4c 49 53 54 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 2e 20 20 54 41 4b 45 20 f......LIST.(not.a.copy)...TAKE.
30560 61 6e 64 20 44 52 4f 50 20 61 72 65 20 6c 69 6b 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 66 and.DROP.are.like.the.results.of
30580 20 e2 80 98 2d 74 61 6b 65 e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 74 61 6b 65 3a 3a ....-take.........(*note.-take::
305a0 29 20 61 6e 64 20 e2 80 98 2d 64 72 6f 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 64 72 6f 70 3a 3a ).and....-drop....(*note.-drop::
305c0 29 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2c 20 62 75 74 20 74 68 65 0a 20 20 20 20 20 73 70 ),.respectively,.but.the......sp
305e0 6c 69 74 20 69 73 20 64 6f 6e 65 20 69 6e 20 61 20 73 69 6e 67 6c 65 20 6c 69 73 74 20 74 72 61 lit.is.done.in.a.single.list.tra
30600 76 65 72 73 61 6c 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 70 6c 69 74 2d 61 74 20 33 20 versal.............(-split-at.3.
30620 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 '(1.2.3.4.5))...................
30640 28 28 31 20 32 20 33 29 20 28 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 70 6c 69 ((1.2.3).(4.5))...........(-spli
30660 74 2d 61 74 20 31 37 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 t-at.17.'(1.2.3.4.5))...........
30680 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 20 34 20 35 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 ........((1.2.3.4.5).nil).......
306a0 20 20 20 20 28 2d 73 70 6c 69 74 2d 61 74 20 30 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 ....(-split-at.0.'(1.2.3.4.5))..
306c0 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 20 28 31 20 32 20 33 20 34 20 35 .................(nil.(1.2.3.4.5
306e0 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 70 6c 69 74 2d 77 69 74 68 20 28 70 ))...--.Function:.-split-with.(p
30700 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 53 70 6c 69 74 20 4c 49 53 54 20 69 6e 74 6f 20 61 red.list)......Split.LIST.into.a
30720 20 70 72 65 66 69 78 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 2c 20 61 6e 64 20 74 68 65 .prefix.satisfying.PRED,.and.the
30740 20 72 65 73 74 2e 20 20 54 68 65 20 66 69 72 73 74 0a 20 20 20 20 20 73 75 62 6c 69 73 74 20 69 .rest...The.first......sublist.i
30760 73 20 74 68 65 20 70 72 65 66 69 78 20 6f 66 20 4c 49 53 54 20 77 69 74 68 20 73 75 63 63 65 73 s.the.prefix.of.LIST.with.succes
30780 73 69 76 65 20 65 6c 65 6d 65 6e 74 73 20 73 61 74 69 73 66 79 69 6e 67 0a 20 20 20 20 20 50 52 sive.elements.satisfying......PR
307a0 45 44 2c 20 61 6e 64 20 74 68 65 20 73 65 63 6f 6e 64 20 73 75 62 6c 69 73 74 20 69 73 20 74 68 ED,.and.the.second.sublist.is.th
307c0 65 20 72 65 6d 61 69 6e 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 e.remaining.elements.that.do.not
307e0 2e 0a 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 6c 69 6b 65 20 70 65 72 66 6f 72 .......The.result.is.like.perfor
30800 6d 69 6e 67 0a 0a 20 20 20 20 20 28 28 2d 74 61 6b 65 2d 77 68 69 6c 65 20 50 52 45 44 20 4c 49 ming.......((-take-while.PRED.LI
30820 53 54 29 20 28 2d 64 72 6f 70 2d 77 68 69 6c 65 20 50 52 45 44 20 4c 49 53 54 29 29 0a 0a 20 20 ST).(-drop-while.PRED.LIST))....
30840 20 20 20 62 75 74 20 69 6e 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 61 20 73 69 6e 67 6c 65 20 ...but.in.no.more.than.a.single.
30860 70 61 73 73 20 74 68 72 6f 75 67 68 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d pass.through.LIST.............(-
30880 73 70 6c 69 74 2d 77 69 74 68 20 27 65 76 65 6e 3f 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 split-with.'even?.'(1.2.3.4))...
308a0 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 20 28 31 20 32 20 33 20 34 29 29 0a ................(nil.(1.2.3.4)).
308c0 20 20 20 20 20 20 20 20 20 20 28 2d 73 70 6c 69 74 2d 77 69 74 68 20 27 65 76 65 6e 3f 20 27 28 ..........(-split-with.'even?.'(
308e0 32 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 32 20 2.4.5.6))...................((2.
30900 34 29 20 28 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 73 70 6c 69 74 2d 77 69 74 4).(5.6))...........(--split-wit
30920 68 20 28 3c 20 69 74 20 34 29 20 27 28 31 20 32 20 33 20 34 20 33 20 32 20 31 29 29 0a 20 20 20 h.(<.it.4).'(1.2.3.4.3.2.1))....
30940 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 28 34 20 33 20 32 20 31 ...............((1.2.3).(4.3.2.1
30960 29 29 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 73 70 6c 69 74 2d 6f 6e 20 28 69 74 65 6d 20 6c ))...--.Macro:.-split-on.(item.l
30980 69 73 74 29 0a 20 20 20 20 20 53 70 6c 69 74 20 74 68 65 20 4c 49 53 54 20 65 61 63 68 20 74 69 ist)......Split.the.LIST.each.ti
309a0 6d 65 20 49 54 45 4d 20 69 73 20 66 6f 75 6e 64 2e 0a 0a 20 20 20 20 20 55 6e 6c 69 6b 65 20 e2 me.ITEM.is.found........Unlike..
309c0 80 98 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 70 61 72 74 69 ..-partition-by....(*note.-parti
309e0 74 69 6f 6e 2d 62 79 3a 3a 29 2c 20 74 68 65 20 49 54 45 4d 20 69 73 0a 20 20 20 20 20 64 69 73 tion-by::),.the.ITEM.is......dis
30a00 63 61 72 64 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 73 75 6c 74 73 2e 20 20 45 6d 70 74 79 20 carded.from.the.results...Empty.
30a20 6c 69 73 74 73 20 61 72 65 20 61 6c 73 6f 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 0a lists.are.also.removed.from.the.
30a40 20 20 20 20 20 72 65 73 75 6c 74 2e 0a 0a 20 20 20 20 20 43 6f 6d 70 61 72 69 73 6f 6e 20 69 73 .....result........Comparison.is
30a60 20 64 6f 6e 65 20 62 79 20 e2 80 98 65 71 75 61 6c e2 80 99 2e 0a 0a 20 20 20 20 20 53 65 65 20 .done.by....equal...........See.
30a80 61 6c 73 6f 20 e2 80 98 2d 73 70 6c 69 74 2d 77 68 65 6e e2 80 99 20 28 2a 6e 6f 74 65 20 2d 73 also....-split-when....(*note.-s
30aa0 70 6c 69 74 2d 77 68 65 6e 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 70 6c 69 74 2d plit-when::)............(-split-
30ac0 6f 6e 20 27 7c 20 27 28 4e 69 6c 20 7c 20 4c 65 61 66 20 61 20 7c 20 4e 6f 64 65 20 5b 54 72 65 on.'|.'(Nil.|.Leaf.a.|.Node.[Tre
30ae0 65 20 61 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 4e 69 6c 29 20 e.a]))...................((Nil).
30b00 28 4c 65 61 66 20 61 29 20 28 4e 6f 64 65 20 5b 54 72 65 65 20 61 5d 29 29 0a 20 20 20 20 20 20 (Leaf.a).(Node.[Tree.a])).......
30b20 20 20 20 20 28 2d 73 70 6c 69 74 2d 6f 6e 20 3a 65 6e 64 67 72 6f 75 70 20 27 28 22 61 22 20 22 ....(-split-on.:endgroup.'("a"."
30b40 62 22 20 3a 65 6e 64 67 72 6f 75 70 20 22 63 22 20 3a 65 6e 64 67 72 6f 75 70 20 22 64 22 20 22 b".:endgroup."c".:endgroup."d"."
30b60 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 22 61 22 20 22 62 22 e"))...................(("a"."b"
30b80 29 20 28 22 63 22 29 20 28 22 64 22 20 22 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 ).("c").("d"."e"))...........(-s
30ba0 70 6c 69 74 2d 6f 6e 20 3a 65 6e 64 67 72 6f 75 70 20 27 28 22 61 22 20 22 62 22 20 3a 65 6e 64 plit-on.:endgroup.'("a"."b".:end
30bc0 67 72 6f 75 70 20 3a 65 6e 64 67 72 6f 75 70 20 22 64 22 20 22 65 22 29 29 0a 20 20 20 20 20 20 group.:endgroup."d"."e")).......
30be0 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 22 61 22 20 22 62 22 29 20 28 22 64 22 20 22 65 22 29 ............(("a"."b").("d"."e")
30c00 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 70 6c 69 74 2d 77 68 65 6e 20 28 66 6e )...--.Function:.-split-when.(fn
30c20 20 6c 69 73 74 29 0a 20 20 20 20 20 53 70 6c 69 74 20 74 68 65 20 4c 49 53 54 20 6f 6e 20 65 61 .list)......Split.the.LIST.on.ea
30c40 63 68 20 65 6c 65 6d 65 6e 74 20 77 68 65 72 65 20 46 4e 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d ch.element.where.FN.returns.non-
30c60 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 55 6e 6c 69 6b 65 20 e2 80 98 2d 70 61 72 74 ...nil...........Unlike....-part
30c80 69 74 69 6f 6e 2d 62 79 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 ition-by....(*note.-partition-by
30ca0 3a 3a 29 2c 20 74 68 65 20 22 6d 61 74 63 68 65 64 22 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 20 ::),.the."matched"......element.
30cc0 69 73 20 64 69 73 63 61 72 64 65 64 20 66 72 6f 6d 20 74 68 65 20 72 65 73 75 6c 74 73 2e 20 20 is.discarded.from.the.results...
30ce0 45 6d 70 74 79 20 6c 69 73 74 73 20 61 72 65 20 61 6c 73 6f 0a 20 20 20 20 20 72 65 6d 6f 76 65 Empty.lists.are.also......remove
30d00 64 20 66 72 6f 6d 20 74 68 65 20 72 65 73 75 6c 74 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 d.from.the.result........This.fu
30d20 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 74 68 6f 75 67 68 74 20 6f 66 20 61 73 20 61 20 67 65 nction.can.be.thought.of.as.a.ge
30d40 6e 65 72 61 6c 69 7a 61 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 e2 80 98 73 70 6c 69 74 2d 73 74 neralization.of.........split-st
30d60 72 69 6e 67 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 70 6c 69 74 2d 77 68 65 6e ring................(-split-when
30d80 20 27 65 76 65 6e 3f 20 27 28 31 20 32 20 33 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 .'even?.'(1.2.3.4.5.6)).........
30da0 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 20 28 33 29 20 28 35 29 29 0a 20 20 20 20 20 20 20 20 ..........((1).(3).(5)).........
30dc0 20 20 28 2d 73 70 6c 69 74 2d 77 68 65 6e 20 27 65 76 65 6e 3f 20 27 28 31 20 32 20 33 20 34 20 ..(-split-when.'even?.'(1.2.3.4.
30de0 36 20 38 20 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 20 28 6.8.9))...................((1).(
30e00 33 29 20 28 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 73 70 6c 69 74 2d 77 68 65 6e 20 3).(9))...........(--split-when.
30e20 28 6d 65 6d 71 20 69 74 20 27 28 26 6f 70 74 69 6f 6e 61 6c 20 26 72 65 73 74 29 29 20 27 28 61 (memq.it.'(&optional.&rest)).'(a
30e40 20 62 20 26 6f 70 74 69 6f 6e 61 6c 20 63 20 64 20 26 72 65 73 74 20 61 72 67 73 29 29 0a 20 20 .b.&optional.c.d.&rest.args))...
30e60 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 61 20 62 29 20 28 63 20 64 29 20 28 61 72 ................((a.b).(c.d).(ar
30e80 67 73 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 65 70 61 72 61 74 65 20 28 70 gs))...--.Function:.-separate.(p
30ea0 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 53 70 6c 69 74 20 4c 49 53 54 20 69 6e 74 6f 20 74 red.list)......Split.LIST.into.t
30ec0 77 6f 20 73 75 62 6c 69 73 74 73 20 62 61 73 65 64 20 6f 6e 20 77 68 65 74 68 65 72 20 69 74 65 wo.sublists.based.on.whether.ite
30ee0 6d 73 20 73 61 74 69 73 66 79 20 50 52 45 44 2e 0a 20 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 ms.satisfy.PRED.......The.result
30f00 20 69 73 20 6c 69 6b 65 20 70 65 72 66 6f 72 6d 69 6e 67 0a 0a 20 20 20 20 20 28 28 2d 66 69 6c .is.like.performing.......((-fil
30f20 74 65 72 20 50 52 45 44 20 4c 49 53 54 29 20 28 2d 72 65 6d 6f 76 65 20 50 52 45 44 20 4c 49 53 ter.PRED.LIST).(-remove.PRED.LIS
30f40 54 29 29 0a 0a 20 20 20 20 20 62 75 74 20 69 6e 20 61 20 73 69 6e 67 6c 65 20 70 61 73 73 20 74 T)).......but.in.a.single.pass.t
30f60 68 72 6f 75 67 68 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 65 70 61 72 61 hrough.LIST.............(-separa
30f80 74 65 20 28 6c 61 6d 62 64 61 20 28 6e 75 6d 29 20 28 3d 20 30 20 28 25 20 6e 75 6d 20 32 29 29 te.(lambda.(num).(=.0.(%.num.2))
30fa0 29 20 27 28 31 20 32 20 33 20 34 20 35 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ).'(1.2.3.4.5.6.7)).............
30fc0 20 20 e2 87 92 20 28 28 32 20 34 20 36 29 20 28 31 20 33 20 35 20 37 29 29 0a 20 20 20 20 20 20 ......((2.4.6).(1.3.5.7)).......
30fe0 20 20 20 20 28 2d 2d 73 65 70 61 72 61 74 65 20 28 3c 20 69 74 20 35 29 20 27 28 33 20 37 20 35 ....(--separate.(<.it.5).'(3.7.5
31000 20 39 20 33 20 32 20 31 20 34 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 .9.3.2.1.4.6))..................
31020 20 28 28 33 20 33 20 32 20 31 20 34 29 20 28 37 20 35 20 39 20 36 29 29 0a 20 20 20 20 20 20 20 .((3.3.2.1.4).(7.5.9.6))........
31040 20 20 20 28 2d 73 65 70 61 72 61 74 65 20 27 63 64 72 20 27 28 28 31 20 32 29 20 28 31 29 20 28 ...(-separate.'cdr.'((1.2).(1).(
31060 31 20 32 20 33 29 20 28 34 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 1.2.3).(4)))...................(
31080 28 28 31 20 32 29 20 28 31 20 32 20 33 29 29 20 28 28 31 29 20 28 34 29 29 29 0a 0a 20 2d 2d 20 ((1.2).(1.2.3)).((1).(4)))...--.
310a0 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 20 28 6e 20 6c 69 73 74 29 0a 20 20 Function:.-partition.(n.list)...
310c0 20 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 69 74 ...Return.a.new.list.with.the.it
310e0 65 6d 73 20 69 6e 20 4c 49 53 54 20 67 72 6f 75 70 65 64 20 69 6e 74 6f 20 4e 2d 73 69 7a 65 64 ems.in.LIST.grouped.into.N-sized
31100 0a 20 20 20 20 20 73 75 62 6c 69 73 74 73 2e 20 20 49 66 20 74 68 65 72 65 20 61 72 65 20 6e 6f ......sublists...If.there.are.no
31120 74 20 65 6e 6f 75 67 68 20 69 74 65 6d 73 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 6c 61 73 74 20 t.enough.items.to.make.the.last.
31140 67 72 6f 75 70 0a 20 20 20 20 20 4e 2d 73 69 7a 65 64 2c 20 74 68 6f 73 65 20 69 74 65 6d 73 20 group......N-sized,.those.items.
31160 61 72 65 20 64 69 73 63 61 72 64 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 are.discarded.............(-part
31180 69 74 69 6f 6e 20 32 20 27 28 31 20 32 20 33 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 ition.2.'(1.2.3.4.5.6)).........
311a0 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 29 20 28 33 20 34 29 20 28 35 20 36 29 29 0a 20 20 ..........((1.2).(3.4).(5.6))...
311c0 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 20 32 20 27 28 31 20 32 20 33 20 34 20 ........(-partition.2.'(1.2.3.4.
311e0 35 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 29 5.6.7))...................((1.2)
31200 20 28 33 20 34 29 20 28 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 .(3.4).(5.6))...........(-partit
31220 69 6f 6e 20 33 20 27 28 31 20 32 20 33 20 34 20 35 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 ion.3.'(1.2.3.4.5.6.7)).........
31240 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 28 34 20 35 20 36 29 29 0a 0a 20 2d 2d ..........((1.2.3).(4.5.6))...--
31260 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 20 28 6e 20 6c 69 73 .Function:.-partition-all.(n.lis
31280 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 74 t)......Return.a.new.list.with.t
312a0 68 65 20 69 74 65 6d 73 20 69 6e 20 4c 49 53 54 20 67 72 6f 75 70 65 64 20 69 6e 74 6f 20 4e 2d he.items.in.LIST.grouped.into.N-
312c0 73 69 7a 65 64 0a 20 20 20 20 20 73 75 62 6c 69 73 74 73 2e 20 20 54 68 65 20 6c 61 73 74 20 67 sized......sublists...The.last.g
312e0 72 6f 75 70 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 6c 65 73 73 20 74 68 61 6e 20 4e 20 69 74 65 roup.may.contain.less.than.N.ite
31300 6d 73 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 20 32 ms.............(-partition-all.2
31320 20 27 28 31 20 32 20 33 20 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 .'(1.2.3.4.5.6))................
31340 87 92 20 28 28 31 20 32 29 20 28 33 20 34 29 20 28 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 ...((1.2).(3.4).(5.6))..........
31360 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 20 32 20 27 28 31 20 32 20 33 20 34 20 35 20 36 .(-partition-all.2.'(1.2.3.4.5.6
31380 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 29 20 28 33 .7))...................((1.2).(3
313a0 20 34 29 20 28 35 20 36 29 20 28 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 .4).(5.6).(7))...........(-parti
313c0 74 69 6f 6e 2d 61 6c 6c 20 33 20 27 28 31 20 32 20 33 20 34 20 35 20 36 20 37 29 29 0a 20 20 20 tion-all.3.'(1.2.3.4.5.6.7))....
313e0 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 28 34 20 35 20 36 29 20 ...............((1.2.3).(4.5.6).
31400 28 37 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 69 (7))...--.Function:.-partition-i
31420 6e 2d 73 74 65 70 73 20 28 6e 20 73 74 65 70 20 6c 69 73 74 29 0a 20 20 20 20 20 50 61 72 74 69 n-steps.(n.step.list)......Parti
31440 74 69 6f 6e 20 4c 49 53 54 20 69 6e 74 6f 20 73 75 62 6c 69 73 74 73 20 6f 66 20 6c 65 6e 67 74 tion.LIST.into.sublists.of.lengt
31460 68 20 4e 20 74 68 61 74 20 61 72 65 20 53 54 45 50 20 69 74 65 6d 73 20 61 70 61 72 74 2e 0a 20 h.N.that.are.STEP.items.apart...
31480 20 20 20 20 4c 69 6b 65 20 e2 80 98 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 ....Like....-partition-all-in-st
314a0 65 70 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d eps....(*note.-partition-all-in-
314c0 73 74 65 70 73 3a 3a 29 2c 0a 20 20 20 20 20 62 75 74 20 69 66 20 74 68 65 72 65 20 61 72 65 20 steps::),......but.if.there.are.
314e0 6e 6f 74 20 65 6e 6f 75 67 68 20 69 74 65 6d 73 20 74 6f 20 6d 61 6b 65 20 74 68 65 20 6c 61 73 not.enough.items.to.make.the.las
31500 74 20 67 72 6f 75 70 20 4e 2d 73 69 7a 65 64 2c 0a 20 20 20 20 20 74 68 6f 73 65 20 69 74 65 6d t.group.N-sized,......those.item
31520 73 20 61 72 65 20 64 69 73 63 61 72 64 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 s.are.discarded.............(-pa
31540 72 74 69 74 69 6f 6e 2d 69 6e 2d 73 74 65 70 73 20 32 20 31 20 27 28 31 20 32 20 33 20 34 29 29 rtition-in-steps.2.1.'(1.2.3.4))
31560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 29 20 28 32 20 33 29 20 ...................((1.2).(2.3).
31580 28 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 69 6e 2d (3.4))...........(-partition-in-
315a0 73 74 65 70 73 20 33 20 32 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 steps.3.2.'(1.2.3.4))...........
315c0 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 ........((1.2.3))...........(-pa
315e0 72 74 69 74 69 6f 6e 2d 69 6e 2d 73 74 65 70 73 20 33 20 32 20 27 28 31 20 32 20 33 20 34 20 35 rtition-in-steps.3.2.'(1.2.3.4.5
31600 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 28 33 ))...................((1.2.3).(3
31620 20 34 20 35 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e .4.5))...--.Function:.-partition
31640 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 20 28 6e 20 73 74 65 70 20 6c 69 73 74 29 0a 20 20 20 20 -all-in-steps.(n.step.list).....
31660 20 50 61 72 74 69 74 69 6f 6e 20 4c 49 53 54 20 69 6e 74 6f 20 73 75 62 6c 69 73 74 73 20 6f 66 .Partition.LIST.into.sublists.of
31680 20 6c 65 6e 67 74 68 20 4e 20 74 68 61 74 20 61 72 65 20 53 54 45 50 20 69 74 65 6d 73 20 61 70 .length.N.that.are.STEP.items.ap
316a0 61 72 74 2e 0a 20 20 20 20 20 41 64 6a 61 63 65 6e 74 20 67 72 6f 75 70 73 20 6d 61 79 20 6f 76 art.......Adjacent.groups.may.ov
316c0 65 72 6c 61 70 20 69 66 20 4e 20 65 78 63 65 65 64 73 20 74 68 65 20 53 54 45 50 20 73 74 72 69 erlap.if.N.exceeds.the.STEP.stri
316e0 64 65 2e 20 20 54 72 61 69 6c 69 6e 67 0a 20 20 20 20 20 67 72 6f 75 70 73 20 6d 61 79 20 63 6f de...Trailing......groups.may.co
31700 6e 74 61 69 6e 20 6c 65 73 73 20 74 68 61 6e 20 4e 20 69 74 65 6d 73 2e 0a 0a 20 20 20 20 20 20 ntain.less.than.N.items.........
31720 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 20 32 20 31 ....(-partition-all-in-steps.2.1
31740 20 27 28 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 .'(1.2.3.4))...................(
31760 28 31 20 32 29 20 28 32 20 33 29 20 28 33 20 34 29 20 28 34 29 29 0a 20 20 20 20 20 20 20 20 20 (1.2).(2.3).(3.4).(4))..........
31780 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 20 33 20 32 20 27 28 .(-partition-all-in-steps.3.2.'(
317a0 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 1.2.3.4))...................((1.
317c0 32 20 33 29 20 28 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 2.3).(3.4))...........(-partitio
317e0 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 20 33 20 32 20 27 28 31 20 32 20 33 20 34 20 35 29 29 n-all-in-steps.3.2.'(1.2.3.4.5))
31800 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 28 33 20 34 ...................((1.2.3).(3.4
31820 20 35 29 20 28 35 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 .5).(5))...--.Function:.-partiti
31840 6f 6e 2d 62 79 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 41 70 70 6c 79 20 46 4e 20 74 6f on-by.(fn.list)......Apply.FN.to
31860 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2c 20 73 70 6c 69 74 74 69 6e 67 20 69 74 .each.item.in.LIST,.splitting.it
31880 20 65 61 63 68 20 74 69 6d 65 20 46 4e 20 72 65 74 75 72 6e 73 20 61 0a 20 20 20 20 20 6e 65 77 .each.time.FN.returns.a......new
318a0 20 76 61 6c 75 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 62 .value.............(-partition-b
318c0 79 20 27 65 76 65 6e 3f 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 y.'even?.())...................(
318e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 20 27 65 76 65 6e )...........(-partition-by.'even
31900 3f 20 27 28 31 20 31 20 32 20 32 20 32 20 33 20 34 20 36 20 38 29 29 0a 20 20 20 20 20 20 20 20 ?.'(1.1.2.2.2.3.4.6.8)).........
31920 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 31 29 20 28 32 20 32 20 32 29 20 28 33 29 20 28 34 20 ..........((1.1).(2.2.2).(3).(4.
31940 36 20 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 20 6.8))...........(--partition-by.
31960 28 3c 20 69 74 20 33 29 20 27 28 31 20 32 20 33 20 34 20 33 20 32 20 31 29 29 0a 20 20 20 20 20 (<.it.3).'(1.2.3.4.3.2.1))......
31980 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 29 20 28 33 20 34 20 33 29 20 28 32 20 31 .............((1.2).(3.4.3).(2.1
319a0 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d ))...--.Function:.-partition-by-
319c0 68 65 61 64 65 72 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 41 70 70 6c 79 20 46 4e 20 74 header.(fn.list)......Apply.FN.t
319e0 6f 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2e 20 20 54 68 61 74 20 o.the.first.item.in.LIST...That.
31a00 69 73 20 74 68 65 20 68 65 61 64 65 72 20 76 61 6c 75 65 2e 0a 20 20 20 20 20 41 70 70 6c 79 20 is.the.header.value.......Apply.
31a20 46 4e 20 74 6f 20 65 61 63 68 20 69 74 65 6d 20 69 6e 20 4c 49 53 54 2c 20 73 70 6c 69 74 74 69 FN.to.each.item.in.LIST,.splitti
31a40 6e 67 20 69 74 20 65 61 63 68 20 74 69 6d 65 20 46 4e 20 72 65 74 75 72 6e 73 0a 20 20 20 20 20 ng.it.each.time.FN.returns......
31a60 74 68 65 20 68 65 61 64 65 72 20 76 61 6c 75 65 2c 20 62 75 74 20 6f 6e 6c 79 20 61 66 74 65 72 the.header.value,.but.only.after
31a80 20 73 65 65 69 6e 67 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 6f 74 68 65 72 20 76 61 6c 75 65 .seeing.at.least.one.other.value
31aa0 0a 20 20 20 20 20 28 74 68 65 20 62 6f 64 79 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d ......(the.body).............(--
31ac0 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 65 61 64 65 72 20 28 3d 20 69 74 20 31 29 20 27 28 31 partition-by-header.(=.it.1).'(1
31ae0 20 32 20 33 20 31 20 32 20 31 20 32 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .2.3.1.2.1.2.3.4))..............
31b00 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 28 31 20 32 29 20 28 31 20 32 20 33 20 34 29 29 0a 20 .....((1.2.3).(1.2).(1.2.3.4))..
31b20 20 20 20 20 20 20 20 20 20 28 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 65 61 64 65 72 20 .........(--partition-by-header.
31b40 28 3e 20 69 74 20 30 29 20 27 28 31 20 32 20 30 20 31 20 30 20 31 20 32 20 33 20 30 29 29 0a 20 (>.it.0).'(1.2.0.1.0.1.2.3.0))..
31b60 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 30 29 20 28 31 20 30 29 20 .................((1.2.0).(1.0).
31b80 28 31 20 32 20 33 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e (1.2.3.0))...........(-partition
31ba0 2d 62 79 2d 68 65 61 64 65 72 20 27 65 76 65 6e 3f 20 27 28 32 20 31 20 31 20 31 20 34 20 31 20 -by-header.'even?.'(2.1.1.1.4.1.
31bc0 33 20 35 20 36 20 36 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 3.5.6.6.1))...................((
31be0 32 20 31 20 31 20 31 29 20 28 34 20 31 20 33 20 35 29 20 28 36 20 36 20 31 29 29 0a 0a 20 2d 2d 2.1.1.1).(4.1.3.5).(6.6.1))...--
31c00 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 .Function:.-partition-after-pred
31c20 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 20 4c 49 53 54 .(pred.list)......Partition.LIST
31c40 20 61 66 74 65 72 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 66 6f 72 20 77 68 69 63 68 20 50 52 .after.each.element.for.which.PR
31c60 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 ED.returns.non-...nil...........
31c80 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e This.function...s.anaphoric.coun
31ca0 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d terpart.is....--partition-after-
31cc0 70 72 65 64 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d pred................(-partition-
31ce0 61 66 74 65 72 2d 70 72 65 64 20 23 27 62 6f 6f 6c 65 61 6e 70 20 28 29 29 0a 20 20 20 20 20 20 after-pred.#'booleanp.()).......
31d00 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 ............()...........(-parti
31d20 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 20 23 27 62 6f 6f 6c 65 61 6e 70 20 27 28 74 20 74 tion-after-pred.#'booleanp.'(t.t
31d40 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 74 29 20 28 74 29 29 0a 20 ))...................((t).(t))..
31d60 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 20 .........(-partition-after-pred.
31d80 23 27 62 6f 6f 6c 65 61 6e 70 20 27 28 30 20 30 20 74 20 74 20 30 20 74 29 29 0a 20 20 20 20 20 #'booleanp.'(0.0.t.t.0.t))......
31da0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 30 20 30 20 74 29 20 28 74 29 20 28 30 20 74 29 29 .............((0.0.t).(t).(0.t))
31dc0 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 ...--.Function:.-partition-befor
31de0 65 2d 70 72 65 64 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 50 61 72 74 69 74 69 6f e-pred.(pred.list)......Partitio
31e00 6e 20 64 69 72 65 63 74 6c 79 20 62 65 66 6f 72 65 20 65 61 63 68 20 74 69 6d 65 20 50 52 45 44 n.directly.before.each.time.PRED
31e20 20 69 73 20 74 72 75 65 20 6f 6e 20 61 6e 20 65 6c 65 6d 65 6e 74 20 6f 66 0a 20 20 20 20 20 4c .is.true.on.an.element.of......L
31e40 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f IST.............(-partition-befo
31e60 72 65 2d 70 72 65 64 20 23 27 62 6f 6f 6c 65 61 6e 70 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 re-pred.#'booleanp.())..........
31e80 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f .........()...........(-partitio
31ea0 6e 2d 62 65 66 6f 72 65 2d 70 72 65 64 20 23 27 62 6f 6f 6c 65 61 6e 70 20 27 28 30 20 74 29 29 n-before-pred.#'booleanp.'(0.t))
31ec0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 30 29 20 28 74 29 29 0a 20 20 20 ...................((0).(t))....
31ee0 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 70 72 65 64 20 23 .......(-partition-before-pred.#
31f00 27 62 6f 6f 6c 65 61 6e 70 20 27 28 30 20 30 20 74 20 30 20 74 20 74 29 29 0a 20 20 20 20 20 20 'booleanp.'(0.0.t.0.t.t)).......
31f20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 30 20 30 29 20 28 74 20 30 29 20 28 74 29 20 28 74 29 ............((0.0).(t.0).(t).(t)
31f40 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f )...--.Function:.-partition-befo
31f60 72 65 2d 69 74 65 6d 20 28 69 74 65 6d 20 6c 69 73 74 29 0a 20 20 20 20 20 50 61 72 74 69 74 69 re-item.(item.list)......Partiti
31f80 6f 6e 20 64 69 72 65 63 74 6c 79 20 62 65 66 6f 72 65 20 65 61 63 68 20 74 69 6d 65 20 49 54 45 on.directly.before.each.time.ITE
31fa0 4d 20 61 70 70 65 61 72 73 20 69 6e 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d M.appears.in.LIST.............(-
31fc0 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 69 74 65 6d 20 33 20 28 29 29 0a 20 20 20 20 partition-before-item.3.()).....
31fe0 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 ..............()...........(-par
32000 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 69 74 65 6d 20 33 20 27 28 31 29 29 0a 20 20 20 20 20 tition-before-item.3.'(1))......
32020 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 .............((1))...........(-p
32040 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 69 74 65 6d 20 33 20 27 28 33 29 29 0a 20 20 20 artition-before-item.3.'(3))....
32060 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 33 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 ...............((3))...--.Functi
32080 6f 6e 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 74 65 6d 20 28 69 74 65 6d 20 on:.-partition-after-item.(item.
320a0 6c 69 73 74 29 0a 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 20 64 69 72 65 63 74 6c 79 20 61 66 list)......Partition.directly.af
320c0 74 65 72 20 65 61 63 68 20 74 69 6d 65 20 49 54 45 4d 20 61 70 70 65 61 72 73 20 69 6e 20 4c 49 ter.each.time.ITEM.appears.in.LI
320e0 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 ST.............(-partition-after
32100 2d 69 74 65 6d 20 33 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 -item.3.())...................()
32120 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 74 65 ...........(-partition-after-ite
32140 6d 20 33 20 27 28 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 m.3.'(1))...................((1)
32160 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 74 )...........(-partition-after-it
32180 65 6d 20 33 20 27 28 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 33 em.3.'(3))...................((3
321a0 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 67 72 6f 75 70 2d 62 79 20 28 66 6e 20 ))...--.Function:.-group-by.(fn.
321c0 6c 69 73 74 29 0a 20 20 20 20 20 53 65 70 61 72 61 74 65 20 4c 49 53 54 20 69 6e 74 6f 20 61 6e list)......Separate.LIST.into.an
321e0 20 61 6c 69 73 74 20 77 68 6f 73 65 20 6b 65 79 73 20 61 72 65 20 46 4e 20 61 70 70 6c 69 65 64 .alist.whose.keys.are.FN.applied
32200 20 74 6f 20 74 68 65 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 2e 20 20 .to.the......elements.of.LIST...
32220 4b 65 79 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 62 79 20 e2 80 98 65 71 75 61 6c e2 80 99 Keys.are.compared.by....equal...
32240 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 67 72 6f 75 70 2d 62 79 20 27 65 76 65 6e 3f 20 28 .............(-group-by.'even?.(
32260 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 ))...................().........
32280 20 20 28 2d 67 72 6f 75 70 2d 62 79 20 27 65 76 65 6e 3f 20 27 28 31 20 31 20 32 20 32 20 32 20 ..(-group-by.'even?.'(1.1.2.2.2.
322a0 33 20 34 20 36 20 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 6e 69 3.4.6.8))...................((ni
322c0 6c 20 31 20 31 20 33 29 20 28 74 20 32 20 32 20 32 20 34 20 36 20 38 29 29 0a 20 20 20 20 20 20 l.1.1.3).(t.2.2.2.4.6.8)).......
322e0 20 20 20 20 28 2d 2d 67 72 6f 75 70 2d 62 79 20 28 63 61 72 20 28 73 70 6c 69 74 2d 73 74 72 69 ....(--group-by.(car.(split-stri
32300 6e 67 20 69 74 20 22 2f 22 29 29 20 27 28 22 61 2f 62 22 20 22 63 2f 64 22 20 22 61 2f 65 22 29 ng.it."/")).'("a/b"."c/d"."a/e")
32320 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 22 61 22 20 22 61 2f 62 22 20 )...................(("a"."a/b".
32340 22 61 2f 65 22 29 20 28 22 63 22 20 22 63 2f 64 22 29 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 "a/e").("c"."c/d"))....File:.das
32360 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 49 6e 64 65 78 69 6e 67 2c 20 20 4e 65 78 74 3a 20 h.info,..Node:.Indexing,..Next:.
32380 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 50 61 72 74 69 74 69 6f 6e Set.operations,..Prev:.Partition
323a0 69 6e 67 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 38 20 49 6e 64 65 78 69 6e ing,..Up:.Functions..2.8.Indexin
323c0 67 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 6e 63 74 69 6f 6e 73 20 72 65 74 72 69 65 g.============..Functions.retrie
323e0 76 69 6e 67 20 6f 72 20 73 6f 72 74 69 6e 67 20 62 61 73 65 64 20 6f 6e 20 6c 69 73 74 20 69 6e ving.or.sorting.based.on.list.in
32400 64 69 63 65 73 20 61 6e 64 20 72 65 6c 61 74 65 64 0a 70 72 65 64 69 63 61 74 65 73 2e 0a 0a 20 dices.and.related.predicates....
32420 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 65 6c 65 6d 2d 69 6e 64 65 78 20 28 65 6c 65 6d 20 6c --.Function:.-elem-index.(elem.l
32440 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 69 6e 64 65 78 ist)......Return.the.first.index
32460 20 6f 66 20 45 4c 45 4d 20 69 6e 20 4c 49 53 54 2e 20 20 54 68 61 74 20 69 73 2c 20 74 68 65 20 .of.ELEM.in.LIST...That.is,.the.
32480 69 6e 64 65 78 20 77 69 74 68 69 6e 0a 20 20 20 20 20 4c 49 53 54 20 6f 66 20 74 68 65 20 66 69 index.within......LIST.of.the.fi
324a0 72 73 74 20 65 6c 65 6d 65 6e 74 20 74 68 61 74 20 69 73 20 e2 80 98 65 71 75 61 6c e2 80 99 20 rst.element.that.is....equal....
324c0 74 6f 20 45 4c 45 4d 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 0a 20 20 to.ELEM...Return....nil....if...
324e0 20 20 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 75 63 68 20 65 6c 65 6d 65 6e 74 2e 0a 0a 20 20 ...there.is.no.such.element.....
32500 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 69 6e 64 2d 69 6e 64 65 78 e2 80 99 20 28 ...See.also:....-find-index....(
32520 2a 6e 6f 74 65 20 2d 66 69 6e 64 2d 69 6e 64 65 78 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 *note.-find-index::)............
32540 20 28 2d 65 6c 65 6d 2d 69 6e 64 65 78 20 32 20 27 28 36 20 37 20 38 20 33 20 34 29 29 0a 20 20 .(-elem-index.2.'(6.7.8.3.4))...
32560 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d ................nil...........(-
32580 65 6c 65 6d 2d 69 6e 64 65 78 20 22 62 61 72 22 20 27 28 22 66 6f 6f 22 20 22 62 61 72 22 20 22 elem-index."bar".'("foo"."bar"."
325a0 62 61 7a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 baz"))...................1......
325c0 20 20 20 20 20 28 2d 65 6c 65 6d 2d 69 6e 64 65 78 20 27 28 31 20 32 29 20 27 28 28 33 29 20 28 .....(-elem-index.'(1.2).'((3).(
325e0 35 20 36 29 20 28 31 20 32 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 5.6).(1.2).nil))................
32600 87 92 20 32 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 65 6c 65 6d 2d 69 6e 64 69 63 65 ...2...--.Function:.-elem-indice
32620 73 20 28 65 6c 65 6d 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 s.(elem.list)......Return.the.li
32640 73 74 20 6f 66 20 69 6e 64 69 63 65 73 20 61 74 20 77 68 69 63 68 20 45 4c 45 4d 20 61 70 70 65 st.of.indices.at.which.ELEM.appe
32660 61 72 73 20 69 6e 20 4c 49 53 54 2e 20 20 54 68 61 74 20 69 73 2c 0a 20 20 20 20 20 74 68 65 20 ars.in.LIST...That.is,......the.
32680 69 6e 64 69 63 65 73 20 6f 66 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 indices.of.all.elements.of.LIST.
326a0 e2 80 98 65 71 75 61 6c e2 80 99 20 74 6f 20 45 4c 45 4d 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 ...equal....to.ELEM,.in.the.same
326c0 0a 20 20 20 20 20 61 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 20 61 73 20 74 68 65 79 20 61 70 ......ascending.order.as.they.ap
326e0 70 65 61 72 20 69 6e 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 65 6c 65 6d 2d pear.in.LIST.............(-elem-
32700 69 6e 64 69 63 65 73 20 32 20 27 28 36 20 37 20 38 20 33 20 34 20 31 29 29 0a 20 20 20 20 20 20 indices.2.'(6.7.8.3.4.1)).......
32720 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 65 6c 65 6d 2d ............()...........(-elem-
32740 69 6e 64 69 63 65 73 20 22 62 61 72 22 20 27 28 22 66 6f 6f 22 20 22 62 61 72 22 20 22 62 61 7a indices."bar".'("foo"."bar"."baz
32760 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 29 0a 20 20 20 20 20 20 "))...................(1).......
32780 20 20 20 20 28 2d 65 6c 65 6d 2d 69 6e 64 69 63 65 73 20 27 28 31 20 32 29 20 27 28 28 33 29 20 ....(-elem-indices.'(1.2).'((3).
327a0 28 31 20 32 29 20 28 35 20 36 29 20 28 31 20 32 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 (1.2).(5.6).(1.2).nil)).........
327c0 20 20 20 20 20 20 e2 87 92 20 28 31 20 33 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d ..........(1.3)...--.Function:.-
327e0 66 69 6e 64 2d 69 6e 64 65 78 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 find-index.(pred.list)......Retu
32800 72 6e 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 73 rn.the.index.of.the.first.item.s
32820 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 53 54 2e 20 20 52 65 74 75 72 6e 0a atisfying.PRED.in.LIST...Return.
32840 20 20 20 20 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 20 6e 6f 20 73 75 63 68 20 69 74 65 6d 20 69 ........nil....if.no.such.item.i
32860 73 20 66 6f 75 6e 64 2e 0a 0a 20 20 20 20 20 50 52 45 44 20 69 73 20 63 61 6c 6c 65 64 20 77 69 s.found........PRED.is.called.wi
32880 74 68 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 73 th.one.argument,.the.current.lis
328a0 74 20 65 6c 65 6d 65 6e 74 2c 20 75 6e 74 69 6c 0a 20 20 20 20 20 69 74 20 72 65 74 75 72 6e 73 t.element,.until......it.returns
328c0 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 61 74 20 77 68 69 63 68 20 70 6f 69 6e 74 20 74 .non-...nil...,.at.which.point.t
328e0 68 65 20 73 65 61 72 63 68 20 74 65 72 6d 69 6e 61 74 65 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 he.search.terminates........This
32900 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 .function...s.anaphoric.counterp
32920 61 72 74 20 69 73 20 e2 80 98 2d 2d 66 69 6e 64 2d 69 6e 64 65 78 e2 80 99 2e 0a 0a 20 20 20 20 art.is....--find-index..........
32940 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 69 72 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d .See.also:....-first....(*note.-
32960 66 69 72 73 74 3a 3a 29 2c 20 e2 80 98 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 e2 80 99 first::),....-find-last-index...
32980 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 3a 3a 29 .(*note......-find-last-index::)
329a0 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6e 64 2d 69 6e 64 65 78 20 23 27 6e 75 6d 62 .............(-find-index.#'numb
329c0 65 72 70 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 erp.'(a.b.c))...................
329e0 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6e 64 2d 69 6e 64 65 78 20 23 27 6e 61 74 nil...........(-find-index.#'nat
32a00 6e 75 6d 70 20 27 28 31 20 30 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 nump.'(1.0.-1)).................
32a20 92 20 30 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 6e 64 2d 69 6e 64 65 78 20 28 3e 20 69 ..0...........(--find-index.(>.i
32a40 74 20 35 29 20 27 28 32 20 34 20 31 20 36 20 33 20 33 20 35 20 38 29 29 0a 20 20 20 20 20 20 20 t.5).'(2.4.1.6.3.3.5.8))........
32a60 20 20 20 20 20 20 20 e2 87 92 20 33 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 66 69 6e ...........3...--.Function:.-fin
32a80 64 2d 6c 61 73 74 2d 69 6e 64 65 78 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 d-last-index.(pred.list)......Re
32aa0 74 75 72 6e 20 74 68 65 20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 turn.the.index.of.the.last.item.
32ac0 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 20 69 6e 20 4c 49 53 54 2e 20 20 52 65 74 75 72 6e satisfying.PRED.in.LIST...Return
32ae0 0a 20 20 20 20 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 20 6e 6f 20 73 75 63 68 20 69 74 65 6d 20 .........nil....if.no.such.item.
32b00 69 73 20 66 6f 75 6e 64 2e 0a 0a 20 20 20 20 20 50 72 65 64 69 63 61 74 65 20 50 52 45 44 20 69 is.found........Predicate.PRED.i
32b20 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 20 65 61 63 68 20 s.called.with.one.argument.each.
32b40 74 69 6d 65 2c 20 6e 61 6d 65 6c 79 20 74 68 65 0a 20 20 20 20 20 63 75 72 72 65 6e 74 20 6c 69 time,.namely.the......current.li
32b60 73 74 20 65 6c 65 6d 65 6e 74 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 st.element........This.function.
32b80 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 ..s.anaphoric.counterpart.is....
32ba0 2d 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 e2 80 99 2e 0a 0a 20 20 20 20 20 53 65 65 20 --find-last-index...........See.
32bc0 61 6c 73 6f 3a 20 e2 80 98 2d 6c 61 73 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6c 61 73 74 3a 3a also:....-last....(*note.-last::
32be0 29 2c 20 e2 80 98 2d 66 69 6e 64 2d 69 6e 64 65 78 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 ),....-find-index....(*note.....
32c00 20 2d 66 69 6e 64 2d 69 6e 64 65 78 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 .-find-index::).............(-fi
32c20 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 20 23 27 6e 75 6d 62 65 72 70 20 27 28 61 20 62 20 63 29 nd-last-index.#'numberp.'(a.b.c)
32c40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 )...................nil.........
32c60 20 20 28 2d 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 20 28 3e 20 69 74 20 35 29 20 27 28 ..(--find-last-index.(>.it.5).'(
32c80 32 20 37 20 31 20 36 20 33 20 38 20 35 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2.7.1.6.3.8.5.2))...............
32ca0 e2 87 92 20 35 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 ....5...........(-find-last-inde
32cc0 78 20 28 2d 70 61 72 74 69 61 6c 20 23 27 73 74 72 69 6e 67 3c 20 27 61 29 20 27 28 63 20 62 20 x.(-partial.#'string<.'a).'(c.b.
32ce0 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 0a 0a 20 2d 2d 20 46 75 6e a))...................1...--.Fun
32d00 63 74 69 6f 6e 3a 20 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 20 28 70 72 65 64 20 6c 69 73 74 29 ction:.-find-indices.(pred.list)
32d20 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 69 6e 64 69 63 65 73 ......Return.the.list.of.indices
32d40 20 69 6e 20 4c 49 53 54 20 73 61 74 69 73 66 79 69 6e 67 20 50 52 45 44 2e 0a 0a 20 20 20 20 20 .in.LIST.satisfying.PRED........
32d60 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 20 69 6e 20 74 75 72 6e 20 69 73 20 Each.element.of.LIST.in.turn.is.
32d80 70 61 73 73 65 64 20 74 6f 20 50 52 45 44 2e 20 20 49 66 20 74 68 65 20 72 65 73 75 6c 74 20 69 passed.to.PRED...If.the.result.i
32da0 73 0a 20 20 20 20 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 74 68 65 20 69 6e 64 65 78 20 s......non-...nil...,.the.index.
32dc0 6f 66 20 74 68 61 74 20 65 6c 65 6d 65 6e 74 20 69 6e 20 4c 49 53 54 20 69 73 20 69 6e 63 6c 75 of.that.element.in.LIST.is.inclu
32de0 64 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 20 72 65 73 75 6c 74 2e 20 20 54 68 65 20 72 65 74 ded.in.the......result...The.ret
32e00 75 72 6e 65 64 20 69 6e 64 69 63 65 73 20 61 72 65 20 69 6e 20 61 73 63 65 6e 64 69 6e 67 20 6f urned.indices.are.in.ascending.o
32e20 72 64 65 72 2c 20 69 2e 65 2e 2c 20 69 6e 20 74 68 65 0a 20 20 20 20 20 73 61 6d 65 20 6f 72 64 rder,.i.e.,.in.the......same.ord
32e40 65 72 20 61 73 20 74 68 65 79 20 61 70 70 65 61 72 20 69 6e 20 4c 49 53 54 2e 0a 0a 20 20 20 20 er.as.they.appear.in.LIST.......
32e60 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 .This.function...s.anaphoric.cou
32e80 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 e2 80 99 nterpart.is....--find-indices...
32ea0 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 69 6e 64 2d 69 6e 64 65 78 ........See.also:....-find-index
32ec0 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 66 69 6e 64 2d 69 6e 64 65 78 3a 3a 29 2c 20 e2 80 98 2d 65 ....(*note.-find-index::),....-e
32ee0 6c 65 6d 2d 69 6e 64 69 63 65 73 e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 65 6c 65 6d lem-indices.........(*note.-elem
32f00 2d 69 6e 64 69 63 65 73 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6e 64 2d 69 -indices::).............(-find-i
32f20 6e 64 69 63 65 73 20 23 27 6e 75 6d 62 65 72 70 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 ndices.#'numberp.'(a.b.c))......
32f40 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6e 64 .............()...........(-find
32f60 2d 69 6e 64 69 63 65 73 20 23 27 6e 75 6d 62 65 72 70 20 27 28 38 20 31 20 64 20 32 20 62 20 63 -indices.#'numberp.'(8.1.d.2.b.c
32f80 20 61 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 30 20 31 20 33 20 .a.3))...................(0.1.3.
32fa0 37 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 20 28 3e 20 7)...........(--find-indices.(>.
32fc0 69 74 20 35 29 20 27 28 32 20 34 20 31 20 36 20 33 20 33 20 35 20 38 29 29 0a 20 20 20 20 20 20 it.5).'(2.4.1.6.3.3.5.8)).......
32fe0 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 37 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a ............(3.7)...--.Function:
33000 20 2d 67 72 61 64 65 2d 75 70 20 28 63 6f 6d 70 61 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 20 .-grade-up.(comparator.list)....
33020 20 20 47 72 61 64 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 75 73 69 6e 67 20 43 ..Grade.elements.of.LIST.using.C
33040 4f 4d 50 41 52 41 54 4f 52 20 72 65 6c 61 74 69 6f 6e 2e 20 20 54 68 69 73 20 79 69 65 6c 64 73 OMPARATOR.relation...This.yields
33060 20 61 0a 20 20 20 20 20 70 65 72 6d 75 74 61 74 69 6f 6e 20 76 65 63 74 6f 72 20 73 75 63 68 20 .a......permutation.vector.such.
33080 74 68 61 74 20 61 70 70 6c 79 69 6e 67 20 74 68 69 73 20 70 65 72 6d 75 74 61 74 69 6f 6e 20 74 that.applying.this.permutation.t
330a0 6f 20 4c 49 53 54 0a 20 20 20 20 20 73 6f 72 74 73 20 69 74 20 69 6e 20 61 73 63 65 6e 64 69 6e o.LIST......sorts.it.in.ascendin
330c0 67 20 6f 72 64 65 72 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 67 72 61 64 65 2d 75 70 20 23 g.order.............(-grade-up.#
330e0 27 3c 20 27 28 33 20 31 20 34 20 32 20 31 20 33 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 '<.'(3.1.4.2.1.3.3))............
33100 20 20 20 e2 87 92 20 28 31 20 34 20 33 20 30 20 35 20 36 20 32 29 0a 20 20 20 20 20 20 20 20 20 .......(1.4.3.0.5.6.2)..........
33120 20 28 6c 65 74 20 28 28 6c 20 27 28 33 20 31 20 34 20 32 20 31 20 33 20 33 29 29 29 20 28 2d 73 .(let.((l.'(3.1.4.2.1.3.3))).(-s
33140 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 20 28 2d 67 72 61 64 65 2d 75 70 20 23 27 3c 20 elect-by-indices.(-grade-up.#'<.
33160 6c 29 20 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 31 20 32 20 l).l))...................(1.1.2.
33180 33 20 33 20 33 20 34 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 67 72 61 64 65 2d 64 3.3.3.4)...--.Function:.-grade-d
331a0 6f 77 6e 20 28 63 6f 6d 70 61 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 20 20 20 47 72 61 64 65 own.(comparator.list)......Grade
331c0 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 75 73 69 6e 67 20 43 4f 4d 50 41 52 41 54 .elements.of.LIST.using.COMPARAT
331e0 4f 52 20 72 65 6c 61 74 69 6f 6e 2e 20 20 54 68 69 73 20 79 69 65 6c 64 73 20 61 0a 20 20 20 20 OR.relation...This.yields.a.....
33200 20 70 65 72 6d 75 74 61 74 69 6f 6e 20 76 65 63 74 6f 72 20 73 75 63 68 20 74 68 61 74 20 61 70 .permutation.vector.such.that.ap
33220 70 6c 79 69 6e 67 20 74 68 69 73 20 70 65 72 6d 75 74 61 74 69 6f 6e 20 74 6f 20 4c 49 53 54 0a plying.this.permutation.to.LIST.
33240 20 20 20 20 20 73 6f 72 74 73 20 69 74 20 69 6e 20 64 65 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 .....sorts.it.in.descending.orde
33260 72 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 67 72 61 64 65 2d 64 6f 77 6e 20 23 27 3c 20 27 r.............(-grade-down.#'<.'
33280 28 33 20 31 20 34 20 32 20 31 20 33 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 (3.1.4.2.1.3.3))................
332a0 87 92 20 28 32 20 30 20 35 20 36 20 33 20 31 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 ...(2.0.5.6.3.1.4)...........(le
332c0 74 20 28 28 6c 20 27 28 33 20 31 20 34 20 32 20 31 20 33 20 33 29 29 29 20 28 2d 73 65 6c 65 63 t.((l.'(3.1.4.2.1.3.3))).(-selec
332e0 74 2d 62 79 2d 69 6e 64 69 63 65 73 20 28 2d 67 72 61 64 65 2d 64 6f 77 6e 20 23 27 3c 20 6c 29 t-by-indices.(-grade-down.#'<.l)
33300 20 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 20 33 20 33 20 33 20 .l))...................(4.3.3.3.
33320 32 20 31 20 31 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 2.1.1)....File:.dash.info,..Node
33340 3a 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 4f 74 68 65 72 20 6c :.Set.operations,..Next:.Other.l
33360 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 49 6e 64 65 78 69 6e 67 2c ist.operations,..Prev:.Indexing,
33380 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 39 20 53 65 74 20 6f 70 65 72 61 74 69 ..Up:.Functions..2.9.Set.operati
333a0 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4f 70 65 72 61 74 69 6f ons.==================..Operatio
333c0 6e 73 20 70 72 65 74 65 6e 64 69 6e 67 20 6c 69 73 74 73 20 61 72 65 20 73 65 74 73 2e 0a 0a 20 ns.pretending.lists.are.sets....
333e0 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 75 6e 69 6f 6e 20 28 6c 69 73 74 31 20 6c 69 73 74 32 --.Function:.-union.(list1.list2
33400 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 64 69 73 74 )......Return.a.new.list.of.dist
33420 69 6e 63 74 20 65 6c 65 6d 65 6e 74 73 20 61 70 70 65 61 72 69 6e 67 20 69 6e 20 65 69 74 68 65 inct.elements.appearing.in.eithe
33440 72 20 4c 49 53 54 31 20 6f 72 0a 20 20 20 20 20 4c 49 53 54 32 2e 0a 0a 20 20 20 20 20 54 68 65 r.LIST1.or......LIST2........The
33460 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 .test.for.equality.is.done.with.
33480 e2 80 98 65 71 75 61 6c e2 80 99 2c 20 6f 72 20 77 69 74 68 20 e2 80 98 2d 63 6f 6d 70 61 72 65 ...equal...,.or.with....-compare
334a0 2d 66 6e e2 80 99 0a 20 20 20 20 20 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 -fn.........if.that.is.non-...ni
334c0 6c e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 69 6f 6e 20 27 28 31 20 32 20 33 l................(-union.'(1.2.3
334e0 29 20 27 28 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 ).'(3.4.5))...................(1
33500 20 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 69 6f 6e 20 27 28 31 20 .2.3.4.5)...........(-union.'(1.
33520 32 20 32 20 34 29 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 2.2.4).())...................(1.
33540 32 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 69 6f 6e 20 27 28 31 20 31 20 32 20 32 2.4)...........(-union.'(1.1.2.2
33560 29 20 27 28 34 20 34 20 33 20 32 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 ).'(4.4.3.2.1)).................
33580 92 20 28 31 20 32 20 34 20 33 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 64 69 66 66 ..(1.2.4.3)...--.Function:.-diff
335a0 65 72 65 6e 63 65 20 28 6c 69 73 74 31 20 6c 69 73 74 32 29 0a 20 20 20 20 20 52 65 74 75 72 6e erence.(list1.list2)......Return
335c0 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 64 69 73 74 69 6e 63 74 20 6d 65 .a.new.list.with.the.distinct.me
335e0 6d 62 65 72 73 20 6f 66 20 4c 49 53 54 31 20 74 68 61 74 20 61 72 65 20 6e 6f 74 0a 20 20 20 20 mbers.of.LIST1.that.are.not.....
33600 20 69 6e 20 4c 49 53 54 32 2e 0a 0a 20 20 20 20 20 54 68 65 20 74 65 73 74 20 66 6f 72 20 65 71 .in.LIST2........The.test.for.eq
33620 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 e2 80 98 65 71 75 61 6c e2 80 99 2c uality.is.done.with....equal...,
33640 20 6f 72 20 77 69 74 68 20 e2 80 98 2d 63 6f 6d 70 61 72 65 2d 66 6e e2 80 99 0a 20 20 20 20 20 .or.with....-compare-fn.........
33660 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 if.that.is.non-...nil...........
33680 20 20 20 20 20 28 2d 64 69 66 66 65 72 65 6e 63 65 20 28 29 20 28 29 29 0a 20 20 20 20 20 20 20 .....(-difference.().())........
336a0 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 69 66 66 65 72 ...........()...........(-differ
336c0 65 6e 63 65 20 27 28 31 20 32 20 33 29 20 27 28 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 ence.'(1.2.3).'(4.5.6)).........
336e0 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 69 ..........(1.2.3)...........(-di
33700 66 66 65 72 65 6e 63 65 20 27 28 31 20 32 20 33 20 34 29 20 27 28 33 20 34 20 35 20 36 29 29 0a fference.'(1.2.3.4).'(3.4.5.6)).
33720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 29 0a 0a 20 2d 2d 20 46 75 6e ..................(1.2)...--.Fun
33740 63 74 69 6f 6e 3a 20 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 28 6c 69 73 74 31 20 6c 69 73 74 ction:.-intersection.(list1.list
33760 32 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 64 69 73 2)......Return.a.new.list.of.dis
33780 74 69 6e 63 74 20 65 6c 65 6d 65 6e 74 73 20 61 70 70 65 61 72 69 6e 67 20 69 6e 20 62 6f 74 68 tinct.elements.appearing.in.both
337a0 20 4c 49 53 54 31 20 61 6e 64 0a 20 20 20 20 20 4c 49 53 54 32 2e 0a 0a 20 20 20 20 20 54 68 65 .LIST1.and......LIST2........The
337c0 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 .test.for.equality.is.done.with.
337e0 e2 80 98 65 71 75 61 6c e2 80 99 2c 20 6f 72 20 77 69 74 68 20 e2 80 98 2d 63 6f 6d 70 61 72 65 ...equal...,.or.with....-compare
33800 2d 66 6e e2 80 99 0a 20 20 20 20 20 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 -fn.........if.that.is.non-...ni
33820 6c e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 l................(-intersection.
33840 28 29 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 ().())...................().....
33860 20 20 20 20 20 20 28 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 27 28 31 20 32 20 33 29 20 27 28 ......(-intersection.'(1.2.3).'(
33880 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 4.5.6))...................()....
338a0 20 20 20 20 20 20 20 28 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 27 28 31 20 32 20 32 20 33 29 .......(-intersection.'(1.2.2.3)
338c0 20 27 28 34 20 33 20 33 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 .'(4.3.3.2))...................(
338e0 32 20 33 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 6f 77 65 72 73 65 74 20 28 6c 2.3)...--.Function:.-powerset.(l
33900 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 70 6f 77 65 72 20 73 65 74 20 6f ist)......Return.the.power.set.o
33920 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 6f 77 65 72 73 65 74 20 28 29 f.LIST.............(-powerset.()
33940 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 29 0a 20 20 20 20 20 20 )...................(nil).......
33960 20 20 20 20 28 2d 70 6f 77 65 72 73 65 74 20 27 28 78 20 79 29 29 0a 20 20 20 20 20 20 20 20 20 ....(-powerset.'(x.y))..........
33980 20 20 20 20 20 e2 87 92 20 28 28 78 20 79 29 20 28 78 29 20 28 79 29 20 6e 69 6c 29 0a 20 20 20 .........((x.y).(x).(y).nil)....
339a0 20 20 20 20 20 20 20 28 2d 70 6f 77 65 72 73 65 74 20 27 28 78 20 79 20 7a 29 29 0a 20 20 20 20 .......(-powerset.'(x.y.z)).....
339c0 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 78 20 79 20 7a 29 20 28 78 20 79 29 20 28 78 20 ..............((x.y.z).(x.y).(x.
339e0 7a 29 20 28 78 29 20 28 79 20 7a 29 20 28 79 29 20 28 7a 29 20 6e 69 6c 29 0a 0a 20 2d 2d 20 46 z).(x).(y.z).(y).(z).nil)...--.F
33a00 75 6e 63 74 69 6f 6e 3a 20 2d 70 65 72 6d 75 74 61 74 69 6f 6e 73 20 28 6c 69 73 74 29 0a 20 20 unction:.-permutations.(list)...
33a20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 64 69 73 74 69 6e 63 74 20 70 65 72 6d 75 74 61 74 69 ...Return.the.distinct.permutati
33a40 6f 6e 73 20 6f 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 44 75 70 6c 69 63 61 74 65 20 65 6c 65 ons.of.LIST........Duplicate.ele
33a60 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 20 61 72 65 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 ments.of.LIST.are.determined.by.
33a80 e2 80 98 65 71 75 61 6c e2 80 99 2c 20 6f 72 20 62 79 0a 20 20 20 20 20 e2 80 98 2d 63 6f 6d 70 ...equal...,.or.by.........-comp
33aa0 61 72 65 2d 66 6e e2 80 99 20 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 are-fn....if.that.is.non-...nil.
33ac0 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 65 72 6d 75 74 61 74 69 6f 6e 73 20 28 29 ...............(-permutations.()
33ae0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 29 0a 20 20 20 20 20 20 )...................(nil).......
33b00 20 20 20 20 28 2d 70 65 72 6d 75 74 61 74 69 6f 6e 73 20 27 28 61 20 61 20 62 29 29 0a 20 20 20 ....(-permutations.'(a.a.b))....
33b20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 61 20 61 20 62 29 20 28 61 20 62 20 61 29 20 ...............((a.a.b).(a.b.a).
33b40 28 62 20 61 20 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 65 72 6d 75 74 61 74 69 6f 6e (b.a.a))...........(-permutation
33b60 73 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 s.'(a.b.c))...................((
33b80 61 20 62 20 63 29 20 28 61 20 63 20 62 29 20 28 62 20 61 20 63 29 20 28 62 20 63 20 61 29 20 28 a.b.c).(a.c.b).(b.a.c).(b.c.a).(
33ba0 63 20 61 20 62 29 20 28 63 20 62 20 61 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d c.a.b).(c.b.a))...--.Function:.-
33bc0 64 69 73 74 69 6e 63 74 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 63 6f distinct.(list)......Return.a.co
33be0 70 79 20 6f 66 20 4c 49 53 54 20 77 69 74 68 20 61 6c 6c 20 64 75 70 6c 69 63 61 74 65 20 65 6c py.of.LIST.with.all.duplicate.el
33c00 65 6d 65 6e 74 73 20 72 65 6d 6f 76 65 64 2e 0a 0a 20 20 20 20 20 54 68 65 20 74 65 73 74 20 66 ements.removed........The.test.f
33c20 6f 72 20 65 71 75 61 6c 69 74 79 20 69 73 20 64 6f 6e 65 20 77 69 74 68 20 e2 80 98 65 71 75 61 or.equality.is.done.with....equa
33c40 6c e2 80 99 2c 20 6f 72 20 77 69 74 68 20 e2 80 98 2d 63 6f 6d 70 61 72 65 2d 66 6e e2 80 99 0a l...,.or.with....-compare-fn....
33c60 20 20 20 20 20 69 66 20 74 68 61 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 0a .....if.that.is.non-...nil......
33c80 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d 75 6e 69 71 e2 80 99 2e 0a 0a 20 20 20 20 20 20 .....Alias:....-uniq............
33ca0 20 20 20 20 28 2d 64 69 73 74 69 6e 63 74 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(-distinct.())..............
33cc0 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 69 73 74 69 6e 63 74 20 27 28 31 .....()...........(-distinct.'(1
33ce0 20 31 20 32 20 33 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 .1.2.3.3))...................(1.
33d00 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 69 73 74 69 6e 63 74 20 27 28 74 20 74 20 2.3)...........(-distinct.'(t.t.
33d20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 74 29 0a 0a 20 2d 2d 20 46 t))...................(t)...--.F
33d40 75 6e 63 74 69 6f 6e 3a 20 2d 73 61 6d 65 2d 69 74 65 6d 73 3f 20 28 6c 69 73 74 31 20 6c 69 73 unction:.-same-items?.(list1.lis
33d60 74 32 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 66 t2)......Return.non-...nil....if
33d80 20 4c 49 53 54 31 20 61 6e 64 20 4c 49 53 54 32 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 64 .LIST1.and.LIST2.have.the.same.d
33da0 69 73 74 69 6e 63 74 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 54 68 65 istinct......elements........The
33dc0 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 6c 69 .order.of.the.elements.in.the.li
33de0 73 74 73 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 74 65 72 2e 20 20 54 68 65 20 6c 69 73 74 73 0a sts.does.not.matter...The.lists.
33e00 20 20 20 20 20 6d 61 79 20 62 65 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 6c 65 6e 67 74 68 73 .....may.be.of.different.lengths
33e20 2c 20 69 2e 65 2e 2c 20 63 6f 6e 74 61 69 6e 20 64 75 70 6c 69 63 61 74 65 20 65 6c 65 6d 65 6e ,.i.e.,.contain.duplicate.elemen
33e40 74 73 2e 20 20 54 68 65 0a 20 20 20 20 20 74 65 73 74 20 66 6f 72 20 65 71 75 61 6c 69 74 79 20 ts...The......test.for.equality.
33e60 69 73 20 64 6f 6e 65 20 77 69 74 68 20 e2 80 98 65 71 75 61 6c e2 80 99 2c 20 6f 72 20 77 69 74 is.done.with....equal...,.or.wit
33e80 68 20 e2 80 98 2d 63 6f 6d 70 61 72 65 2d 66 6e e2 80 99 20 69 66 0a 20 20 20 20 20 74 68 61 74 h....-compare-fn....if......that
33ea0 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 .is.non-...nil...........Alias:.
33ec0 e2 80 98 2d 73 61 6d 65 2d 69 74 65 6d 73 2d 70 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 ...-same-items-p................
33ee0 28 2d 73 61 6d 65 2d 69 74 65 6d 73 3f 20 27 28 31 20 32 20 33 29 20 27 28 31 20 32 20 33 29 29 (-same-items?.'(1.2.3).'(1.2.3))
33f00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 ...................t...........(
33f20 2d 73 61 6d 65 2d 69 74 65 6d 73 3f 20 27 28 31 20 31 20 32 20 33 29 20 27 28 33 20 33 20 32 20 -same-items?.'(1.1.2.3).'(3.3.2.
33f40 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 1))...................t.........
33f60 20 20 28 2d 73 61 6d 65 2d 69 74 65 6d 73 3f 20 27 28 31 20 32 20 33 29 20 27 28 31 20 32 20 33 ..(-same-items?.'(1.2.3).'(1.2.3
33f80 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 1f 0a 46 69 .4))...................nil....Fi
33fa0 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4f 74 68 65 72 20 6c 69 73 74 le:.dash.info,..Node:.Other.list
33fc0 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 54 72 65 65 20 6f 70 65 72 61 74 69 .operations,..Next:.Tree.operati
33fe0 6f 6e 73 2c 20 20 50 72 65 76 3a 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 55 70 3a ons,..Prev:.Set.operations,..Up:
34000 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 31 30 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 .Functions..2.10.Other.list.oper
34020 61 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ations.=========================
34040 3d 0a 0a 4f 74 68 65 72 20 6c 69 73 74 20 66 75 6e 63 74 69 6f 6e 73 20 6e 6f 74 20 66 69 74 20 =..Other.list.functions.not.fit.
34060 74 6f 20 62 65 20 63 6c 61 73 73 69 66 69 65 64 20 65 6c 73 65 77 68 65 72 65 2e 0a 0a 20 2d 2d to.be.classified.elsewhere....--
34080 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 6f 74 61 74 65 20 28 6e 20 6c 69 73 74 29 0a 20 20 20 20 .Function:.-rotate.(n.list).....
340a0 20 52 6f 74 61 74 65 20 4c 49 53 54 20 4e 20 70 6c 61 63 65 73 20 74 6f 20 74 68 65 20 72 69 67 .Rotate.LIST.N.places.to.the.rig
340c0 68 74 20 28 6c 65 66 74 20 69 66 20 4e 20 69 73 20 6e 65 67 61 74 69 76 65 29 2e 20 20 54 68 65 ht.(left.if.N.is.negative)...The
340e0 0a 20 20 20 20 20 74 69 6d 65 20 63 6f 6d 70 6c 65 78 69 74 79 20 69 73 20 4f 28 6e 29 2e 0a 0a ......time.complexity.is.O(n)...
34100 20 20 20 20 20 20 20 20 20 20 28 2d 72 6f 74 61 74 65 20 33 20 27 28 31 20 32 20 33 20 34 20 35 ..........(-rotate.3.'(1.2.3.4.5
34120 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 35 20 36 20 37 20 .6.7))...................(5.6.7.
34140 31 20 32 20 33 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 6f 74 61 74 65 20 2d 33 20 27 1.2.3.4)...........(-rotate.-3.'
34160 28 31 20 32 20 33 20 34 20 35 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 (1.2.3.4.5.6.7))................
34180 87 92 20 28 34 20 35 20 36 20 37 20 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 72 ...(4.5.6.7.1.2.3)...........(-r
341a0 6f 74 61 74 65 20 31 36 20 27 28 31 20 32 20 33 20 34 20 35 20 36 20 37 29 29 0a 20 20 20 20 20 otate.16.'(1.2.3.4.5.6.7))......
341c0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 36 20 37 20 31 20 32 20 33 20 34 20 35 29 0a 0a 20 2d .............(6.7.1.2.3.4.5)...-
341e0 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 63 6f 6e 73 2a 20 28 26 72 65 73 74 20 61 72 67 73 29 0a -.Function:.-cons*.(&rest.args).
34200 20 20 20 20 20 4d 61 6b 65 20 61 20 6e 65 77 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 65 6c .....Make.a.new.list.from.the.el
34220 65 6d 65 6e 74 73 20 6f 66 20 41 52 47 53 2e 20 20 54 68 65 20 6c 61 73 74 20 32 20 65 6c 65 6d ements.of.ARGS...The.last.2.elem
34240 65 6e 74 73 20 6f 66 0a 20 20 20 20 20 41 52 47 53 20 61 72 65 20 75 73 65 64 20 61 73 20 74 68 ents.of......ARGS.are.used.as.th
34260 65 20 66 69 6e 61 6c 20 63 6f 6e 73 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 2c 20 73 6f 20 69 e.final.cons.of.the.result,.so.i
34280 66 20 74 68 65 20 66 69 6e 61 6c 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 20 6f 66 20 41 52 47 53 f.the.final......element.of.ARGS
342a0 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 2c 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 .is.not.a.list,.the.result.is.a.
342c0 64 6f 74 74 65 64 20 6c 69 73 74 2e 20 20 57 69 74 68 0a 20 20 20 20 20 6e 6f 20 41 52 47 53 2c dotted.list...With......no.ARGS,
342e0 20 72 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d .return....nil................(-
34300 63 6f 6e 73 2a 20 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 cons*.1.2)...................(1.
34320 2e 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 63 6f 6e 73 2a 20 31 20 32 20 33 29 0a 20 20 ..2)...........(-cons*.1.2.3)...
34340 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 2e 20 33 29 0a 20 20 20 20 20 20 ................(1.2...3).......
34360 20 20 20 20 28 2d 63 6f 6e 73 2a 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 ....(-cons*.1)..................
34380 20 31 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 6e 6f 63 20 28 6c 69 73 74 20 65 6c .1...--.Function:.-snoc.(list.el
343a0 65 6d 20 26 72 65 73 74 20 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 41 70 70 65 6e 64 20 45 em.&rest.elements)......Append.E
343c0 4c 45 4d 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6c 69 73 74 2e 0a 0a 20 20 20 LEM.to.the.end.of.the.list......
343e0 20 20 54 68 69 73 20 69 73 20 6c 69 6b 65 20 e2 80 98 63 6f 6e 73 e2 80 99 2c 20 62 75 74 20 6f ..This.is.like....cons...,.but.o
34400 70 65 72 61 74 65 73 20 6f 6e 20 74 68 65 20 65 6e 64 20 6f 66 20 6c 69 73 74 2e 0a 0a 20 20 20 perates.on.the.end.of.list......
34420 20 20 49 66 20 61 6e 79 20 45 4c 45 4d 45 4e 54 53 20 61 72 65 20 67 69 76 65 6e 2c 20 61 70 70 ..If.any.ELEMENTS.are.given,.app
34440 65 6e 64 20 74 68 65 6d 20 74 6f 20 74 68 65 20 6c 69 73 74 20 61 73 20 77 65 6c 6c 2e 0a 0a 20 end.them.to.the.list.as.well....
34460 20 20 20 20 20 20 20 20 20 28 2d 73 6e 6f 63 20 27 28 31 20 32 20 33 29 20 34 29 0a 20 20 20 20 .........(-snoc.'(1.2.3).4).....
34480 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 29 0a 20 20 20 20 20 20 20 20 ..............(1.2.3.4).........
344a0 20 20 28 2d 73 6e 6f 63 20 27 28 31 20 32 20 33 29 20 34 20 35 20 36 29 0a 20 20 20 20 20 20 20 ..(-snoc.'(1.2.3).4.5.6)........
344c0 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 35 20 36 29 0a 20 20 20 20 20 20 20 ...........(1.2.3.4.5.6)........
344e0 20 20 20 28 2d 73 6e 6f 63 20 27 28 31 20 32 20 33 29 20 27 28 34 20 35 20 36 29 29 0a 20 20 20 ...(-snoc.'(1.2.3).'(4.5.6))....
34500 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 28 34 20 35 20 36 29 29 0a 0a ...............(1.2.3.(4.5.6))..
34520 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 69 6e 74 65 72 70 6f 73 65 20 28 73 65 70 20 6c 69 .--.Function:.-interpose.(sep.li
34540 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 6f 66 20 61 6c st)......Return.a.new.list.of.al
34560 6c 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 4c 49 53 54 20 73 65 70 61 72 61 74 65 64 20 62 79 20 l.elements.in.LIST.separated.by.
34580 53 45 50 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 74 65 72 70 6f 73 65 20 22 2d 22 20 SEP.............(-interpose."-".
345a0 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 ())...................()........
345c0 20 20 20 28 2d 69 6e 74 65 72 70 6f 73 65 20 22 2d 22 20 27 28 22 61 22 29 29 0a 20 20 20 20 20 ...(-interpose."-".'("a"))......
345e0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 .............("a")...........(-i
34600 6e 74 65 72 70 6f 73 65 20 22 2d 22 20 27 28 22 61 22 20 22 62 22 20 22 63 22 29 29 0a 20 20 20 nterpose."-".'("a"."b"."c"))....
34620 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 61 22 20 22 2d 22 20 22 62 22 20 22 2d 22 20 ...............("a"."-"."b"."-".
34640 22 63 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 69 6e 74 65 72 6c 65 61 76 65 20 "c")...--.Function:.-interleave.
34660 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6e 65 77 20 (&rest.lists)......Return.a.new.
34680 6c 69 73 74 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 65 61 63 68 20 6c list.of.the.first.item.in.each.l
346a0 69 73 74 2c 20 74 68 65 6e 20 74 68 65 20 73 65 63 6f 6e 64 0a 20 20 20 20 20 65 74 63 2e 0a 0a ist,.then.the.second......etc...
346c0 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 74 65 72 6c 65 61 76 65 20 27 28 31 20 32 29 20 27 28 ..........(-interleave.'(1.2).'(
346e0 22 61 22 20 22 62 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 22 "a"."b"))...................(1."
34700 61 22 20 32 20 22 62 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 74 65 72 6c 65 61 76 65 a".2."b")...........(-interleave
34720 20 27 28 31 20 32 29 20 27 28 22 61 22 20 22 62 22 29 20 27 28 22 41 22 20 22 42 22 29 29 0a 20 .'(1.2).'("a"."b").'("A"."B"))..
34740 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 22 61 22 20 22 41 22 20 32 20 22 62 .................(1."a"."A".2."b
34760 22 20 22 42 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6e 74 65 72 6c 65 61 76 65 20 27 28 "."B")...........(-interleave.'(
34780 31 20 32 20 33 29 20 27 28 22 61 22 20 22 62 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 1.2.3).'("a"."b"))..............
347a0 20 e2 87 92 20 28 31 20 22 61 22 20 32 20 22 62 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e .....(1."a".2."b")...--.Function
347c0 3a 20 2d 69 6f 74 61 20 28 63 6f 75 6e 74 20 26 6f 70 74 69 6f 6e 61 6c 20 73 74 61 72 74 20 73 :.-iota.(count.&optional.start.s
347e0 74 65 70 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 tep)......Return.a.list.containi
34800 6e 67 20 43 4f 55 4e 54 20 6e 75 6d 62 65 72 73 2e 20 20 53 74 61 72 74 73 20 66 72 6f 6d 20 53 ng.COUNT.numbers...Starts.from.S
34820 54 41 52 54 20 61 6e 64 20 61 64 64 73 0a 20 20 20 20 20 53 54 45 50 20 65 61 63 68 20 74 69 6d TART.and.adds......STEP.each.tim
34840 65 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 53 54 41 52 54 20 69 73 20 7a 65 72 6f 2c 20 74 e...The.default.START.is.zero,.t
34860 68 65 20 64 65 66 61 75 6c 74 20 53 54 45 50 20 69 73 20 31 2e 0a 20 20 20 20 20 54 68 69 73 20 he.default.STEP.is.1.......This.
34880 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 69 74 73 20 6e 61 6d 65 20 66 72 6f 6d 20 74 68 65 function.takes.its.name.from.the
348a0 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 70 72 69 6d 69 74 69 76 65 20 69 6e 0a 20 20 20 20 .corresponding.primitive.in.....
348c0 20 74 68 65 20 41 50 4c 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d .the.APL.language.............(-
348e0 69 6f 74 61 20 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 30 20 31 20 32 iota.6)...................(0.1.2
34900 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6f 74 61 20 34 20 32 2e 35 20 2d .3.4.5)...........(-iota.4.2.5.-
34920 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 2e 35 20 30 2e 35 20 2d 31 2)...................(2.5.0.5.-1
34940 2e 35 20 2d 33 2e 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 6f 74 61 20 2d 31 29 0a 20 20 .5.-3.5)...........(-iota.-1)...
34960 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 e2 86 92 20 57 72 6f 6e 67 20 74 79 70 65 20 ............error....Wrong.type.
34980 61 72 67 75 6d 65 6e 74 3a 20 6e 61 74 6e 75 6d 70 2c 20 2d 31 0a 0a 20 2d 2d 20 46 75 6e 63 74 argument:.natnump,.-1...--.Funct
349a0 69 6f 6e 3a 20 2d 7a 69 70 2d 77 69 74 68 20 28 66 6e 20 6c 69 73 74 31 20 6c 69 73 74 32 29 0a ion:.-zip-with.(fn.list1.list2).
349c0 20 20 20 20 20 5a 69 70 20 4c 49 53 54 31 20 61 6e 64 20 4c 49 53 54 32 20 69 6e 74 6f 20 61 20 .....Zip.LIST1.and.LIST2.into.a.
349e0 6e 65 77 20 6c 69 73 74 20 75 73 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 2e 20 new.list.using.the.function.FN..
34a00 20 54 68 61 74 0a 20 20 20 20 20 69 73 2c 20 61 70 70 6c 79 20 46 4e 20 70 61 69 72 77 69 73 65 .That......is,.apply.FN.pairwise
34a20 20 74 61 6b 69 6e 67 20 61 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 74 68 65 20 6e 65 .taking.as.first.argument.the.ne
34a40 78 74 20 65 6c 65 6d 65 6e 74 20 6f 66 0a 20 20 20 20 20 4c 49 53 54 31 20 61 6e 64 20 61 73 20 xt.element.of......LIST1.and.as.
34a60 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 74 68 65 20 6e 65 78 74 20 65 6c 65 6d 65 6e 74 second.argument.the.next.element
34a80 20 6f 66 20 4c 49 53 54 32 20 61 74 20 74 68 65 0a 20 20 20 20 20 63 6f 72 72 65 73 70 6f 6e 64 .of.LIST2.at.the......correspond
34aa0 69 6e 67 20 70 6f 73 69 74 69 6f 6e 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 73 20 ing.position...The.result.is.as.
34ac0 6c 6f 6e 67 20 61 73 20 74 68 65 20 73 68 6f 72 74 65 72 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 long.as.the.shorter.list........
34ae0 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e This.function...s.anaphoric.coun
34b00 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 7a 69 70 2d 77 69 74 68 e2 80 99 2e 0a 0a 20 20 terpart.is....--zip-with........
34b20 20 20 20 46 6f 72 20 6f 74 68 65 72 20 7a 69 70 73 2c 20 73 65 65 20 61 6c 73 6f 20 e2 80 98 2d ...For.other.zips,.see.also....-
34b40 7a 69 70 2d 6c 69 73 74 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 2d 6c 69 73 74 73 3a 3a zip-lists....(*note.-zip-lists::
34b60 29 20 61 6e 64 0a 20 20 20 20 20 e2 80 98 2d 7a 69 70 2d 66 69 6c 6c e2 80 99 20 28 2a 6e 6f 74 ).and.........-zip-fill....(*not
34b80 65 20 2d 7a 69 70 2d 66 69 6c 6c 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 e.-zip-fill::).............(-zip
34ba0 2d 77 69 74 68 20 23 27 2b 20 27 28 31 20 32 20 33 20 34 29 20 27 28 35 20 36 20 37 29 29 0a 20 -with.#'+.'(1.2.3.4).'(5.6.7))..
34bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 36 20 38 20 31 30 29 0a 20 20 20 20 20 20 .................(6.8.10).......
34be0 20 20 20 20 28 2d 7a 69 70 2d 77 69 74 68 20 23 27 63 6f 6e 73 20 27 28 31 20 32 20 33 29 20 27 ....(-zip-with.#'cons.'(1.2.3).'
34c00 28 34 20 35 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 (4.5.6.7))...................((1
34c20 20 2e 20 34 29 20 28 32 20 2e 20 35 29 20 28 33 20 2e 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 ...4).(2...5).(3...6))..........
34c40 20 28 2d 2d 7a 69 70 2d 77 69 74 68 20 28 66 6f 72 6d 61 74 20 22 25 73 20 26 20 25 73 22 20 69 .(--zip-with.(format."%s.&.%s".i
34c60 74 20 6f 74 68 65 72 29 20 27 28 42 61 74 6d 61 6e 20 4a 65 6b 79 6c 6c 29 20 27 28 52 6f 62 69 t.other).'(Batman.Jekyll).'(Robi
34c80 6e 20 48 79 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 22 42 61 74 n.Hyde))...................("Bat
34ca0 6d 61 6e 20 26 20 52 6f 62 69 6e 22 20 22 4a 65 6b 79 6c 6c 20 26 20 48 79 64 65 22 29 0a 0a 20 man.&.Robin"."Jekyll.&.Hyde")...
34cc0 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 7a 69 70 2d 70 61 69 72 20 28 6c 69 73 74 31 20 6c 69 --.Function:.-zip-pair.(list1.li
34ce0 73 74 32 29 0a 20 20 20 20 20 5a 69 70 20 4c 49 53 54 31 20 61 6e 64 20 4c 49 53 54 32 20 74 6f st2)......Zip.LIST1.and.LIST2.to
34d00 67 65 74 68 65 72 2e 0a 0a 20 20 20 20 20 4d 61 6b 65 20 61 20 70 61 69 72 20 77 69 74 68 20 74 gether........Make.a.pair.with.t
34d20 68 65 20 68 65 61 64 20 6f 66 20 65 61 63 68 20 6c 69 73 74 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 he.head.of.each.list,.followed.b
34d40 79 20 61 20 70 61 69 72 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 73 65 63 6f 6e 64 20 65 6c y.a.pair.with.the......second.el
34d60 65 6d 65 6e 74 20 6f 66 20 65 61 63 68 20 6c 69 73 74 2c 20 61 6e 64 20 73 6f 20 6f 6e 2e 20 20 ement.of.each.list,.and.so.on...
34d80 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 70 61 69 72 73 0a 20 20 20 20 20 72 65 74 75 72 6e 65 The.number.of.pairs......returne
34da0 64 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 d.is.equal.to.the.length.of.the.
34dc0 73 68 6f 72 74 65 72 20 69 6e 70 75 74 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c shorter.input.list........See.al
34de0 73 6f 3a 20 e2 80 98 2d 7a 69 70 2d 6c 69 73 74 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 so:....-zip-lists....(*note.-zip
34e00 2d 6c 69 73 74 73 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 2d 70 61 69 72 -lists::).............(-zip-pair
34e20 20 27 28 31 20 32 20 33 20 34 29 20 27 28 35 20 36 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 .'(1.2.3.4).'(5.6.7))...........
34e40 20 20 20 20 e2 87 92 20 28 28 31 20 2e 20 35 29 20 28 32 20 2e 20 36 29 20 28 33 20 2e 20 37 29 ........((1...5).(2...6).(3...7)
34e60 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 2d 70 61 69 72 20 27 28 31 20 32 20 33 29 20 )...........(-zip-pair.'(1.2.3).
34e80 27 28 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 '(4.5.6))...................((1.
34ea0 2e 20 34 29 20 28 32 20 2e 20 35 29 20 28 33 20 2e 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 ..4).(2...5).(3...6))...........
34ec0 28 2d 7a 69 70 2d 70 61 69 72 20 27 28 31 20 32 29 20 27 28 33 29 29 0a 20 20 20 20 20 20 20 20 (-zip-pair.'(1.2).'(3)).........
34ee0 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 2e 20 33 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f ..........((1...3))...--.Functio
34f00 6e 3a 20 2d 7a 69 70 2d 6c 69 73 74 73 20 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 20 20 n:.-zip-lists.(&rest.lists).....
34f20 20 5a 69 70 20 4c 49 53 54 53 20 74 6f 67 65 74 68 65 72 2e 0a 0a 20 20 20 20 20 47 72 6f 75 70 .Zip.LISTS.together........Group
34f40 20 74 68 65 20 68 65 61 64 20 6f 66 20 65 61 63 68 20 6c 69 73 74 2c 20 66 6f 6c 6c 6f 77 65 64 .the.head.of.each.list,.followed
34f60 20 62 79 20 74 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 6f 66 20 65 61 63 68 0a 20 .by.the.second.element.of.each..
34f80 20 20 20 20 6c 69 73 74 2c 20 61 6e 64 20 73 6f 20 6f 6e 2e 20 20 54 68 65 20 6e 75 6d 62 65 72 ....list,.and.so.on...The.number
34fa0 20 6f 66 20 72 65 74 75 72 6e 65 64 20 67 72 6f 75 70 69 6e 67 73 20 69 73 20 65 71 75 61 6c 20 .of.returned.groupings.is.equal.
34fc0 74 6f 20 74 68 65 0a 20 20 20 20 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 73 68 6f 72 74 65 to.the......length.of.the.shorte
34fe0 73 74 20 69 6e 70 75 74 20 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 st.input.list,.and.the.length.of
35000 20 65 61 63 68 20 67 72 6f 75 70 69 6e 67 0a 20 20 20 20 20 69 73 20 65 71 75 61 6c 20 74 6f 20 .each.grouping......is.equal.to.
35020 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 70 75 74 20 4c 49 53 54 53 2e 0a 0a 20 20 20 20 the.number.of.input.LISTS.......
35040 20 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 69 73 20 61 6c 77 61 79 73 20 61 20 6c 69 .The.return.value.is.always.a.li
35060 73 74 20 6f 66 20 70 72 6f 70 65 72 20 6c 69 73 74 73 2c 20 69 6e 20 63 6f 6e 74 72 61 73 74 20 st.of.proper.lists,.in.contrast.
35080 74 6f 0a 20 20 20 20 20 e2 80 98 2d 7a 69 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 3a 3a to.........-zip....(*note.-zip::
350a0 29 20 77 68 69 63 68 20 72 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 65 64 ).which.returns.a.list.of.dotted
350c0 20 70 61 69 72 73 20 77 68 65 6e 0a 20 20 20 20 20 6f 6e 6c 79 20 74 77 6f 20 69 6e 70 75 74 20 .pairs.when......only.two.input.
350e0 4c 49 53 54 53 20 61 72 65 20 70 72 6f 76 69 64 65 64 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c LISTS.are.provided........See.al
35100 73 6f 3a 20 e2 80 98 2d 7a 69 70 2d 70 61 69 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 2d so:....-zip-pair....(*note.-zip-
35120 70 61 69 72 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 2d 6c 69 73 74 73 20 pair::).............(-zip-lists.
35140 27 28 31 20 32 20 33 29 20 27 28 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 '(1.2.3).'(4.5.6))..............
35160 20 e2 87 92 20 28 28 31 20 34 29 20 28 32 20 35 29 20 28 33 20 36 29 29 0a 20 20 20 20 20 20 20 .....((1.4).(2.5).(3.6))........
35180 20 20 20 28 2d 7a 69 70 2d 6c 69 73 74 73 20 27 28 31 20 32 20 33 29 20 27 28 34 20 35 20 36 20 ...(-zip-lists.'(1.2.3).'(4.5.6.
351a0 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 34 29 20 28 32 20 7))...................((1.4).(2.
351c0 35 29 20 28 33 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 2d 6c 69 73 74 73 20 5).(3.6))...........(-zip-lists.
351e0 27 28 31 20 32 29 20 27 28 33 20 34 20 35 29 20 27 28 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 '(1.2).'(3.4.5).'(6))...........
35200 20 20 20 20 e2 87 92 20 28 28 31 20 33 20 36 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a ........((1.3.6))...--.Function:
35220 20 2d 7a 69 70 2d 6c 69 73 74 73 2d 66 69 6c 6c 20 28 66 69 6c 6c 2d 76 61 6c 75 65 20 26 72 65 .-zip-lists-fill.(fill-value.&re
35240 73 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 5a 69 70 20 4c 49 53 54 53 20 74 6f 67 65 74 68 65 st.lists)......Zip.LISTS.togethe
35260 72 2c 20 70 61 64 64 69 6e 67 20 73 68 6f 72 74 65 72 20 6c 69 73 74 73 20 77 69 74 68 20 46 49 r,.padding.shorter.lists.with.FI
35280 4c 4c 2d 56 41 4c 55 45 2e 20 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 6c 69 6b 65 20 e2 80 98 LL-VALUE...This.is......like....
352a0 2d 7a 69 70 2d 6c 69 73 74 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 2d 6c 69 73 74 73 3a -zip-lists....(*note.-zip-lists:
352c0 3a 29 20 28 77 68 69 63 68 20 73 65 65 29 2c 20 65 78 63 65 70 74 20 69 74 0a 20 20 20 20 20 72 :).(which.see),.except.it......r
352e0 65 74 61 69 6e 73 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73 20 61 74 20 70 6f 73 69 74 69 6f 6e 73 etains.all.elements.at.positions
35300 20 62 65 79 6f 6e 64 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73 68 6f 72 74 65 73 74 0a .beyond.the.end.of.the.shortest.
35320 20 20 20 20 20 6c 69 73 74 2e 20 20 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 74 75 72 6e .....list...The.number.of.return
35340 65 64 20 67 72 6f 75 70 69 6e 67 73 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 6c 65 6e ed.groupings.is.equal.to.the.len
35360 67 74 68 20 6f 66 0a 20 20 20 20 20 74 68 65 20 6c 6f 6e 67 65 73 74 20 69 6e 70 75 74 20 6c 69 gth.of......the.longest.input.li
35380 73 74 2c 20 61 6e 64 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 65 61 63 68 20 67 72 6f 75 70 st,.and.the.length.of.each.group
353a0 69 6e 67 20 69 73 20 65 71 75 61 6c 20 74 6f 0a 20 20 20 20 20 74 68 65 20 6e 75 6d 62 65 72 20 ing.is.equal.to......the.number.
353c0 6f 66 20 69 6e 70 75 74 20 4c 49 53 54 53 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 of.input.LISTS.............(-zip
353e0 2d 6c 69 73 74 73 2d 66 69 6c 6c 20 30 20 27 28 31 20 32 29 20 27 28 33 20 34 20 35 29 20 27 28 -lists-fill.0.'(1.2).'(3.4.5).'(
35400 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 33 20 36 29 20 28 6))...................((1.3.6).(
35420 32 20 34 20 30 29 20 28 30 20 35 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 2d 2.4.0).(0.5.0))...........(-zip-
35440 6c 69 73 74 73 2d 66 69 6c 6c 20 30 20 27 28 31 20 32 29 20 27 28 33 20 34 29 20 27 28 35 20 36 lists-fill.0.'(1.2).'(3.4).'(5.6
35460 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 33 20 35 29 20 28 32 ))...................((1.3.5).(2
35480 20 34 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 2d 6c 69 73 74 73 2d 66 69 6c .4.6))...........(-zip-lists-fil
354a0 6c 20 30 20 27 28 31 20 32 20 33 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l.0.'(1.2.3).nil)...............
354c0 e2 87 92 20 28 28 31 20 30 29 20 28 32 20 30 29 20 28 33 20 30 29 29 0a 0a 20 2d 2d 20 46 75 6e ....((1.0).(2.0).(3.0))...--.Fun
354e0 63 74 69 6f 6e 3a 20 2d 7a 69 70 20 28 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 5a ction:.-zip.(&rest.lists)......Z
35500 69 70 20 4c 49 53 54 53 20 74 6f 67 65 74 68 65 72 2e 0a 0a 20 20 20 20 20 47 72 6f 75 70 20 74 ip.LISTS.together........Group.t
35520 68 65 20 68 65 61 64 20 6f 66 20 65 61 63 68 20 6c 69 73 74 2c 20 66 6f 6c 6c 6f 77 65 64 20 62 he.head.of.each.list,.followed.b
35540 79 20 74 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 6f 66 20 65 61 63 68 0a 20 20 20 y.the.second.element.of.each....
35560 20 20 6c 69 73 74 2c 20 61 6e 64 20 73 6f 20 6f 6e 2e 20 20 54 68 65 20 6e 75 6d 62 65 72 20 6f ..list,.and.so.on...The.number.o
35580 66 20 72 65 74 75 72 6e 65 64 20 67 72 6f 75 70 69 6e 67 73 20 69 73 20 65 71 75 61 6c 20 74 6f f.returned.groupings.is.equal.to
355a0 20 74 68 65 0a 20 20 20 20 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 73 68 6f 72 74 65 73 74 .the......length.of.the.shortest
355c0 20 69 6e 70 75 74 20 6c 69 73 74 2c 20 61 6e 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 .input.list,.and.the.number.of.i
355e0 74 65 6d 73 20 69 6e 20 65 61 63 68 0a 20 20 20 20 20 67 72 6f 75 70 69 6e 67 20 69 73 20 65 71 tems.in.each......grouping.is.eq
35600 75 61 6c 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 6e 70 75 74 20 4c 49 53 54 53 ual.to.the.number.of.input.LISTS
35620 2e 0a 0a 20 20 20 20 20 49 66 20 6f 6e 6c 79 20 74 77 6f 20 4c 49 53 54 53 20 61 72 65 20 70 72 ........If.only.two.LISTS.are.pr
35640 6f 76 69 64 65 64 20 61 73 20 61 72 67 75 6d 65 6e 74 73 2c 20 72 65 74 75 72 6e 20 74 68 65 20 ovided.as.arguments,.return.the.
35660 67 72 6f 75 70 69 6e 67 73 0a 20 20 20 20 20 61 73 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 groupings......as.a.list.of.dott
35680 65 64 20 70 61 69 72 73 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 20 74 68 65 ed.pairs...Otherwise,.return.the
356a0 20 67 72 6f 75 70 69 6e 67 73 20 61 73 20 61 0a 20 20 20 20 20 6c 69 73 74 20 6f 66 20 70 72 6f .groupings.as.a......list.of.pro
356c0 70 65 72 20 6c 69 73 74 73 2e 0a 0a 20 20 20 20 20 53 69 6e 63 65 20 74 68 65 20 72 65 74 75 72 per.lists........Since.the.retur
356e0 6e 20 76 61 6c 75 65 20 63 68 61 6e 67 65 73 20 66 6f 72 6d 20 64 65 70 65 6e 64 69 6e 67 20 6f n.value.changes.form.depending.o
35700 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2c 20 n.the.number.of......arguments,.
35720 69 74 20 69 73 20 67 65 6e 65 72 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 it.is.generally.recommended.to.u
35740 73 65 20 e2 80 98 2d 7a 69 70 2d 6c 69 73 74 73 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 se....-zip-lists....(*note......
35760 2d 7a 69 70 2d 6c 69 73 74 73 3a 3a 29 20 69 6e 73 74 65 61 64 2c 20 6f 72 20 e2 80 98 2d 7a 69 -zip-lists::).instead,.or....-zi
35780 70 2d 70 61 69 72 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 2d 70 61 69 72 3a 3a 29 20 69 66 p-pair....(*note.-zip-pair::).if
357a0 20 61 20 6c 69 73 74 0a 20 20 20 20 20 6f 66 20 64 6f 74 74 65 64 20 70 61 69 72 73 20 69 73 20 .a.list......of.dotted.pairs.is.
357c0 64 65 73 69 72 65 64 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 75 6e 7a desired........See.also:....-unz
357e0 69 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 75 6e 7a 69 70 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 ip....(*note.-unzip::)..........
35800 20 20 20 28 2d 7a 69 70 20 27 28 31 20 32 20 33 20 34 29 20 27 28 35 20 36 20 37 29 20 27 28 38 ...(-zip.'(1.2.3.4).'(5.6.7).'(8
35820 20 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 35 20 38 29 20 .9))...................((1.5.8).
35840 28 32 20 36 20 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 20 27 28 31 20 32 20 33 (2.6.9))...........(-zip.'(1.2.3
35860 29 20 27 28 34 20 35 20 36 29 20 27 28 37 20 38 20 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ).'(4.5.6).'(7.8.9))............
35880 20 20 20 e2 87 92 20 28 28 31 20 34 20 37 29 20 28 32 20 35 20 38 29 20 28 33 20 36 20 39 29 29 .......((1.4.7).(2.5.8).(3.6.9))
358a0 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 ...........(-zip.'(1.2.3))......
358c0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 20 28 32 29 20 28 33 29 29 0a 0a 20 2d 2d 20 .............((1).(2).(3))...--.
358e0 46 75 6e 63 74 69 6f 6e 3a 20 2d 7a 69 70 2d 66 69 6c 6c 20 28 66 69 6c 6c 2d 76 61 6c 75 65 20 Function:.-zip-fill.(fill-value.
35900 26 72 65 73 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 5a 69 70 20 4c 49 53 54 53 20 74 6f 67 65 &rest.lists)......Zip.LISTS.toge
35920 74 68 65 72 2c 20 70 61 64 64 69 6e 67 20 73 68 6f 72 74 65 72 20 6c 69 73 74 73 20 77 69 74 68 ther,.padding.shorter.lists.with
35940 20 46 49 4c 4c 2d 56 41 4c 55 45 2e 20 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 6c 69 6b 65 20 .FILL-VALUE...This.is......like.
35960 e2 80 98 2d 7a 69 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 3a 3a 29 20 28 77 68 69 63 68 ...-zip....(*note.-zip::).(which
35980 20 73 65 65 29 2c 20 65 78 63 65 70 74 20 69 74 20 72 65 74 61 69 6e 73 20 61 6c 6c 0a 20 20 20 .see),.except.it.retains.all....
359a0 20 20 65 6c 65 6d 65 6e 74 73 20 61 74 20 70 6f 73 69 74 69 6f 6e 73 20 62 65 79 6f 6e 64 20 74 ..elements.at.positions.beyond.t
359c0 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73 68 6f 72 74 65 73 74 20 6c 69 73 74 2e 20 20 54 68 he.end.of.the.shortest.list...Th
359e0 65 0a 20 20 20 20 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 74 75 72 6e 65 64 20 67 72 6f 75 70 69 e......number.of.returned.groupi
35a00 6e 67 73 20 69 73 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 ngs.is.equal.to.the.length.of.th
35a20 65 20 6c 6f 6e 67 65 73 74 0a 20 20 20 20 20 69 6e 70 75 74 20 6c 69 73 74 2c 20 61 6e 64 20 74 e.longest......input.list,.and.t
35a40 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 65 61 63 68 20 67 72 6f 75 70 69 6e 67 20 69 73 20 65 71 he.length.of.each.grouping.is.eq
35a60 75 61 6c 20 74 6f 20 74 68 65 20 6e 75 6d 62 65 72 0a 20 20 20 20 20 6f 66 20 69 6e 70 75 74 20 ual.to.the.number......of.input.
35a80 4c 49 53 54 53 2e 0a 0a 20 20 20 20 20 53 69 6e 63 65 20 74 68 65 20 72 65 74 75 72 6e 20 76 61 LISTS........Since.the.return.va
35aa0 6c 75 65 20 63 68 61 6e 67 65 73 20 66 6f 72 6d 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 lue.changes.form.depending.on.th
35ac0 65 20 6e 75 6d 62 65 72 20 6f 66 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2c 20 69 74 20 69 e.number.of......arguments,.it.i
35ae0 73 20 67 65 6e 65 72 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 e2 s.generally.recommended.to.use..
35b00 80 98 2d 7a 69 70 2d 6c 69 73 74 73 2d 66 69 6c 6c e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 ..-zip-lists-fill.........(*note
35b20 20 2d 7a 69 70 2d 6c 69 73 74 73 2d 66 69 6c 6c 3a 3a 29 20 69 6e 73 74 65 61 64 2c 20 75 6e 6c .-zip-lists-fill::).instead,.unl
35b40 65 73 73 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 74 65 64 20 70 61 69 72 73 20 69 73 0a 20 20 ess.a.list.of.dotted.pairs.is...
35b60 20 20 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 73 69 72 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 ...explicitly.desired...........
35b80 20 20 28 2d 7a 69 70 2d 66 69 6c 6c 20 30 20 27 28 31 20 32 20 33 29 20 27 28 34 20 35 29 29 0a ..(-zip-fill.0.'(1.2.3).'(4.5)).
35ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 2e 20 34 29 20 28 32 20 2e 20 ..................((1...4).(2...
35bc0 35 29 20 28 33 20 2e 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 7a 69 70 2d 66 69 6c 6c 5).(3...0))...........(-zip-fill
35be0 20 30 20 28 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 .0.().'(1.2.3)).................
35c00 92 20 28 28 30 20 2e 20 31 29 20 28 30 20 2e 20 32 29 20 28 30 20 2e 20 33 29 29 0a 20 20 20 20 ..((0...1).(0...2).(0...3)).....
35c20 20 20 20 20 20 20 28 2d 7a 69 70 2d 66 69 6c 6c 20 30 20 27 28 31 20 32 29 20 27 28 33 20 34 29 ......(-zip-fill.0.'(1.2).'(3.4)
35c40 20 27 28 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 33 .'(5.6))...................((1.3
35c60 20 35 29 20 28 32 20 34 20 36 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 75 6e 7a .5).(2.4.6))...--.Function:.-unz
35c80 69 70 2d 6c 69 73 74 73 20 28 6c 69 73 74 73 29 0a 20 20 20 20 20 55 6e 7a 69 70 20 4c 49 53 54 ip-lists.(lists)......Unzip.LIST
35ca0 53 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 6a 75 73 74 20 6c 69 6b 65 20 e2 80 S........This.works.just.like...
35cc0 98 2d 7a 69 70 2d 6c 69 73 74 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 2d 6c 69 73 74 73 .-zip-lists....(*note.-zip-lists
35ce0 3a 3a 29 20 28 77 68 69 63 68 20 73 65 65 29 2c 0a 20 20 20 20 20 62 75 74 20 74 61 6b 65 73 20 ::).(which.see),......but.takes.
35d00 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 76 61 72 a.list.of.lists.instead.of.a.var
35d20 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2c 20 iable.number.of......arguments,.
35d40 73 75 63 68 20 74 68 61 74 0a 0a 20 20 20 20 20 28 2d 75 6e 7a 69 70 2d 6c 69 73 74 73 20 28 2d such.that.......(-unzip-lists.(-
35d60 7a 69 70 2d 6c 69 73 74 73 20 41 52 47 53 2e 2e 2e 29 29 0a 0a 20 20 20 20 20 69 73 20 69 64 65 zip-lists.ARGS...)).......is.ide
35d80 6e 74 69 74 79 20 28 67 69 76 65 6e 20 74 68 61 74 20 74 68 65 20 6c 69 73 74 73 20 63 6f 6d 70 ntity.(given.that.the.lists.comp
35da0 72 69 73 69 6e 67 20 41 52 47 53 20 61 72 65 20 6f 66 20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 rising.ARGS.are.of.the.same.....
35dc0 20 6c 65 6e 67 74 68 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 7a 69 70 2d 6c 69 73 .length).............(-unzip-lis
35de0 74 73 20 28 2d 7a 69 70 2d 6c 69 73 74 73 20 27 28 31 20 32 29 20 27 28 33 20 34 29 20 27 28 35 ts.(-zip-lists.'(1.2).'(3.4).'(5
35e00 20 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 29 20 28 .6)))...................((1.2).(
35e20 33 20 34 29 20 28 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 7a 69 70 2d 6c 69 3.4).(5.6))...........(-unzip-li
35e40 73 74 73 20 27 28 28 31 20 32 20 33 29 20 28 34 20 35 29 20 28 36 20 37 29 20 28 38 20 39 29 29 sts.'((1.2.3).(4.5).(6.7).(8.9))
35e60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 34 20 36 20 38 29 20 28 )...................((1.4.6.8).(
35e80 32 20 35 20 37 20 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 7a 69 70 2d 6c 69 73 74 2.5.7.9))...........(-unzip-list
35ea0 73 20 27 28 28 31 20 32 20 33 29 20 28 34 20 35 20 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 s.'((1.2.3).(4.5.6)))...........
35ec0 20 20 20 20 e2 87 92 20 28 28 31 20 34 29 20 28 32 20 35 29 20 28 33 20 36 29 29 0a 0a 20 2d 2d ........((1.4).(2.5).(3.6))...--
35ee0 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 75 6e 7a 69 70 20 28 6c 69 73 74 73 29 0a 20 20 20 20 20 55 .Function:.-unzip.(lists)......U
35f00 6e 7a 69 70 20 4c 49 53 54 53 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 77 6f 72 6b 73 20 6a 75 73 nzip.LISTS........This.works.jus
35f20 74 20 6c 69 6b 65 20 e2 80 98 2d 7a 69 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 7a 69 70 3a 3a 29 t.like....-zip....(*note.-zip::)
35f40 20 28 77 68 69 63 68 20 73 65 65 29 2c 20 62 75 74 20 74 61 6b 65 73 20 61 0a 20 20 20 20 20 6c .(which.see),.but.takes.a......l
35f60 69 73 74 20 6f 66 20 6c 69 73 74 73 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 76 61 72 69 61 62 ist.of.lists.instead.of.a.variab
35f80 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 2c 20 73 75 63 68 20 74 68 61 le.number.of.arguments,.such.tha
35fa0 74 0a 0a 20 20 20 20 20 28 2d 75 6e 7a 69 70 20 28 2d 7a 69 70 20 4c 31 20 4c 32 20 4c 33 20 2e t.......(-unzip.(-zip.L1.L2.L3..
35fc0 2e 2e 29 29 0a 0a 20 20 20 20 20 69 73 20 69 64 65 6e 74 69 74 79 20 28 67 69 76 65 6e 20 74 68 ..)).......is.identity.(given.th
35fe0 61 74 20 74 68 65 20 6c 69 73 74 73 20 61 72 65 20 6f 66 20 74 68 65 20 73 61 6d 65 20 6c 65 6e at.the.lists.are.of.the.same.len
36000 67 74 68 2c 20 61 6e 64 20 74 68 61 74 0a 20 20 20 20 20 e2 80 98 2d 7a 69 70 e2 80 99 20 28 2a gth,.and.that.........-zip....(*
36020 6e 6f 74 65 20 2d 7a 69 70 3a 3a 29 20 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 20 77 69 74 68 20 note.-zip::).is.not.called.with.
36040 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 62 65 63 61 75 73 65 20 6f 66 0a 20 20 20 20 20 74 two.arguments,.because.of......t
36060 68 65 20 63 61 76 65 61 74 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 69 74 73 20 64 6f 63 73 74 he.caveat.described.in.its.docst
36080 72 69 6e 67 29 2e 0a 0a 20 20 20 20 20 4e 6f 74 65 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72 20 ring)........Note.in.particular.
360a0 74 68 61 74 20 63 61 6c 6c 69 6e 67 20 e2 80 98 2d 75 6e 7a 69 70 e2 80 99 20 28 2a 6e 6f 74 65 that.calling....-unzip....(*note
360c0 20 2d 75 6e 7a 69 70 3a 3a 29 20 6f 6e 20 61 20 6c 69 73 74 0a 20 20 20 20 20 6f 66 20 74 77 6f .-unzip::).on.a.list......of.two
360e0 20 6c 69 73 74 73 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 64 6f 74 .lists.will.return.a.list.of.dot
36100 74 65 64 20 70 61 69 72 73 2e 0a 0a 20 20 20 20 20 53 69 6e 63 65 20 74 68 65 20 72 65 74 75 72 ted.pairs........Since.the.retur
36120 6e 20 76 61 6c 75 65 20 63 68 61 6e 67 65 73 20 66 6f 72 6d 20 64 65 70 65 6e 64 69 6e 67 20 6f n.value.changes.form.depending.o
36140 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 20 20 20 20 20 4c 49 53 54 53 2c 20 69 74 20 69 n.the.number.of......LISTS,.it.i
36160 73 20 67 65 6e 65 72 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 73 65 20 e2 s.generally.recommended.to.use..
36180 80 98 2d 75 6e 7a 69 70 2d 6c 69 73 74 73 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 75 ..-unzip-lists....(*note......-u
361a0 6e 7a 69 70 2d 6c 69 73 74 73 3a 3a 29 20 69 6e 73 74 65 61 64 2e 0a 0a 20 20 20 20 20 20 20 20 nzip-lists::).instead...........
361c0 20 20 28 2d 75 6e 7a 69 70 20 28 2d 7a 69 70 20 27 28 31 20 32 29 20 27 28 33 20 34 29 20 27 28 ..(-unzip.(-zip.'(1.2).'(3.4).'(
361e0 35 20 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 2e 20 32 5.6)))...................((1...2
36200 29 20 28 33 20 2e 20 34 29 20 28 35 20 2e 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 ).(3...4).(5...6))...........(-u
36220 6e 7a 69 70 20 27 28 28 31 20 32 20 33 29 20 28 34 20 35 20 36 29 29 29 0a 20 20 20 20 20 20 20 nzip.'((1.2.3).(4.5.6)))........
36240 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 2e 20 34 29 20 28 32 20 2e 20 35 29 20 28 33 20 2e ...........((1...4).(2...5).(3..
36260 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 75 6e 7a 69 70 20 27 28 28 31 20 32 20 33 29 .6))...........(-unzip.'((1.2.3)
36280 20 28 34 20 35 29 20 28 36 20 37 29 20 28 38 20 39 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(4.5).(6.7).(8.9)))............
362a0 20 20 20 e2 87 92 20 28 28 31 20 34 20 36 20 38 29 20 28 32 20 35 20 37 20 39 29 29 0a 0a 20 2d .......((1.4.6.8).(2.5.7.9))...-
362c0 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 61 64 20 28 66 69 6c 6c 2d 76 61 6c 75 65 20 26 72 65 -.Function:.-pad.(fill-value.&re
362e0 73 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 50 61 64 20 65 61 63 68 20 6f 66 20 4c 49 53 54 53 st.lists)......Pad.each.of.LISTS
36300 20 77 69 74 68 20 46 49 4c 4c 2d 56 41 4c 55 45 20 75 6e 74 69 6c 20 74 68 65 79 20 61 6c 6c 20 .with.FILL-VALUE.until.they.all.
36320 68 61 76 65 20 65 71 75 61 6c 0a 20 20 20 20 20 6c 65 6e 67 74 68 73 2e 0a 0a 20 20 20 20 20 45 have.equal......lengths........E
36340 6e 73 75 72 65 20 61 6c 6c 20 4c 49 53 54 53 20 61 72 65 20 61 73 20 6c 6f 6e 67 20 61 73 20 74 nsure.all.LISTS.are.as.long.as.t
36360 68 65 20 6c 6f 6e 67 65 73 74 20 6f 6e 65 20 62 79 20 72 65 70 65 61 74 65 64 6c 79 0a 20 20 20 he.longest.one.by.repeatedly....
36380 20 20 61 70 70 65 6e 64 69 6e 67 20 46 49 4c 4c 2d 56 41 4c 55 45 20 74 6f 20 74 68 65 20 73 68 ..appending.FILL-VALUE.to.the.sh
363a0 6f 72 74 65 72 20 6c 69 73 74 73 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 72 65 73 75 orter.lists,.and.return.the.resu
363c0 6c 74 69 6e 67 0a 20 20 20 20 20 4c 49 53 54 53 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 lting......LISTS.............(-p
363e0 61 64 20 30 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 29 ad.0.())...................(nil)
36400 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 64 20 30 20 27 28 31 20 32 29 20 27 28 33 20 34 29 ...........(-pad.0.'(1.2).'(3.4)
36420 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 29 20 28 33 20 34 29 )...................((1.2).(3.4)
36440 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 70 61 64 20 30 20 27 28 31 20 32 29 20 27 28 33 20 34 )...........(-pad.0.'(1.2).'(3.4
36460 20 35 20 36 29 20 27 28 37 20 38 20 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 .5.6).'(7.8.9)).................
36480 92 20 28 28 31 20 32 20 30 20 30 29 20 28 33 20 34 20 35 20 36 29 20 28 37 20 38 20 39 20 30 29 ..((1.2.0.0).(3.4.5.6).(7.8.9.0)
364a0 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 61 62 6c 65 20 28 66 6e 20 26 72 65 73 )...--.Function:.-table.(fn.&res
364c0 74 20 6c 69 73 74 73 29 0a 20 20 20 20 20 43 6f 6d 70 75 74 65 20 6f 75 74 65 72 20 70 72 6f 64 t.lists)......Compute.outer.prod
364e0 75 63 74 20 6f 66 20 4c 49 53 54 53 20 75 73 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 46 4e 2e 0a uct.of.LISTS.using.function.FN..
36500 0a 20 20 20 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 73 68 6f 75 6c 64 20 68 61 76 ......The.function.FN.should.hav
36520 65 20 74 68 65 20 73 61 6d 65 20 61 72 69 74 79 20 61 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f e.the.same.arity.as.the.number.o
36540 66 0a 20 20 20 20 20 73 75 70 70 6c 69 65 64 20 6c 69 73 74 73 2e 0a 0a 20 20 20 20 20 54 68 65 f......supplied.lists........The
36560 20 6f 75 74 65 72 20 70 72 6f 64 75 63 74 20 69 73 20 63 6f 6d 70 75 74 65 64 20 62 79 20 61 70 .outer.product.is.computed.by.ap
36580 70 6c 79 69 6e 67 20 66 6e 20 74 6f 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 0a 20 20 20 20 20 63 plying.fn.to.all.possible......c
365a0 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 63 72 65 61 74 65 64 20 62 79 20 74 61 6b 69 6e 67 20 6f 6e ombinations.created.by.taking.on
365c0 65 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 65 61 63 68 20 6c 69 73 74 20 69 6e 20 6f 72 64 65 e.element.from.each.list.in.orde
365e0 72 2e 0a 20 20 20 20 20 54 68 65 20 64 69 6d 65 6e 73 69 6f 6e 20 6f 66 20 74 68 65 20 72 65 73 r.......The.dimension.of.the.res
36600 75 6c 74 20 69 73 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 73 29 2e 0a 0a 20 20 20 20 20 53 65 65 ult.is.(length.lists)........See
36620 20 61 6c 73 6f 3a 20 e2 80 98 2d 74 61 62 6c 65 2d 66 6c 61 74 e2 80 99 20 28 2a 6e 6f 74 65 20 .also:....-table-flat....(*note.
36640 2d 74 61 62 6c 65 2d 66 6c 61 74 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 62 6c -table-flat::)............(-tabl
36660 65 20 27 2a 20 27 28 31 20 32 20 33 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 e.'*.'(1.2.3).'(1.2.3)).........
36680 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 28 32 20 34 20 36 29 20 28 33 20 36 20 ..........((1.2.3).(2.4.6).(3.6.
366a0 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 62 6c 65 20 28 6c 61 6d 62 64 61 20 28 61 9))...........(-table.(lambda.(a
366c0 20 62 29 20 28 2d 73 75 6d 20 28 2d 7a 69 70 2d 77 69 74 68 20 27 2a 20 61 20 62 29 29 29 20 27 .b).(-sum.(-zip-with.'*.a.b))).'
366e0 28 28 31 20 32 29 20 28 33 20 34 29 29 20 27 28 28 31 20 33 29 20 28 32 20 34 29 29 29 0a 20 20 ((1.2).(3.4)).'((1.3).(2.4)))...
36700 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 37 20 31 35 29 20 28 31 30 20 32 32 29 29 ................((7.15).(10.22))
36720 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 27 2d 74 61 62 6c 65 20 27 6c 69 73 74 20 ...........(apply.'-table.'list.
36740 28 2d 72 65 70 65 61 74 20 33 20 27 28 31 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (-repeat.3.'(1.2))).............
36760 20 20 e2 87 92 20 28 28 28 28 31 20 31 20 31 29 20 28 32 20 31 20 31 29 29 20 28 28 31 20 32 20 ......((((1.1.1).(2.1.1)).((1.2.
36780 31 29 20 28 32 20 32 20 31 29 29 29 20 28 28 28 31 20 31 20 32 29 20 28 32 20 31 20 32 29 29 20 1).(2.2.1))).(((1.1.2).(2.1.2)).
367a0 28 28 31 20 32 20 32 29 20 28 32 20 32 20 32 29 29 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f ((1.2.2).(2.2.2))))...--.Functio
367c0 6e 3a 20 2d 74 61 62 6c 65 2d 66 6c 61 74 20 28 66 6e 20 26 72 65 73 74 20 6c 69 73 74 73 29 0a n:.-table-flat.(fn.&rest.lists).
367e0 20 20 20 20 20 43 6f 6d 70 75 74 65 20 66 6c 61 74 20 6f 75 74 65 72 20 70 72 6f 64 75 63 74 20 .....Compute.flat.outer.product.
36800 6f 66 20 4c 49 53 54 53 20 75 73 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 46 4e 2e 0a 0a 20 20 20 of.LISTS.using.function.FN......
36820 20 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 ..The.function.FN.should.have.th
36840 65 20 73 61 6d 65 20 61 72 69 74 79 20 61 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 0a 20 20 e.same.arity.as.the.number.of...
36860 20 20 20 73 75 70 70 6c 69 65 64 20 6c 69 73 74 73 2e 0a 0a 20 20 20 20 20 54 68 65 20 6f 75 74 ...supplied.lists........The.out
36880 65 72 20 70 72 6f 64 75 63 74 20 69 73 20 63 6f 6d 70 75 74 65 64 20 62 79 20 61 70 70 6c 79 69 er.product.is.computed.by.applyi
368a0 6e 67 20 66 6e 20 74 6f 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 0a 20 20 20 20 20 63 6f 6d 62 69 ng.fn.to.all.possible......combi
368c0 6e 61 74 69 6f 6e 73 20 63 72 65 61 74 65 64 20 62 79 20 74 61 6b 69 6e 67 20 6f 6e 65 20 65 6c nations.created.by.taking.one.el
368e0 65 6d 65 6e 74 20 66 72 6f 6d 20 65 61 63 68 20 6c 69 73 74 20 69 6e 20 6f 72 64 65 72 2e 0a 20 ement.from.each.list.in.order...
36900 20 20 20 20 54 68 65 20 72 65 73 75 6c 74 73 20 61 72 65 20 66 6c 61 74 74 65 6e 65 64 2c 20 69 ....The.results.are.flattened,.i
36920 67 6e 6f 72 69 6e 67 20 74 68 65 20 74 65 6e 73 6f 72 20 73 74 72 75 63 74 75 72 65 20 6f 66 20 gnoring.the.tensor.structure.of.
36940 74 68 65 0a 20 20 20 20 20 72 65 73 75 6c 74 2e 20 20 54 68 69 73 20 69 73 20 65 71 75 69 76 61 the......result...This.is.equiva
36960 6c 65 6e 74 20 74 6f 20 63 61 6c 6c 69 6e 67 3a 0a 0a 20 20 20 20 20 28 2d 66 6c 61 74 74 65 6e lent.to.calling:.......(-flatten
36980 2d 6e 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 6c 69 73 74 73 29 29 20 28 61 70 70 6c 79 20 e2 80 -n.(1-.(length.lists)).(apply...
369a0 99 2d 74 61 62 6c 65 20 66 6e 20 6c 69 73 74 73 29 29 0a 0a 20 20 20 20 20 62 75 74 20 74 68 65 .-table.fn.lists)).......but.the
369c0 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 68 65 72 65 20 69 73 20 6d 75 63 68 20 6d 6f 72 .implementation.here.is.much.mor
369e0 65 20 65 66 66 69 63 69 65 6e 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 e.efficient........See.also:....
36a00 2d 66 6c 61 74 74 65 6e 2d 6e e2 80 99 20 28 2a 6e 6f 74 65 20 2d 66 6c 61 74 74 65 6e 2d 6e 3a -flatten-n....(*note.-flatten-n:
36a20 3a 29 2c 20 e2 80 98 2d 74 61 62 6c 65 e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 74 61 :),....-table....(*note......-ta
36a40 62 6c 65 3a 3a 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 62 6c 65 2d 66 6c 61 74 20 27 ble::)............(-table-flat.'
36a60 6c 69 73 74 20 27 28 31 20 32 20 33 29 20 27 28 61 20 62 20 63 29 29 0a 20 20 20 20 20 20 20 20 list.'(1.2.3).'(a.b.c)).........
36a80 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 61 29 20 28 32 20 61 29 20 28 33 20 61 29 20 28 31 20 ..........((1.a).(2.a).(3.a).(1.
36aa0 62 29 20 28 32 20 62 29 20 28 33 20 62 29 20 28 31 20 63 29 20 28 32 20 63 29 20 28 33 20 63 29 b).(2.b).(3.b).(1.c).(2.c).(3.c)
36ac0 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 61 62 6c 65 2d 66 6c 61 74 20 27 2a 20 27 28 31 20 )...........(-table-flat.'*.'(1.
36ae0 32 20 33 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 2.3).'(1.2.3))..................
36b00 20 28 31 20 32 20 33 20 32 20 34 20 36 20 33 20 36 20 39 29 0a 20 20 20 20 20 20 20 20 20 20 28 .(1.2.3.2.4.6.3.6.9)...........(
36b20 61 70 70 6c 79 20 27 2d 74 61 62 6c 65 2d 66 6c 61 74 20 27 6c 69 73 74 20 28 2d 72 65 70 65 61 apply.'-table-flat.'list.(-repea
36b40 74 20 33 20 27 28 31 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 t.3.'(1.2)))...................(
36b60 28 31 20 31 20 31 29 20 28 32 20 31 20 31 29 20 28 31 20 32 20 31 29 20 28 32 20 32 20 31 29 20 (1.1.1).(2.1.1).(1.2.1).(2.2.1).
36b80 28 31 20 31 20 32 29 20 28 32 20 31 20 32 29 20 28 31 20 32 20 32 29 20 28 32 20 32 20 32 29 29 (1.1.2).(2.1.2).(1.2.2).(2.2.2))
36ba0 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 66 69 72 73 74 20 28 70 72 65 64 20 6c 69 73 ...--.Function:.-first.(pred.lis
36bc0 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e t)......Return.the.first.item.in
36be0 20 4c 49 53 54 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 6e 6f 6e .LIST.for.which.PRED.returns.non
36c00 2d e2 80 98 6e 69 6c e2 80 99 2e 0a 20 20 20 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 -...nil..........Return....nil..
36c20 99 20 69 66 20 6e 6f 20 73 75 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 66 6f 75 6e 64 2e 0a 0a ..if.no.such.element.is.found...
36c40 20 20 20 20 20 54 6f 20 67 65 74 20 74 68 65 20 66 69 72 73 74 20 69 74 65 6d 20 69 6e 20 74 68 .....To.get.the.first.item.in.th
36c60 65 20 6c 69 73 74 20 6e 6f 20 71 75 65 73 74 69 6f 6e 73 20 61 73 6b 65 64 2c 20 75 73 65 0a 20 e.list.no.questions.asked,.use..
36c80 20 20 20 20 e2 80 98 2d 66 69 72 73 74 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 20 2d 66 69 .......-first-item....(*note.-fi
36ca0 72 73 74 2d 69 74 65 6d 3a 3a 29 2e 0a 0a 20 20 20 20 20 41 6c 69 61 73 3a 20 e2 80 98 2d 66 69 rst-item::)........Alias:....-fi
36cc0 6e 64 e2 80 99 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 80 99 73 20 61 nd...........This.function...s.a
36ce0 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 66 69 72 naphoric.counterpart.is....--fir
36d00 73 74 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 72 73 74 20 23 27 6e 61 74 6e st................(-first.#'natn
36d20 75 6d 70 20 27 28 2d 31 20 30 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 ump.'(-1.0.1))..................
36d40 20 30 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 72 73 74 20 23 27 6e 75 6c 6c 20 27 28 31 20 .0...........(-first.#'null.'(1.
36d60 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 2.3))...................nil.....
36d80 20 20 20 20 20 20 28 2d 2d 66 69 72 73 74 20 28 3e 20 69 74 20 32 29 20 27 28 31 20 32 20 33 29 ......(--first.(>.it.2).'(1.2.3)
36da0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 33 0a 0a 20 2d 2d 20 46 75 6e 63 74 )...................3...--.Funct
36dc0 69 6f 6e 3a 20 2d 6c 61 73 74 20 28 70 72 65 64 20 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 ion:.-last.(pred.list)......Retu
36de0 72 6e 20 74 68 65 20 6c 61 73 74 20 78 20 69 6e 20 4c 49 53 54 20 77 68 65 72 65 20 28 50 52 45 rn.the.last.x.in.LIST.where.(PRE
36e00 44 20 78 29 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 65 6c 73 65 20 e2 80 98 6e D.x).is.non-...nil...,.else....n
36e20 69 6c e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 73 74 20 27 65 76 65 6e 3f 20 il................(-last.'even?.
36e40 27 28 31 20 32 20 33 20 34 20 35 20 36 20 33 20 33 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 '(1.2.3.4.5.6.3.3.3))...........
36e60 20 20 20 20 e2 87 92 20 36 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 73 74 20 27 65 76 65 6e ........6...........(-last.'even
36e80 3f 20 27 28 31 20 33 20 37 20 35 20 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 ?.'(1.3.7.5.9)).................
36ea0 92 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 6c 61 73 74 20 28 3e 20 28 6c 65 6e 67 ..nil...........(--last.(>.(leng
36ec0 74 68 20 69 74 29 20 33 29 20 27 28 22 61 22 20 22 6c 6f 6f 6f 6e 67 22 20 22 77 6f 72 64 22 20 th.it).3).'("a"."looong"."word".
36ee0 22 61 6e 64 22 20 22 73 68 6f 72 74 22 20 22 6f 6e 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 "and"."short"."one"))...........
36f00 20 20 20 20 e2 87 92 20 22 73 68 6f 72 74 22 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d ........"short"...--.Function:.-
36f20 66 69 72 73 74 2d 69 74 65 6d 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 first-item.(list)......Return.th
36f40 65 20 66 69 72 73 74 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 e2 80 98 6e 69 6c e2 e.first.item.of.LIST,.or....nil.
36f60 80 99 20 6f 6e 20 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 ...on.an.empty.list........See.a
36f80 6c 73 6f 3a 20 e2 80 98 2d 73 65 63 6f 6e 64 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 20 2d lso:....-second-item....(*note.-
36fa0 73 65 63 6f 6e 64 2d 69 74 65 6d 3a 3a 29 2c 20 e2 80 98 2d 6c 61 73 74 2d 69 74 65 6d e2 80 99 second-item::),....-last-item...
36fc0 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 6c 61 73 74 2d 69 74 65 6d 3a 3a 29 2c 20 65 74 63 2e ......(*note.-last-item::),.etc.
36fe0 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 72 73 74 2d 69 74 65 6d 20 28 29 29 0a 20 20 20 ............(-first-item.())....
37000 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 ...............()...........(-fi
37020 72 73 74 2d 69 74 65 6d 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 rst-item.'(1.2.3.4.5))..........
37040 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 69 73 74 .........1...........(let.((list
37060 20 28 6c 69 73 74 20 31 20 32 20 33 29 29 29 20 28 73 65 74 66 20 28 2d 66 69 72 73 74 2d 69 74 .(list.1.2.3))).(setf.(-first-it
37080 65 6d 20 6c 69 73 74 29 20 35 29 20 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 em.list).5).list)...............
370a0 e2 87 92 20 28 35 20 32 20 33 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 73 65 63 6f ....(5.2.3)...--.Function:.-seco
370c0 6e 64 2d 69 74 65 6d 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 73 nd-item.(list)......Return.the.s
370e0 65 63 6f 6e 64 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 e2 80 98 6e 69 6c e2 80 99 econd.item.of.LIST,.or....nil...
37100 20 69 66 20 4c 49 53 54 20 69 73 20 74 6f 6f 20 73 68 6f 72 74 2e 0a 0a 20 20 20 20 20 53 65 65 .if.LIST.is.too.short........See
37120 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 69 72 73 74 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 20 .also:....-first-item....(*note.
37140 2d 66 69 72 73 74 2d 69 74 65 6d 3a 3a 29 2c 20 e2 80 98 2d 74 68 69 72 64 2d 69 74 65 6d e2 80 -first-item::),....-third-item..
37160 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 74 68 69 72 64 2d 69 74 65 6d 3a 3a 29 2c 20 65 74 ..(*note......-third-item::),.et
37180 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 20 28 29 29 0a c.............(-second-item.()).
371a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 ..................()...........(
371c0 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 -second-item.'(1.2.3.4.5))......
371e0 20 20 20 20 20 20 20 20 20 e2 87 92 20 32 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 .............2...........(let.((
37200 6c 69 73 74 20 28 6c 69 73 74 20 31 20 32 29 29 29 20 28 73 65 74 66 20 28 2d 73 65 63 6f 6e 64 list.(list.1.2))).(setf.(-second
37220 2d 69 74 65 6d 20 6c 69 73 74 29 20 35 29 20 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 -item.list).5).list)............
37240 20 20 20 e2 87 92 20 28 31 20 35 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 68 69 .......(1.5)...--.Function:.-thi
37260 72 64 2d 69 74 65 6d 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 74 rd-item.(list)......Return.the.t
37280 68 69 72 64 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 e2 80 98 6e 69 6c e2 80 99 20 hird.item.of.LIST,.or....nil....
372a0 69 66 20 4c 49 53 54 20 69 73 20 74 6f 6f 20 73 68 6f 72 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 if.LIST.is.too.short........See.
372c0 61 6c 73 6f 3a 20 e2 80 98 2d 73 65 63 6f 6e 64 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 20 also:....-second-item....(*note.
372e0 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 3a 3a 29 2c 20 e2 80 98 2d 66 6f 75 72 74 68 2d 69 74 65 6d -second-item::),....-fourth-item
37300 e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 66 6f 75 72 74 68 2d 69 74 65 6d 3a 3a 29 2c .........(*note.-fourth-item::),
37320 20 65 74 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 68 69 72 64 2d 69 74 65 6d 20 28 29 .etc.............(-third-item.()
37340 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 )...................()..........
37360 20 28 2d 74 68 69 72 64 2d 69 74 65 6d 20 27 28 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(-third-item.'(1.2))...........
37380 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 68 69 72 64 2d 69 74 65 ........()...........(-third-ite
373a0 6d 20 27 28 31 20 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 m.'(1.2.3.4.5)).................
373c0 92 20 33 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 66 6f 75 72 74 68 2d 69 74 65 6d 20 ..3...--.Function:.-fourth-item.
373e0 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 66 6f 75 72 74 68 20 69 74 (list)......Return.the.fourth.it
37400 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 20 4c 49 53 54 em.of.LIST,.or....nil....if.LIST
37420 20 69 73 20 74 6f 6f 20 73 68 6f 72 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 .is.too.short........See.also:..
37440 80 98 2d 74 68 69 72 64 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 20 2d 74 68 69 72 64 2d 69 ..-third-item....(*note.-third-i
37460 74 65 6d 3a 3a 29 2c 20 e2 80 98 2d 66 69 66 74 68 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 tem::),....-fifth-item....(*note
37480 0a 20 20 20 20 20 2d 66 69 66 74 68 2d 69 74 65 6d 3a 3a 29 2c 20 65 74 63 2e 0a 0a 20 20 20 20 ......-fifth-item::),.etc.......
374a0 20 20 20 20 20 20 28 2d 66 6f 75 72 74 68 2d 69 74 65 6d 20 28 29 29 0a 20 20 20 20 20 20 20 20 ......(-fourth-item.()).........
374c0 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 6f 75 72 74 68 2d ..........()...........(-fourth-
374e0 69 74 65 6d 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 item.'(1.2.3))..................
37500 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 6f 75 72 74 68 2d 69 74 65 6d 20 27 28 31 20 .()...........(-fourth-item.'(1.
37520 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 34 0a 0a 20 2.3.4.5))...................4...
37540 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 66 69 66 74 68 2d 69 74 65 6d 20 28 6c 69 73 74 29 0a --.Function:.-fifth-item.(list).
37560 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 66 69 66 74 68 20 69 74 65 6d 20 6f 66 20 4c 49 .....Return.the.fifth.item.of.LI
37580 53 54 2c 20 6f 72 20 e2 80 98 6e 69 6c e2 80 99 20 69 66 20 4c 49 53 54 20 69 73 20 74 6f 6f 20 ST,.or....nil....if.LIST.is.too.
375a0 73 68 6f 72 74 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 6f 75 72 74 short........See.also:....-fourt
375c0 68 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 20 2d 66 6f 75 72 74 68 2d 69 74 65 6d 3a 3a 29 h-item....(*note.-fourth-item::)
375e0 2c 20 e2 80 98 2d 6c 61 73 74 2d 69 74 65 6d e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d ,....-last-item.........(*note.-
37600 6c 61 73 74 2d 69 74 65 6d 3a 3a 29 2c 20 65 74 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d last-item::),.etc.............(-
37620 66 69 66 74 68 2d 69 74 65 6d 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 fifth-item.())..................
37640 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 66 74 68 2d 69 74 65 6d 20 27 28 31 20 32 .()...........(-fifth-item.'(1.2
37660 20 33 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 .3.4))...................().....
37680 20 20 20 20 20 20 28 2d 66 69 66 74 68 2d 69 74 65 6d 20 27 28 31 20 32 20 33 20 34 20 35 29 29 ......(-fifth-item.'(1.2.3.4.5))
376a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 35 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 ...................5...--.Functi
376c0 6f 6e 3a 20 2d 6c 61 73 74 2d 69 74 65 6d 20 28 6c 69 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 on:.-last-item.(list)......Retur
376e0 6e 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 6f 66 20 4c 49 53 54 2c 20 6f 72 20 e2 80 98 6e n.the.last.item.of.LIST,.or....n
37700 69 6c e2 80 99 20 6f 6e 20 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 2e 0a 0a 20 20 20 20 20 53 65 il....on.an.empty.list........Se
37720 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 69 72 73 74 2d 69 74 65 6d e2 80 99 20 28 2a 6e 6f 74 65 e.also:....-first-item....(*note
37740 20 2d 66 69 72 73 74 2d 69 74 65 6d 3a 3a 29 2c 20 65 74 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 .-first-item::),.etc............
37760 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 .(-last-item.())................
37780 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 27 28 31 20 ...()...........(-last-item.'(1.
377a0 32 20 33 20 34 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 35 0a 20 20 2.3.4.5))...................5...
377c0 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 69 73 74 20 28 6c 69 73 74 20 31 20 32 20 33 29 ........(let.((list.(list.1.2.3)
377e0 29 29 20 28 73 65 74 66 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 6c 69 73 74 29 20 35 29 20 6c 69 )).(setf.(-last-item.list).5).li
37800 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 35 29 0a 0a 20 st)...................(1.2.5)...
37820 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 62 75 74 6c 61 73 74 20 28 6c 69 73 74 29 0a 20 20 20 --.Function:.-butlast.(list)....
37840 20 20 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 69 74 65 6d 73 20 69 6e 20 ..Return.a.list.of.all.items.in.
37860 6c 69 73 74 20 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 6c 61 73 74 2e 0a 0a 20 20 20 20 20 list.except.for.the.last........
37880 20 20 20 20 20 28 2d 62 75 74 6c 61 73 74 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 .....(-butlast.'(1.2.3))........
378a0 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 62 75 74 ...........(1.2)...........(-but
378c0 6c 61 73 74 20 27 28 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 last.'(1.2))...................(
378e0 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 62 75 74 6c 61 73 74 20 27 28 31 29 29 0a 20 20 20 1)...........(-butlast.'(1))....
37900 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e ...............nil...--.Function
37920 3a 20 2d 73 6f 72 74 20 28 63 6f 6d 70 61 72 61 74 6f 72 20 6c 69 73 74 29 0a 20 20 20 20 20 53 :.-sort.(comparator.list)......S
37940 6f 72 74 20 4c 49 53 54 2c 20 73 74 61 62 6c 79 2c 20 63 6f 6d 70 61 72 69 6e 67 20 65 6c 65 6d ort.LIST,.stably,.comparing.elem
37960 65 6e 74 73 20 75 73 69 6e 67 20 43 4f 4d 50 41 52 41 54 4f 52 2e 20 20 52 65 74 75 72 6e 20 74 ents.using.COMPARATOR...Return.t
37980 68 65 0a 20 20 20 20 20 73 6f 72 74 65 64 20 6c 69 73 74 2e 20 20 4c 49 53 54 20 69 73 20 4e 4f he......sorted.list...LIST.is.NO
379a0 54 20 6d 6f 64 69 66 69 65 64 20 62 79 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 20 20 43 4f 4d T.modified.by.side.effects...COM
379c0 50 41 52 41 54 4f 52 20 69 73 0a 20 20 20 20 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 PARATOR.is......called.with.two.
379e0 65 6c 65 6d 65 6e 74 73 20 6f 66 20 4c 49 53 54 2c 20 61 6e 64 20 73 68 6f 75 6c 64 20 72 65 74 elements.of.LIST,.and.should.ret
37a00 75 72 6e 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 66 0a 20 20 20 20 20 74 68 65 20 66 69 urn.non-...nil....if......the.fi
37a20 72 73 74 20 65 6c 65 6d 65 6e 74 20 73 68 6f 75 6c 64 20 73 6f 72 74 20 62 65 66 6f 72 65 20 74 rst.element.should.sort.before.t
37a40 68 65 20 73 65 63 6f 6e 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 23 27 3c he.second.............(-sort.#'<
37a60 20 27 28 33 20 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 .'(3.1.2))...................(1.
37a80 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 23 27 3e 20 27 28 33 20 31 20 2.3)...........(-sort.#'>.'(3.1.
37aa0 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 32 20 31 29 0a 20 20 2))...................(3.2.1)...
37ac0 20 20 20 20 20 20 20 20 28 2d 2d 73 6f 72 74 20 28 3c 20 69 74 20 6f 74 68 65 72 29 20 27 28 33 ........(--sort.(<.it.other).'(3
37ae0 20 31 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 .1.2))...................(1.2.3)
37b00 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6c 69 73 74 20 28 61 72 67 29 0a 20 20 20 20 ...--.Function:.-list.(arg).....
37b20 20 45 6e 73 75 72 65 20 41 52 47 20 69 73 20 61 20 6c 69 73 74 2e 20 20 49 66 20 41 52 47 20 69 .Ensure.ARG.is.a.list...If.ARG.i
37b40 73 20 61 6c 72 65 61 64 79 20 61 20 6c 69 73 74 2c 20 72 65 74 75 72 6e 20 69 74 20 61 73 20 69 s.already.a.list,.return.it.as.i
37b60 73 0a 20 20 20 20 20 28 6e 6f 74 20 61 20 63 6f 70 79 29 2e 20 20 4f 74 68 65 72 77 69 73 65 2c s......(not.a.copy)...Otherwise,
37b80 20 72 65 74 75 72 6e 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 41 52 47 20 61 73 20 69 .return.a.new.list.with.ARG.as.i
37ba0 74 73 20 6f 6e 6c 79 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 2e 0a 0a 20 20 20 20 20 41 6e 6f 74 ts.only......element........Anot
37bc0 68 65 72 20 73 75 70 70 6f 72 74 65 64 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f 6e her.supported.calling.convention
37be0 20 69 73 20 28 2d 6c 69 73 74 20 26 72 65 73 74 20 41 52 47 53 29 2e 20 20 49 6e 0a 20 20 20 20 .is.(-list.&rest.ARGS)...In.....
37c00 20 74 68 69 73 20 63 61 73 65 2c 20 69 66 20 41 52 47 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 .this.case,.if.ARG.is.not.a.list
37c20 2c 20 61 20 6e 65 77 20 6c 69 73 74 20 77 69 74 68 20 61 6c 6c 20 6f 66 20 41 52 47 53 20 61 73 ,.a.new.list.with.all.of.ARGS.as
37c40 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 20 69 73 20 72 65 74 75 72 6e 65 64 2e 20 20 54 68 69 ......elements.is.returned...Thi
37c60 73 20 75 73 65 20 69 73 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 20 62 61 63 6b 77 61 72 64 0a s.use.is.supported.for.backward.
37c80 20 20 20 20 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 61 6e 64 20 69 73 20 6f 74 68 65 72 77 .....compatibility.and.is.otherw
37ca0 69 73 65 20 64 65 70 72 65 63 61 74 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 69 73 ise.deprecated.............(-lis
37cc0 74 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 29 0a 20 20 20 20 20 t.1)...................(1)......
37ce0 20 20 20 20 20 28 2d 6c 69 73 74 20 28 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 .....(-list.()).................
37d00 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 69 73 74 20 27 28 31 20 32 20 33 29 29 0a ..()...........(-list.'(1.2.3)).
37d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 0a 20 2d 2d 20 46 ..................(1.2.3)...--.F
37d40 75 6e 63 74 69 6f 6e 3a 20 2d 66 69 78 20 28 66 6e 20 6c 69 73 74 29 0a 20 20 20 20 20 43 6f 6d unction:.-fix.(fn.list)......Com
37d60 70 75 74 65 20 74 68 65 20 28 6c 65 61 73 74 29 20 66 69 78 70 6f 69 6e 74 20 6f 66 20 46 4e 20 pute.the.(least).fixpoint.of.FN.
37d80 77 69 74 68 20 69 6e 69 74 69 61 6c 20 69 6e 70 75 74 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 46 with.initial.input.LIST........F
37da0 4e 20 69 73 20 63 61 6c 6c 65 64 20 61 74 20 6c 65 61 73 74 20 6f 6e 63 65 2c 20 72 65 73 75 6c N.is.called.at.least.once,.resul
37dc0 74 73 20 61 72 65 20 63 6f 6d 70 61 72 65 64 20 77 69 74 68 20 e2 80 98 65 71 75 61 6c e2 80 99 ts.are.compared.with....equal...
37de0 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 78 20 28 6c 61 6d 62 64 61 20 28 6c 29 20 28 .............(-fix.(lambda.(l).(
37e00 2d 6e 6f 6e 2d 6e 69 6c 20 28 2d 2d 6d 61 70 63 61 74 20 28 2d 73 70 6c 69 74 2d 61 74 20 28 2f -non-nil.(--mapcat.(-split-at.(/
37e20 20 28 6c 65 6e 67 74 68 20 69 74 29 20 32 29 20 69 74 29 20 6c 29 29 29 20 27 28 28 31 20 32 20 .(length.it).2).it).l))).'((1.2.
37e40 33 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 20 28 32 29 20 3)))...................((1).(2).
37e60 28 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 20 27 28 28 73 74 61 72 77 (3))...........(let.((l.'((starw
37e80 61 72 73 20 73 63 69 66 69 29 20 28 6a 65 64 69 20 73 74 61 72 77 61 72 73 20 77 61 72 72 69 6f ars.scifi).(jedi.starwars.warrio
37ea0 72 29 29 29 29 20 28 2d 2d 66 69 78 20 28 2d 75 6e 69 71 20 28 2d 2d 6d 61 70 63 61 74 20 28 63 r)))).(--fix.(-uniq.(--mapcat.(c
37ec0 6f 6e 73 20 69 74 20 28 63 64 72 20 28 61 73 73 71 20 69 74 20 6c 29 29 29 20 69 74 29 29 20 27 ons.it.(cdr.(assq.it.l))).it)).'
37ee0 28 6a 65 64 69 20 62 6f 6f 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 (jedi.book)))...................
37f00 28 6a 65 64 69 20 73 74 61 72 77 61 72 73 20 77 61 72 72 69 6f 72 20 73 63 69 66 69 20 62 6f 6f (jedi.starwars.warrior.scifi.boo
37f20 6b 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 72 k)....File:.dash.info,..Node:.Tr
37f40 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 54 68 72 65 61 64 69 6e 67 20 ee.operations,..Next:.Threading.
37f60 6d 61 63 72 6f 73 2c 20 20 50 72 65 76 3a 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 macros,..Prev:.Other.list.operat
37f80 69 6f 6e 73 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 31 31 20 54 72 65 65 20 ions,..Up:.Functions..2.11.Tree.
37fa0 6f 70 65 72 61 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a operations.====================.
37fc0 0a 46 75 6e 63 74 69 6f 6e 73 20 70 72 65 74 65 6e 64 69 6e 67 20 6c 69 73 74 73 20 61 72 65 20 .Functions.pretending.lists.are.
37fe0 74 72 65 65 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 72 65 65 2d 73 65 71 20 trees....--.Function:.-tree-seq.
38000 28 62 72 61 6e 63 68 20 63 68 69 6c 64 72 65 6e 20 74 72 65 65 29 0a 20 20 20 20 20 52 65 74 75 (branch.children.tree)......Retu
38020 72 6e 20 61 20 73 65 71 75 65 6e 63 65 20 6f 66 20 74 68 65 20 6e 6f 64 65 73 20 69 6e 20 54 52 rn.a.sequence.of.the.nodes.in.TR
38040 45 45 2c 20 69 6e 20 64 65 70 74 68 2d 66 69 72 73 74 20 73 65 61 72 63 68 0a 20 20 20 20 20 6f EE,.in.depth-first.search......o
38060 72 64 65 72 2e 0a 0a 20 20 20 20 20 42 52 41 4e 43 48 20 69 73 20 61 20 70 72 65 64 69 63 61 74 rder........BRANCH.is.a.predicat
38080 65 20 6f 66 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 6e e.of.one.argument.that.returns.n
380a0 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 66 20 74 68 65 0a 20 20 20 20 20 70 61 73 73 65 64 20 on-...nil....if.the......passed.
380c0 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 62 72 61 6e 63 68 2c 20 74 68 61 74 20 69 73 2c 20 61 argument.is.a.branch,.that.is,.a
380e0 20 6e 6f 64 65 20 74 68 61 74 20 63 61 6e 20 68 61 76 65 0a 20 20 20 20 20 63 68 69 6c 64 72 65 .node.that.can.have......childre
38100 6e 2e 0a 0a 20 20 20 20 20 43 48 49 4c 44 52 45 4e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 n........CHILDREN.is.a.function.
38120 6f 66 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 of.one.argument.that.returns.the
38140 20 63 68 69 6c 64 72 65 6e 20 6f 66 0a 20 20 20 20 20 74 68 65 20 70 61 73 73 65 64 20 62 72 61 .children.of......the.passed.bra
38160 6e 63 68 20 6e 6f 64 65 2e 0a 0a 20 20 20 20 20 4e 6f 6e 2d 62 72 61 6e 63 68 20 6e 6f 64 65 73 nch.node........Non-branch.nodes
38180 20 61 72 65 20 73 69 6d 70 6c 79 20 63 6f 70 69 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 .are.simply.copied.............(
381a0 2d 74 72 65 65 2d 73 65 71 20 27 6c 69 73 74 70 20 27 69 64 65 6e 74 69 74 79 20 27 28 31 20 28 -tree-seq.'listp.'identity.'(1.(
381c0 32 20 33 29 20 34 20 28 35 20 28 36 20 37 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 2.3).4.(5.(6.7))))..............
381e0 20 e2 87 92 20 28 28 31 20 28 32 20 33 29 20 34 20 28 35 20 28 36 20 37 29 29 29 20 31 20 28 32 .....((1.(2.3).4.(5.(6.7))).1.(2
38200 20 33 29 20 32 20 33 20 34 20 28 35 20 28 36 20 37 29 29 20 35 20 28 36 20 37 29 20 36 20 37 29 .3).2.3.4.(5.(6.7)).5.(6.7).6.7)
38220 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 72 65 65 2d 73 65 71 20 27 6c 69 73 74 70 20 27 72 65 ...........(-tree-seq.'listp.'re
38240 76 65 72 73 65 20 27 28 31 20 28 32 20 33 29 20 34 20 28 35 20 28 36 20 37 29 29 29 29 0a 20 20 verse.'(1.(2.3).4.(5.(6.7))))...
38260 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 28 32 20 33 29 20 34 20 28 35 20 28 ................((1.(2.3).4.(5.(
38280 36 20 37 29 29 29 20 28 35 20 28 36 20 37 29 29 20 28 36 20 37 29 20 37 20 36 20 35 20 34 20 28 6.7))).(5.(6.7)).(6.7).7.6.5.4.(
382a0 32 20 33 29 20 33 20 32 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 74 72 65 65 2d 73 65 2.3).3.2.1)...........(--tree-se
382c0 71 20 28 76 65 63 74 6f 72 70 20 69 74 29 20 28 61 70 70 65 6e 64 20 69 74 20 6e 69 6c 29 20 5b q.(vectorp.it).(append.it.nil).[
382e0 31 20 5b 32 20 33 5d 20 34 20 5b 35 20 5b 36 20 37 5d 5d 5d 29 0a 20 20 20 20 20 20 20 20 20 20 1.[2.3].4.[5.[6.7]]])...........
38300 20 20 20 20 e2 87 92 20 28 5b 31 20 5b 32 20 33 5d 20 34 20 5b 35 20 5b 36 20 37 5d 5d 5d 20 31 ........([1.[2.3].4.[5.[6.7]]].1
38320 20 5b 32 20 33 5d 20 32 20 33 20 34 20 5b 35 20 5b 36 20 37 5d 5d 20 35 20 5b 36 20 37 5d 20 36 .[2.3].2.3.4.[5.[6.7]].5.[6.7].6
38340 20 37 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 72 65 65 2d 6d 61 70 20 28 66 6e .7)...--.Function:.-tree-map.(fn
38360 20 74 72 65 65 29 0a 20 20 20 20 20 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 65 6c 65 .tree)......Apply.FN.to.each.ele
38380 6d 65 6e 74 20 6f 66 20 54 52 45 45 20 77 68 69 6c 65 20 70 72 65 73 65 72 76 69 6e 67 20 74 68 ment.of.TREE.while.preserving.th
383a0 65 20 74 72 65 65 0a 20 20 20 20 20 73 74 72 75 63 74 75 72 65 2e 0a 0a 20 20 20 20 20 20 20 20 e.tree......structure...........
383c0 20 20 28 2d 74 72 65 65 2d 6d 61 70 20 27 31 2b 20 27 28 31 20 28 32 20 33 29 20 28 34 20 28 35 ..(-tree-map.'1+.'(1.(2.3).(4.(5
383e0 20 36 29 20 37 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 28 33 .6).7)))...................(2.(3
38400 20 34 29 20 28 35 20 28 36 20 37 29 20 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 72 65 .4).(5.(6.7).8))...........(-tre
38420 65 2d 6d 61 70 20 27 28 6c 61 6d 62 64 61 20 28 78 29 20 28 63 6f 6e 73 20 78 20 28 65 78 70 74 e-map.'(lambda.(x).(cons.x.(expt
38440 20 32 20 78 29 29 29 20 27 28 31 20 28 32 20 33 29 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 .2.x))).'(1.(2.3).4))...........
38460 20 20 20 20 e2 87 92 20 28 28 31 20 2e 20 32 29 20 28 28 32 20 2e 20 34 29 20 28 33 20 2e 20 38 ........((1...2).((2...4).(3...8
38480 29 29 20 28 34 20 2e 20 31 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 74 72 65 65 2d 6d )).(4...16))...........(--tree-m
384a0 61 70 20 28 6c 65 6e 67 74 68 20 69 74 29 20 27 28 22 3c 62 6f 64 79 3e 22 20 28 22 3c 70 3e 22 ap.(length.it).'("<body>".("<p>"
384c0 20 22 74 65 78 74 22 20 22 3c 2f 70 3e 22 29 20 22 3c 2f 62 6f 64 79 3e 22 29 29 0a 20 20 20 20 ."text"."</p>")."</body>")).....
384e0 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 36 20 28 33 20 34 20 34 29 20 37 29 0a 0a 20 2d 2d ..............(6.(3.4.4).7)...--
38500 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 20 28 70 72 65 64 .Function:.-tree-map-nodes.(pred
38520 20 66 75 6e 20 74 72 65 65 29 0a 20 20 20 20 20 43 61 6c 6c 20 46 55 4e 20 6f 6e 20 65 61 63 68 .fun.tree)......Call.FUN.on.each
38540 20 6e 6f 64 65 20 6f 66 20 54 52 45 45 20 74 68 61 74 20 73 61 74 69 73 66 69 65 73 20 50 52 45 .node.of.TREE.that.satisfies.PRE
38560 44 2e 0a 0a 20 20 20 20 20 49 66 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 e2 80 98 6e 69 6c e2 D........If.PRED.returns....nil.
38580 80 99 2c 20 63 6f 6e 74 69 6e 75 65 20 64 65 73 63 65 6e 64 69 6e 67 20 64 6f 77 6e 20 74 68 69 ..,.continue.descending.down.thi
385a0 73 20 6e 6f 64 65 2e 20 20 49 66 20 50 52 45 44 0a 20 20 20 20 20 72 65 74 75 72 6e 73 20 6e 6f s.node...If.PRED......returns.no
385c0 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 61 70 70 6c 79 20 46 55 4e 20 74 6f 20 74 68 69 73 20 6e n-...nil...,.apply.FUN.to.this.n
385e0 6f 64 65 20 61 6e 64 20 64 6f 20 6e 6f 74 20 64 65 73 63 65 6e 64 0a 20 20 20 20 20 66 75 72 74 ode.and.do.not.descend......furt
38600 68 65 72 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 her.............(-tree-map-nodes
38620 20 27 76 65 63 74 6f 72 70 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 2d 73 75 6d 20 28 61 70 70 .'vectorp.(lambda.(x).(-sum.(app
38640 65 6e 64 20 78 20 6e 69 6c 29 29 29 20 27 28 31 20 5b 32 20 33 5d 20 34 20 28 35 20 5b 36 20 37 end.x.nil))).'(1.[2.3].4.(5.[6.7
38660 5d 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 35 20 34 20 ].8)))...................(1.5.4.
38680 28 35 20 31 33 20 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 72 65 65 2d 6d 61 70 2d 6e (5.13.8))...........(-tree-map-n
386a0 6f 64 65 73 20 27 6b 65 79 77 6f 72 64 70 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 73 79 6d 62 odes.'keywordp.(lambda.(x).(symb
386c0 6f 6c 2d 6e 61 6d 65 20 78 29 29 20 27 28 31 20 3a 66 6f 6f 20 34 20 28 28 35 20 36 20 3a 62 61 ol-name.x)).'(1.:foo.4.((5.6.:ba
386e0 72 29 20 3a 62 61 7a 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 r).:baz.8)))...................(
38700 31 20 22 3a 66 6f 6f 22 20 34 20 28 28 35 20 36 20 22 3a 62 61 72 22 29 20 22 3a 62 61 7a 22 20 1.":foo".4.((5.6.":bar").":baz".
38720 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 20 8))...........(--tree-map-nodes.
38740 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 69 74 29 20 27 61 64 64 2d 6d 6f 64 65 29 20 28 2d 63 (eq.(car-safe.it).'add-mode).(-c
38760 6f 6e 63 61 74 20 69 74 20 28 6c 69 73 74 20 3a 6d 6f 64 65 20 27 65 6d 61 63 73 2d 6c 69 73 70 oncat.it.(list.:mode.'emacs-lisp
38780 2d 6d 6f 64 65 29 29 20 27 28 77 69 74 68 2d 6d 6f 64 65 20 65 6d 61 63 73 2d 6c 69 73 70 2d 6d -mode)).'(with-mode.emacs-lisp-m
387a0 6f 64 65 20 28 66 6f 6f 20 62 61 72 29 20 28 61 64 64 2d 6d 6f 64 65 20 61 20 62 29 20 28 62 61 ode.(foo.bar).(add-mode.a.b).(ba
387c0 7a 20 28 61 64 64 2d 6d 6f 64 65 20 63 20 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 z.(add-mode.c.d)))).............
387e0 20 20 e2 87 92 20 28 77 69 74 68 2d 6d 6f 64 65 20 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 ......(with-mode.emacs-lisp-mode
38800 20 28 66 6f 6f 20 62 61 72 29 20 28 61 64 64 2d 6d 6f 64 65 20 61 20 62 20 3a 6d 6f 64 65 20 65 .(foo.bar).(add-mode.a.b.:mode.e
38820 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 29 20 28 62 61 7a 20 28 61 64 64 2d 6d 6f 64 65 20 63 macs-lisp-mode).(baz.(add-mode.c
38840 20 64 20 3a 6d 6f 64 65 20 65 6d 61 63 73 2d 6c 69 73 70 2d 6d 6f 64 65 29 29 29 0a 0a 20 2d 2d .d.:mode.emacs-lisp-mode)))...--
38860 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 72 65 65 2d 72 65 64 75 63 65 20 28 66 6e 20 74 72 65 65 .Function:.-tree-reduce.(fn.tree
38880 29 0a 20 20 20 20 20 55 73 65 20 46 4e 20 74 6f 20 72 65 64 75 63 65 20 65 6c 65 6d 65 6e 74 73 )......Use.FN.to.reduce.elements
388a0 20 6f 66 20 6c 69 73 74 20 54 52 45 45 2e 20 20 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 54 .of.list.TREE...If.elements.of.T
388c0 52 45 45 20 61 72 65 0a 20 20 20 20 20 6c 69 73 74 73 20 74 68 65 6d 73 65 6c 76 65 73 2c 20 61 REE.are......lists.themselves,.a
388e0 70 70 6c 79 20 74 68 65 20 72 65 64 75 63 74 69 6f 6e 20 72 65 63 75 72 73 69 76 65 6c 79 2e 0a pply.the.reduction.recursively..
38900 0a 20 20 20 20 20 46 4e 20 69 73 20 66 69 72 73 74 20 61 70 70 6c 69 65 64 20 74 6f 20 66 69 72 ......FN.is.first.applied.to.fir
38920 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 6c 69 73 74 20 61 6e 64 20 73 65 63 6f 6e st.element.of.the.list.and.secon
38940 64 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 2c 20 74 68 65 6e 20 6f 6e 20 74 68 69 73 20 72 65 73 d......element,.then.on.this.res
38960 75 6c 74 20 61 6e 64 20 74 68 69 72 64 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 6c ult.and.third.element.from.the.l
38980 69 73 74 20 65 74 63 2e 0a 0a 20 20 20 20 20 53 65 65 20 e2 80 98 2d 72 65 64 75 63 65 2d 72 e2 ist.etc........See....-reduce-r.
389a0 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 72 3a 3a 29 20 66 6f 72 20 68 6f 77 20 65 ...(*note.-reduce-r::).for.how.e
389c0 78 61 63 74 6c 79 20 61 72 65 20 6c 69 73 74 73 20 6f 66 0a 20 20 20 20 20 7a 65 72 6f 20 6f 72 xactly.are.lists.of......zero.or
389e0 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 20 68 61 6e 64 6c 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 .one.element.handled............
38a00 20 28 2d 74 72 65 65 2d 72 65 64 75 63 65 20 27 2b 20 27 28 31 20 28 32 20 33 29 20 28 34 20 35 .(-tree-reduce.'+.'(1.(2.3).(4.5
38a20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 35 0a 20 20 20 20 20 20 20 )))...................15........
38a40 20 20 20 28 2d 74 72 65 65 2d 72 65 64 75 63 65 20 27 63 6f 6e 63 61 74 20 27 28 22 73 74 72 69 ...(-tree-reduce.'concat.'("stri
38a60 6e 67 73 22 20 28 22 20 6f 6e 22 20 22 20 76 61 72 69 6f 75 73 22 29 20 28 28 22 20 6c 65 76 65 ngs".(".on".".various").((".leve
38a80 6c 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 22 73 74 72 69 6e ls"))))..................."strin
38aa0 67 73 20 6f 6e 20 76 61 72 69 6f 75 73 20 6c 65 76 65 6c 73 22 0a 20 20 20 20 20 20 20 20 20 20 gs.on.various.levels"...........
38ac0 28 2d 2d 74 72 65 65 2d 72 65 64 75 63 65 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 70 20 69 (--tree-reduce.(cond.((stringp.i
38ae0 74 29 20 28 63 6f 6e 63 61 74 20 69 74 20 22 20 22 20 61 63 63 29 29 20 28 74 20 28 6c 65 74 20 t).(concat.it.".".acc)).(t.(let.
38b00 28 28 73 6e 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 69 74 29 29 29 20 28 63 6f 6e 63 61 74 20 ((sn.(symbol-name.it))).(concat.
38b20 22 3c 22 20 73 6e 20 22 3e 22 20 61 63 63 20 22 3c 2f 22 20 73 6e 20 22 3e 22 29 29 29 29 20 27 "<".sn.">".acc."</".sn.">")))).'
38b40 28 62 6f 64 79 20 28 70 20 22 73 6f 6d 65 20 77 6f 72 64 73 22 29 20 28 64 69 76 20 22 6d 6f 72 (body.(p."some.words").(div."mor
38b60 65 22 20 28 62 20 22 62 6f 6c 64 22 29 20 22 77 6f 72 64 73 22 29 29 29 0a 20 20 20 20 20 20 20 e".(b."bold")."words")))........
38b80 20 20 20 20 20 20 20 e2 87 92 20 22 3c 62 6f 64 79 3e 3c 70 3e 73 6f 6d 65 20 77 6f 72 64 73 3c ..........."<body><p>some.words<
38ba0 2f 70 3e 20 3c 64 69 76 3e 6d 6f 72 65 20 3c 62 3e 62 6f 6c 64 3c 2f 62 3e 20 77 6f 72 64 73 3c /p>.<div>more.<b>bold</b>.words<
38bc0 2f 64 69 76 3e 3c 2f 62 6f 64 79 3e 22 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 72 /div></body>"...--.Function:.-tr
38be0 65 65 2d 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 66 6e 20 69 6e 69 74 2d 76 61 6c 75 65 20 74 72 ee-reduce-from.(fn.init-value.tr
38c00 65 65 29 0a 20 20 20 20 20 55 73 65 20 46 4e 20 74 6f 20 72 65 64 75 63 65 20 65 6c 65 6d 65 6e ee)......Use.FN.to.reduce.elemen
38c20 74 73 20 6f 66 20 6c 69 73 74 20 54 52 45 45 2e 20 20 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 ts.of.list.TREE...If.elements.of
38c40 20 54 52 45 45 20 61 72 65 0a 20 20 20 20 20 6c 69 73 74 73 20 74 68 65 6d 73 65 6c 76 65 73 2c .TREE.are......lists.themselves,
38c60 20 61 70 70 6c 79 20 74 68 65 20 72 65 64 75 63 74 69 6f 6e 20 72 65 63 75 72 73 69 76 65 6c 79 .apply.the.reduction.recursively
38c80 2e 0a 0a 20 20 20 20 20 46 4e 20 69 73 20 66 69 72 73 74 20 61 70 70 6c 69 65 64 20 74 6f 20 49 ........FN.is.first.applied.to.I
38ca0 4e 49 54 2d 56 41 4c 55 45 20 61 6e 64 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 NIT-VALUE.and.first.element.of.t
38cc0 68 65 20 6c 69 73 74 2c 0a 20 20 20 20 20 74 68 65 6e 20 6f 6e 20 74 68 69 73 20 72 65 73 75 6c he.list,......then.on.this.resul
38ce0 74 20 61 6e 64 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 66 72 6f 6d 20 74 68 65 20 6c 69 t.and.second.element.from.the.li
38d00 73 74 20 65 74 63 2e 0a 0a 20 20 20 20 20 54 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 st.etc........The.initial.value.
38d20 69 73 20 69 67 6e 6f 72 65 64 20 6f 6e 20 63 6f 6e 73 20 70 61 69 72 73 20 61 73 20 74 68 65 79 is.ignored.on.cons.pairs.as.they
38d40 20 61 6c 77 61 79 73 20 63 6f 6e 74 61 69 6e 0a 20 20 20 20 20 74 77 6f 20 65 6c 65 6d 65 6e 74 .always.contain......two.element
38d60 73 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 72 65 65 2d 72 65 64 75 63 65 2d 66 72 6f 6d s.............(-tree-reduce-from
38d80 20 27 2b 20 31 20 27 28 31 20 28 31 20 31 29 20 28 28 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 .'+.1.'(1.(1.1).((1)))).........
38da0 20 20 20 20 20 20 e2 87 92 20 38 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 74 72 65 65 2d 72 65 ..........8...........(--tree-re
38dc0 64 75 63 65 2d 66 72 6f 6d 20 28 2d 63 6f 6e 63 61 74 20 61 63 63 20 28 6c 69 73 74 20 69 74 29 duce-from.(-concat.acc.(list.it)
38de0 29 20 6e 69 6c 20 27 28 31 20 28 32 20 33 20 28 34 20 35 29 29 20 28 36 20 37 29 29 29 0a 20 20 ).nil.'(1.(2.3.(4.5)).(6.7)))...
38e00 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 37 20 36 29 20 28 28 35 20 34 29 20 33 20 ................((7.6).((5.4).3.
38e20 32 29 20 31 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 72 65 65 2d 6d 61 70 72 65 2).1)...--.Function:.-tree-mapre
38e40 64 75 63 65 20 28 66 6e 20 66 6f 6c 64 65 72 20 74 72 65 65 29 0a 20 20 20 20 20 41 70 70 6c 79 duce.(fn.folder.tree)......Apply
38e60 20 46 4e 20 74 6f 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 54 52 45 45 2c 20 61 6e 64 .FN.to.each.element.of.TREE,.and
38e80 20 6d 61 6b 65 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 73 2e 0a 20 20 20 .make.a.list.of.the.results.....
38ea0 20 20 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 54 52 45 45 20 61 72 65 20 6c 69 73 74 73 20 ..If.elements.of.TREE.are.lists.
38ec0 74 68 65 6d 73 65 6c 76 65 73 2c 20 61 70 70 6c 79 20 46 4e 20 72 65 63 75 72 73 69 76 65 6c 79 themselves,.apply.FN.recursively
38ee0 20 74 6f 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 74 68 65 73 65 20 6e 65 73 74 65 .to......elements.of.these.neste
38f00 64 20 6c 69 73 74 73 2e 0a 0a 20 20 20 20 20 54 68 65 6e 20 72 65 64 75 63 65 20 74 68 65 20 72 d.lists........Then.reduce.the.r
38f20 65 73 75 6c 74 69 6e 67 20 6c 69 73 74 73 20 75 73 69 6e 67 20 46 4f 4c 44 45 52 20 61 6e 64 20 esulting.lists.using.FOLDER.and.
38f40 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 0a 20 20 20 20 20 49 4e 49 54 2d 56 41 4c 55 45 2e 20 20 initial.value......INIT-VALUE...
38f60 53 65 65 20 e2 80 98 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d e2 80 99 20 28 2a 6e 6f 74 65 20 See....-reduce-r-from....(*note.
38f80 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 3a 3a 29 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 69 73 -reduce-r-from::)........This.is
38fa0 20 74 68 65 20 73 61 6d 65 20 61 73 20 63 61 6c 6c 69 6e 67 20 e2 80 98 2d 74 72 65 65 2d 72 65 .the.same.as.calling....-tree-re
38fc0 64 75 63 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 74 72 65 65 2d 72 65 64 75 63 65 3a 3a 29 0a 20 duce....(*note.-tree-reduce::)..
38fe0 20 20 20 20 61 66 74 65 72 20 e2 80 98 2d 74 72 65 65 2d 6d 61 70 e2 80 99 20 28 2a 6e 6f 74 65 ....after....-tree-map....(*note
39000 20 2d 74 72 65 65 2d 6d 61 70 3a 3a 29 20 62 75 74 20 69 73 20 74 77 69 63 65 20 61 73 20 66 61 .-tree-map::).but.is.twice.as.fa
39020 73 74 20 61 73 20 69 74 0a 20 20 20 20 20 6f 6e 6c 79 20 74 72 61 76 65 72 73 65 20 74 68 65 20 st.as.it......only.traverse.the.
39040 73 74 72 75 63 74 75 72 65 20 6f 6e 63 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 72 65 structure.once.............(-tre
39060 65 2d 6d 61 70 72 65 64 75 63 65 20 27 6c 69 73 74 20 27 61 70 70 65 6e 64 20 27 28 31 20 28 32 e-mapreduce.'list.'append.'(1.(2
39080 20 28 33 20 34 29 20 28 35 20 36 29 29 20 28 37 20 28 38 20 39 29 29 29 29 0a 20 20 20 20 20 20 .(3.4).(5.6)).(7.(8.9)))).......
390a0 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20 39 29 0a ............(1.2.3.4.5.6.7.8.9).
390c0 20 20 20 20 20 20 20 20 20 20 28 2d 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 20 31 20 28 2b ..........(--tree-mapreduce.1.(+
390e0 20 69 74 20 61 63 63 29 20 27 28 31 20 28 32 20 28 34 20 39 29 20 28 32 20 31 29 29 20 28 37 20 .it.acc).'(1.(2.(4.9).(2.1)).(7.
39100 28 34 20 33 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 39 0a 20 20 20 (4.3))))...................9....
39120 20 20 20 20 20 20 20 28 2d 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 20 30 20 28 6d 61 78 20 .......(--tree-mapreduce.0.(max.
39140 61 63 63 20 28 31 2b 20 69 74 29 29 20 27 28 31 20 28 32 20 28 34 20 39 29 20 28 32 20 31 29 29 acc.(1+.it)).'(1.(2.(4.9).(2.1))
39160 20 28 37 20 28 34 20 33 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 33 .(7.(4.3))))...................3
39180 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 2d ...--.Function:.-tree-mapreduce-
391a0 66 72 6f 6d 20 28 66 6e 20 66 6f 6c 64 65 72 20 69 6e 69 74 2d 76 61 6c 75 65 20 74 72 65 65 29 from.(fn.folder.init-value.tree)
391c0 0a 20 20 20 20 20 41 70 70 6c 79 20 46 4e 20 74 6f 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f ......Apply.FN.to.each.element.o
391e0 66 20 54 52 45 45 2c 20 61 6e 64 20 6d 61 6b 65 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 72 f.TREE,.and.make.a.list.of.the.r
39200 65 73 75 6c 74 73 2e 0a 20 20 20 20 20 49 66 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 54 52 45 45 esults.......If.elements.of.TREE
39220 20 61 72 65 20 6c 69 73 74 73 20 74 68 65 6d 73 65 6c 76 65 73 2c 20 61 70 70 6c 79 20 46 4e 20 .are.lists.themselves,.apply.FN.
39240 72 65 63 75 72 73 69 76 65 6c 79 20 74 6f 0a 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 recursively.to......elements.of.
39260 74 68 65 73 65 20 6e 65 73 74 65 64 20 6c 69 73 74 73 2e 0a 0a 20 20 20 20 20 54 68 65 6e 20 72 these.nested.lists........Then.r
39280 65 64 75 63 65 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 6c 69 73 74 73 20 75 73 69 6e 67 20 educe.the.resulting.lists.using.
392a0 46 4f 4c 44 45 52 20 61 6e 64 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 0a 20 20 20 20 20 49 4e FOLDER.and.initial.value......IN
392c0 49 54 2d 56 41 4c 55 45 2e 20 20 53 65 65 20 e2 80 98 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d IT-VALUE...See....-reduce-r-from
392e0 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 3a 3a 29 2e 0a 0a 20 ....(*note.-reduce-r-from::)....
39300 20 20 20 20 54 68 69 73 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 63 61 6c 6c 69 6e 67 20 ....This.is.the.same.as.calling.
39320 e2 80 98 2d 74 72 65 65 2d 72 65 64 75 63 65 2d 66 72 6f 6d e2 80 99 20 28 2a 6e 6f 74 65 0a 20 ...-tree-reduce-from....(*note..
39340 20 20 20 20 2d 74 72 65 65 2d 72 65 64 75 63 65 2d 66 72 6f 6d 3a 3a 29 20 61 66 74 65 72 20 e2 ....-tree-reduce-from::).after..
39360 80 98 2d 74 72 65 65 2d 6d 61 70 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 74 72 65 65 2d 6d 61 70 3a ..-tree-map....(*note.-tree-map:
39380 3a 29 20 62 75 74 20 69 73 0a 20 20 20 20 20 74 77 69 63 65 20 61 73 20 66 61 73 74 20 61 73 20 :).but.is......twice.as.fast.as.
393a0 69 74 20 6f 6e 6c 79 20 74 72 61 76 65 72 73 65 20 74 68 65 20 73 74 72 75 63 74 75 72 65 20 6f it.only.traverse.the.structure.o
393c0 6e 63 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 nce.............(-tree-mapreduce
393e0 2d 66 72 6f 6d 20 27 69 64 65 6e 74 69 74 79 20 27 2a 20 31 20 27 28 31 20 28 32 20 28 33 20 34 -from.'identity.'*.1.'(1.(2.(3.4
39400 29 20 28 35 20 36 29 29 20 28 37 20 28 38 20 39 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ).(5.6)).(7.(8.9))))............
39420 20 20 20 e2 87 92 20 33 36 32 38 38 30 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 74 72 65 65 2d .......362880...........(--tree-
39440 6d 61 70 72 65 64 75 63 65 2d 66 72 6f 6d 20 28 2b 20 69 74 20 69 74 29 20 28 63 6f 6e 73 20 69 mapreduce-from.(+.it.it).(cons.i
39460 74 20 61 63 63 29 20 6e 69 6c 20 27 28 31 20 28 32 20 28 34 20 39 29 20 28 32 20 31 29 29 20 28 t.acc).nil.'(1.(2.(4.9).(2.1)).(
39480 37 20 28 34 20 33 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 7.(4.3))))...................(2.
394a0 28 34 20 28 38 20 31 38 29 20 28 34 20 32 29 29 20 28 31 34 20 28 38 20 36 29 29 29 0a 20 20 20 (4.(8.18).(4.2)).(14.(8.6)))....
394c0 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 7b 22 20 28 2d 2d 74 72 65 65 2d 6d 61 70 72 65 .......(concat."{".(--tree-mapre
394e0 64 75 63 65 2d 66 72 6f 6d 20 28 63 6f 6e 64 20 28 28 2d 63 6f 6e 73 2d 70 61 69 72 3f 20 69 74 duce-from.(cond.((-cons-pair?.it
39500 29 20 28 63 6f 6e 63 61 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 69 74 29 29 ).(concat.(symbol-name.(car.it))
39520 20 22 20 2d 3e 20 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 64 72 20 69 74 29 29 29 29 .".->.".(symbol-name.(cdr.it))))
39540 20 28 74 20 28 63 6f 6e 63 61 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 69 74 29 20 22 20 3a .(t.(concat.(symbol-name.it).".:
39560 20 7b 22 29 29 29 20 28 63 6f 6e 63 61 74 20 69 74 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 65 .{"))).(concat.it.(unless.(or.(e
39580 71 75 61 6c 20 61 63 63 20 22 7d 22 29 20 28 65 71 75 61 6c 20 28 73 75 62 73 74 72 69 6e 67 20 qual.acc."}").(equal.(substring.
395a0 69 74 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 69 74 29 29 29 20 22 7b 22 29 29 20 22 2c 20 22 29 it.(1-.(length.it)))."{")).",.")
395c0 20 61 63 63 29 20 22 7d 22 20 27 28 28 65 6c 69 73 70 2d 6d 6f 64 65 20 28 66 6f 6f 20 28 62 61 .acc)."}".'((elisp-mode.(foo.(ba
395e0 72 20 2e 20 62 6f 6f 7a 65 29 29 20 28 62 61 7a 20 2e 20 71 75 78 29 29 20 28 63 2d 6d 6f 64 65 r...booze)).(baz...qux)).(c-mode
39600 20 28 66 6f 6f 20 2e 20 62 6c 61 29 20 28 62 75 6d 20 2e 20 62 61 6d 29 29 29 29 29 0a 20 20 20 .(foo...bla).(bum...bam)))))....
39620 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 22 7b 65 6c 69 73 70 2d 6d 6f 64 65 20 3a 20 7b 66 ..............."{elisp-mode.:.{f
39640 6f 6f 20 3a 20 7b 62 61 72 20 2d 3e 20 62 6f 6f 7a 65 7d 2c 20 62 61 7a 20 2d 3e 20 71 75 78 7d oo.:.{bar.->.booze},.baz.->.qux}
39660 2c 20 63 2d 6d 6f 64 65 20 3a 20 7b 66 6f 6f 20 2d 3e 20 62 6c 61 2c 20 62 75 6d 20 2d 3e 20 62 ,.c-mode.:.{foo.->.bla,.bum.->.b
39680 61 6d 7d 7d 22 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 63 6c 6f 6e 65 20 28 6c 69 73 am}}"...--.Function:.-clone.(lis
396a0 74 29 0a 20 20 20 20 20 43 72 65 61 74 65 20 61 20 64 65 65 70 20 63 6f 70 79 20 6f 66 20 4c 49 t)......Create.a.deep.copy.of.LI
396c0 53 54 2e 20 20 54 68 65 20 6e 65 77 20 6c 69 73 74 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 65 ST...The.new.list.has.the.same.e
396e0 6c 65 6d 65 6e 74 73 20 61 6e 64 0a 20 20 20 20 20 73 74 72 75 63 74 75 72 65 20 62 75 74 20 61 lements.and......structure.but.a
39700 6c 6c 20 63 6f 6e 73 20 61 72 65 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 6e 65 77 20 6f 6e ll.cons.are.replaced.with.new.on
39720 65 73 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 0a 20 20 20 20 20 77 68 65 6e 20 79 6f es...This.is.useful......when.yo
39740 75 20 6e 65 65 64 20 74 6f 20 63 6c 6f 6e 65 20 61 20 73 74 72 75 63 74 75 72 65 20 73 75 63 68 u.need.to.clone.a.structure.such
39760 20 61 73 20 70 6c 69 73 74 20 6f 72 20 61 6c 69 73 74 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 .as.plist.or.alist.............(
39780 6c 65 74 2a 20 28 28 61 20 28 6c 69 73 74 20 28 6c 69 73 74 20 31 29 29 29 20 28 62 20 28 2d 63 let*.((a.(list.(list.1))).(b.(-c
397a0 6c 6f 6e 65 20 61 29 29 29 20 28 73 65 74 63 61 72 20 28 63 61 72 20 61 29 20 32 29 20 62 29 0a lone.a))).(setcar.(car.a).2).b).
397c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 29 0a 0a 1f 0a 46 69 6c 65 3a ..................((1))....File:
397e0 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 68 72 65 61 64 69 6e 67 20 6d 61 63 .dash.info,..Node:.Threading.mac
39800 72 6f 73 2c 20 20 4e 65 78 74 3a 20 42 69 6e 64 69 6e 67 2c 20 20 50 72 65 76 3a 20 54 72 65 65 ros,..Next:.Binding,..Prev:.Tree
39820 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 31 .operations,..Up:.Functions..2.1
39840 32 20 54 68 72 65 61 64 69 6e 67 20 6d 61 63 72 6f 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 2.Threading.macros.=============
39860 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4d 61 63 72 6f 73 20 74 68 61 74 20 63 6f 6e 64 69 74 69 6f 6e 61 ========..Macros.that.conditiona
39880 6c 6c 79 20 63 6f 6d 62 69 6e 65 20 73 65 71 75 65 6e 74 69 61 6c 20 66 6f 72 6d 73 20 66 6f 72 lly.combine.sequential.forms.for
398a0 20 62 72 65 76 69 74 79 20 6f 72 0a 72 65 61 64 61 62 69 6c 69 74 79 2e 0a 0a 20 2d 2d 20 4d 61 .brevity.or.readability....--.Ma
398c0 63 72 6f 3a 20 2d 3e 20 28 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d 20 26 72 65 73 74 20 cro:.->.(x.&optional.form.&rest.
398e0 6d 6f 72 65 29 0a 20 20 20 20 20 54 68 72 65 61 64 20 74 68 65 20 65 78 70 72 20 74 68 72 6f 75 more)......Thread.the.expr.throu
39900 67 68 20 74 68 65 20 66 6f 72 6d 73 2e 20 20 49 6e 73 65 72 74 20 58 20 61 73 20 74 68 65 20 73 gh.the.forms...Insert.X.as.the.s
39920 65 63 6f 6e 64 20 69 74 65 6d 20 69 6e 0a 20 20 20 20 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 econd.item.in......the.first.for
39940 6d 2c 20 6d 61 6b 69 6e 67 20 61 20 6c 69 73 74 20 6f 66 20 69 74 20 69 66 20 69 74 20 69 73 20 m,.making.a.list.of.it.if.it.is.
39960 6e 6f 74 20 61 20 6c 69 73 74 20 61 6c 72 65 61 64 79 2e 0a 20 20 20 20 20 49 66 20 74 68 65 72 not.a.list.already.......If.ther
39980 65 20 61 72 65 20 6d 6f 72 65 20 66 6f 72 6d 73 2c 20 69 6e 73 65 72 74 20 74 68 65 20 66 69 72 e.are.more.forms,.insert.the.fir
399a0 73 74 20 66 6f 72 6d 20 61 73 20 74 68 65 20 73 65 63 6f 6e 64 20 69 74 65 6d 0a 20 20 20 20 20 st.form.as.the.second.item......
399c0 69 6e 20 73 65 63 6f 6e 64 20 66 6f 72 6d 2c 20 65 74 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 in.second.form,.etc.............
399e0 28 2d 3e 20 27 28 32 20 33 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 (->.'(2.3.5))...................
39a00 28 32 20 33 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 3e 20 27 28 32 20 33 20 35 29 20 28 (2.3.5)...........(->.'(2.3.5).(
39a20 61 70 70 65 6e 64 20 27 28 38 20 31 33 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 append.'(8.13)))................
39a40 87 92 20 28 32 20 33 20 35 20 38 20 31 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 3e 20 27 28 ...(2.3.5.8.13)...........(->.'(
39a60 32 20 33 20 35 29 20 28 61 70 70 65 6e 64 20 27 28 38 20 31 33 29 29 20 28 2d 73 6c 69 63 65 20 2.3.5).(append.'(8.13)).(-slice.
39a80 31 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 35 20 38 29 1.-1))...................(3.5.8)
39aa0 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 3e 3e 20 28 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f ...--.Macro:.->>.(x.&optional.fo
39ac0 72 6d 20 26 72 65 73 74 20 6d 6f 72 65 29 0a 20 20 20 20 20 54 68 72 65 61 64 20 74 68 65 20 65 rm.&rest.more)......Thread.the.e
39ae0 78 70 72 20 74 68 72 6f 75 67 68 20 74 68 65 20 66 6f 72 6d 73 2e 20 20 49 6e 73 65 72 74 20 58 xpr.through.the.forms...Insert.X
39b00 20 61 73 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 69 6e 0a 20 20 20 20 20 74 68 65 20 66 69 .as.the.last.item.in......the.fi
39b20 72 73 74 20 66 6f 72 6d 2c 20 6d 61 6b 69 6e 67 20 61 20 6c 69 73 74 20 6f 66 20 69 74 20 69 66 rst.form,.making.a.list.of.it.if
39b40 20 69 74 20 69 73 20 6e 6f 74 20 61 20 6c 69 73 74 20 61 6c 72 65 61 64 79 2e 0a 20 20 20 20 20 .it.is.not.a.list.already.......
39b60 49 66 20 74 68 65 72 65 20 61 72 65 20 6d 6f 72 65 20 66 6f 72 6d 73 2c 20 69 6e 73 65 72 74 20 If.there.are.more.forms,.insert.
39b80 74 68 65 20 66 69 72 73 74 20 66 6f 72 6d 20 61 73 20 74 68 65 20 6c 61 73 74 20 69 74 65 6d 20 the.first.form.as.the.last.item.
39ba0 69 6e 0a 20 20 20 20 20 73 65 63 6f 6e 64 20 66 6f 72 6d 2c 20 65 74 63 2e 0a 0a 20 20 20 20 20 in......second.form,.etc........
39bc0 20 20 20 20 20 28 2d 3e 3e 20 27 28 31 20 32 20 33 29 20 28 2d 6d 61 70 20 27 73 71 75 61 72 65 .....(->>.'(1.2.3).(-map.'square
39be0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 34 20 39 29 0a 20 20 20 ))...................(1.4.9)....
39c00 20 20 20 20 20 20 20 28 2d 3e 3e 20 27 28 31 20 32 20 33 29 20 28 2d 6d 61 70 20 27 73 71 75 61 .......(->>.'(1.2.3).(-map.'squa
39c20 72 65 29 20 28 2d 72 65 6d 6f 76 65 20 27 65 76 65 6e 3f 29 29 0a 20 20 20 20 20 20 20 20 20 20 re).(-remove.'even?))...........
39c40 20 20 20 20 e2 87 92 20 28 31 20 39 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 3e 3e 20 27 28 31 ........(1.9)...........(->>.'(1
39c60 20 32 20 33 29 20 28 2d 6d 61 70 20 27 73 71 75 61 72 65 29 20 28 2d 72 65 64 75 63 65 20 27 2b .2.3).(-map.'square).(-reduce.'+
39c80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 34 0a 0a 20 2d 2d 20 4d 61 63 ))...................14...--.Mac
39ca0 72 6f 3a 20 2d 2d 3e 20 28 78 20 26 72 65 73 74 20 66 6f 72 6d 73 29 0a 20 20 20 20 20 53 74 61 ro:.-->.(x.&rest.forms)......Sta
39cc0 72 74 69 6e 67 20 77 69 74 68 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 58 2c 20 74 68 72 65 61 rting.with.the.value.of.X,.threa
39ce0 64 20 65 61 63 68 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68 72 6f 75 67 68 20 46 4f 52 4d 53 2e d.each.expression.through.FORMS.
39d00 0a 0a 20 20 20 20 20 49 6e 73 65 72 74 20 58 20 61 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 .......Insert.X.at.the.position.
39d20 73 69 67 6e 69 66 69 65 64 20 62 79 20 74 68 65 20 73 79 6d 62 6f 6c 20 e2 80 98 69 74 e2 80 99 signified.by.the.symbol....it...
39d40 20 69 6e 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 20 66 6f 72 6d 2e 20 20 49 66 20 74 68 65 .in.the.first......form...If.the
39d60 72 65 20 61 72 65 20 6d 6f 72 65 20 66 6f 72 6d 73 2c 20 69 6e 73 65 72 74 20 74 68 65 20 66 69 re.are.more.forms,.insert.the.fi
39d80 72 73 74 20 66 6f 72 6d 20 61 74 20 74 68 65 0a 20 20 20 20 20 70 6f 73 69 74 69 6f 6e 20 73 69 rst.form.at.the......position.si
39da0 67 6e 69 66 69 65 64 20 62 79 20 e2 80 98 69 74 e2 80 99 20 69 6e 20 69 6e 20 73 65 63 6f 6e 64 gnified.by....it....in.in.second
39dc0 20 66 6f 72 6d 2c 20 65 74 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 3e 20 22 64 65 66 .form,.etc.............(-->."def
39de0 22 20 28 63 6f 6e 63 61 74 20 22 61 62 63 22 20 69 74 20 22 67 68 69 22 29 29 0a 20 20 20 20 20 ".(concat."abc".it."ghi"))......
39e00 20 20 20 20 20 20 20 20 20 e2 87 92 20 22 61 62 63 64 65 66 67 68 69 22 0a 20 20 20 20 20 20 20 ............."abcdefghi"........
39e20 20 20 20 28 2d 2d 3e 20 22 64 65 66 22 20 28 63 6f 6e 63 61 74 20 22 61 62 63 22 20 69 74 20 22 ...(-->."def".(concat."abc".it."
39e40 67 68 69 22 29 20 28 75 70 63 61 73 65 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ghi").(upcase.it))..............
39e60 20 e2 87 92 20 22 41 42 43 44 45 46 47 48 49 22 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 3e 20 ....."ABCDEFGHI"...........(-->.
39e80 22 64 65 66 22 20 28 63 6f 6e 63 61 74 20 22 61 62 63 22 20 69 74 20 22 67 68 69 22 29 20 75 70 "def".(concat."abc".it."ghi").up
39ea0 63 61 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 22 41 42 43 44 45 46 47 case)..................."ABCDEFG
39ec0 48 49 22 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 61 73 2d 3e 20 28 76 61 6c 75 65 20 76 61 72 HI"...--.Macro:.-as->.(value.var
39ee0 69 61 62 6c 65 20 26 72 65 73 74 20 66 6f 72 6d 73 29 0a 20 20 20 20 20 53 74 61 72 74 69 6e 67 iable.&rest.forms)......Starting
39f00 20 77 69 74 68 20 56 41 4c 55 45 2c 20 74 68 72 65 61 64 20 56 41 52 49 41 42 4c 45 20 74 68 72 .with.VALUE,.thread.VARIABLE.thr
39f20 6f 75 67 68 20 46 4f 52 4d 53 2e 0a 0a 20 20 20 20 20 49 6e 20 74 68 65 20 66 69 72 73 74 20 66 ough.FORMS........In.the.first.f
39f40 6f 72 6d 2c 20 62 69 6e 64 20 56 41 52 49 41 42 4c 45 20 74 6f 20 56 41 4c 55 45 2e 20 20 49 6e orm,.bind.VARIABLE.to.VALUE...In
39f60 20 74 68 65 20 73 65 63 6f 6e 64 20 66 6f 72 6d 2c 0a 20 20 20 20 20 62 69 6e 64 20 56 41 52 49 .the.second.form,......bind.VARI
39f80 41 42 4c 45 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 ABLE.to.the.result.of.the.first.
39fa0 66 6f 72 6d 2c 20 61 6e 64 20 73 6f 20 66 6f 72 74 68 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 form,.and.so.forth.............(
39fc0 2d 61 73 2d 3e 20 33 20 6d 79 2d 76 61 72 20 28 31 2b 20 6d 79 2d 76 61 72 29 20 28 6c 69 73 74 -as->.3.my-var.(1+.my-var).(list
39fe0 20 6d 79 2d 76 61 72 29 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 65 6c 65 29 20 28 .my-var).(mapcar.(lambda.(ele).(
3a000 2a 20 32 20 65 6c 65 29 29 20 6d 79 2d 76 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.2.ele)).my-var))..............
3a020 20 e2 87 92 20 28 38 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 61 73 2d 3e 20 33 20 6d 79 2d 76 .....(8)...........(-as->.3.my-v
3a040 61 72 20 31 2b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 34 0a 20 20 20 20 20 ar.1+)...................4......
3a060 20 20 20 20 20 28 2d 61 73 2d 3e 20 33 20 6d 79 2d 76 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 .....(-as->.3.my-var)...........
3a080 20 20 20 20 e2 87 92 20 33 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 73 6f 6d 65 2d 3e 20 28 78 ........3...--.Macro:.-some->.(x
3a0a0 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d 20 26 72 65 73 74 20 6d 6f 72 65 29 0a 20 20 20 20 .&optional.form.&rest.more).....
3a0c0 20 57 68 65 6e 20 65 78 70 72 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 74 68 72 .When.expr.is.non-...nil...,.thr
3a0e0 65 61 64 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 6d 20 28 76 ead.it.through.the.first.form.(v
3a100 69 61 20 e2 80 98 2d 3e e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 3e 3a 3a 29 29 2c 20 ia....->.........(*note.->::)),.
3a120 61 6e 64 20 77 68 65 6e 20 74 68 61 74 20 72 65 73 75 6c 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e and.when.that.result.is.non-...n
3a140 69 6c e2 80 99 2c 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 65 78 74 0a 20 20 20 20 20 66 6f 72 il...,.through.the.next......for
3a160 6d 2c 20 65 74 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 6d 65 2d 3e 20 27 28 32 20 m,.etc.............(-some->.'(2.
3a180 33 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 33 20 35 29 0a 3.5))...................(2.3.5).
3a1a0 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 6d 65 2d 3e 20 35 20 73 71 75 61 72 65 29 0a 20 20 20 ..........(-some->.5.square)....
3a1c0 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 32 35 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f ...............25...........(-so
3a1e0 6d 65 2d 3e 20 35 20 65 76 65 6e 3f 20 73 71 75 61 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 me->.5.even?.square)............
3a200 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 73 6f 6d 65 2d 3e 3e 20 .......nil...--.Macro:.-some->>.
3a220 28 78 20 26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 6d 20 26 72 65 73 74 20 6d 6f 72 65 29 0a 20 20 (x.&optional.form.&rest.more)...
3a240 20 20 20 57 68 65 6e 20 65 78 70 72 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 74 ...When.expr.is.non-...nil...,.t
3a260 68 72 65 61 64 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 66 69 72 73 74 20 66 6f 72 6d 20 hread.it.through.the.first.form.
3a280 28 76 69 61 20 e2 80 98 2d 3e 3e e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 20 2d 3e 3e 3a 3a (via....->>.........(*note.->>::
3a2a0 29 29 2c 20 61 6e 64 20 77 68 65 6e 20 74 68 61 74 20 72 65 73 75 6c 74 20 69 73 20 6e 6f 6e 2d )),.and.when.that.result.is.non-
3a2c0 e2 80 98 6e 69 6c e2 80 99 2c 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 65 78 74 0a 20 20 20 20 ...nil...,.through.the.next.....
3a2e0 20 66 6f 72 6d 2c 20 65 74 63 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 6d 65 2d 3e 3e .form,.etc.............(-some->>
3a300 20 27 28 31 20 32 20 33 29 20 28 2d 6d 61 70 20 27 73 71 75 61 72 65 29 29 0a 20 20 20 20 20 20 .'(1.2.3).(-map.'square)).......
3a320 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 34 20 39 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d ............(1.4.9)...........(-
3a340 73 6f 6d 65 2d 3e 3e 20 27 28 31 20 33 20 35 29 20 28 2d 6c 61 73 74 20 27 65 76 65 6e 3f 29 20 some->>.'(1.3.5).(-last.'even?).
3a360 28 2b 20 31 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 (+.100))...................nil..
3a380 20 20 20 20 20 20 20 20 20 28 2d 73 6f 6d 65 2d 3e 3e 20 27 28 32 20 34 20 36 29 20 28 2d 6c 61 .........(-some->>.'(2.4.6).(-la
3a3a0 73 74 20 27 65 76 65 6e 3f 29 20 28 2b 20 31 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 st.'even?).(+.100)).............
3a3c0 20 20 e2 87 92 20 31 30 36 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 73 6f 6d 65 2d 2d 3e 20 28 ......106...--.Macro:.-some-->.(
3a3e0 65 78 70 72 20 26 72 65 73 74 20 66 6f 72 6d 73 29 0a 20 20 20 20 20 54 68 72 65 61 64 20 45 58 expr.&rest.forms)......Thread.EX
3a400 50 52 20 74 68 72 6f 75 67 68 20 46 4f 52 4d 53 20 76 69 61 20 e2 80 98 2d 2d 3e e2 80 99 20 28 PR.through.FORMS.via....-->....(
3a420 2a 6e 6f 74 65 20 2d 2d 3e 3a 3a 29 2c 20 77 68 69 6c 65 20 74 68 65 20 72 65 73 75 6c 74 0a 20 *note.-->::),.while.the.result..
3a440 20 20 20 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 20 20 57 68 65 6e 20 45 58 50 52 ....is.non-...nil......When.EXPR
3a460 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 74 68 72 .evaluates.to.non-...nil...,.thr
3a480 65 61 64 20 74 68 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 74 68 72 6f 75 67 68 20 74 68 65 20 ead.the.result......through.the.
3a4a0 66 69 72 73 74 20 6f 66 20 46 4f 52 4d 53 2c 20 61 6e 64 20 77 68 65 6e 20 74 68 61 74 20 72 65 first.of.FORMS,.and.when.that.re
3a4c0 73 75 6c 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 0a 20 20 20 20 20 74 68 72 65 sult.is.non-...nil...,......thre
3a4e0 61 64 20 69 74 20 74 68 72 6f 75 67 68 20 74 68 65 20 6e 65 78 74 20 66 6f 72 6d 2c 20 65 74 63 ad.it.through.the.next.form,.etc
3a500 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 6d 65 2d 2d 3e 20 22 64 65 66 22 20 28 63 6f .............(-some-->."def".(co
3a520 6e 63 61 74 20 22 61 62 63 22 20 69 74 20 22 67 68 69 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 ncat."abc".it."ghi"))...........
3a540 20 20 20 20 e2 87 92 20 22 61 62 63 64 65 66 67 68 69 22 0a 20 20 20 20 20 20 20 20 20 20 28 2d ........"abcdefghi"...........(-
3a560 73 6f 6d 65 2d 2d 3e 20 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 61 62 63 22 20 69 74 20 22 67 68 some-->.nil.(concat."abc".it."gh
3a580 69 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 20 20 20 20 20 i"))...................nil......
3a5a0 20 20 20 20 20 28 2d 73 6f 6d 65 2d 2d 3e 20 27 28 30 20 31 29 20 28 2d 72 65 6d 6f 76 65 20 23 .....(-some-->.'(0.1).(-remove.#
3a5c0 27 6e 61 74 6e 75 6d 70 20 69 74 29 20 28 61 70 70 65 6e 64 20 69 74 20 69 74 29 20 28 2d 6d 61 'natnump.it).(append.it.it).(-ma
3a5e0 70 20 23 27 31 2b 20 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 p.#'1+.it))...................()
3a600 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 64 6f 74 6f 20 28 69 6e 69 74 20 26 72 65 73 74 20 66 ...--.Macro:.-doto.(init.&rest.f
3a620 6f 72 6d 73 29 0a 20 20 20 20 20 45 76 61 6c 75 61 74 65 20 49 4e 49 54 20 61 6e 64 20 70 61 73 orms)......Evaluate.INIT.and.pas
3a640 73 20 69 74 20 61 73 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 46 4f 52 4d 53 20 77 69 74 68 20 e2 s.it.as.argument.to.FORMS.with..
3a660 80 98 2d 3e e2 80 99 20 28 2a 6e 6f 74 65 0a 20 20 20 20 20 2d 3e 3a 3a 29 2e 20 20 54 68 65 20 ..->....(*note......->::)...The.
3a680 52 45 53 55 4c 54 20 6f 66 20 65 76 61 6c 75 61 74 69 6e 67 20 49 4e 49 54 20 69 73 20 74 68 72 RESULT.of.evaluating.INIT.is.thr
3a6a0 65 61 64 65 64 20 74 68 72 6f 75 67 68 20 65 61 63 68 20 6f 66 0a 20 20 20 20 20 46 4f 52 4d 53 eaded.through.each.of......FORMS
3a6c0 20 69 6e 64 69 76 69 64 75 61 6c 6c 79 20 75 73 69 6e 67 20 e2 80 98 2d 3e e2 80 99 20 28 2a 6e .individually.using....->....(*n
3a6e0 6f 74 65 20 2d 3e 3a 3a 29 2c 20 77 68 69 63 68 20 73 65 65 2e 20 20 54 68 65 20 72 65 74 75 72 ote.->::),.which.see...The.retur
3a700 6e 0a 20 20 20 20 20 76 61 6c 75 65 20 69 73 20 52 45 53 55 4c 54 2c 20 77 68 69 63 68 20 46 4f n......value.is.RESULT,.which.FO
3a720 52 4d 53 20 6d 61 79 20 68 61 76 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 73 69 64 65 20 65 66 RMS.may.have.modified.by.side.ef
3a740 66 65 63 74 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 6f 74 6f 20 28 6c 69 73 74 20 31 20 fect.............(-doto.(list.1.
3a760 32 20 33 29 20 70 6f 70 20 70 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 2.3).pop.pop)...................
3a780 28 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 64 6f 74 6f 20 28 63 6f 6e 73 20 31 20 32 29 20 (3)...........(-doto.(cons.1.2).
3a7a0 28 73 65 74 63 61 72 20 33 29 20 28 73 65 74 63 64 72 20 34 29 29 0a 20 20 20 20 20 20 20 20 20 (setcar.3).(setcdr.4))..........
3a7c0 20 20 20 20 20 e2 87 92 20 28 33 20 2e 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68 .........(3...4)...........(geth
3a7e0 61 73 68 20 27 6b 20 28 2d 2d 64 6f 74 6f 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 29 ash.'k.(--doto.(make-hash-table)
3a800 20 28 70 75 74 68 61 73 68 20 27 6b 20 27 76 20 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(puthash.'k.'v.it)))...........
3a820 20 20 20 20 e2 87 92 20 76 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e ........v....File:.dash.info,..N
3a840 6f 64 65 3a 20 42 69 6e 64 69 6e 67 2c 20 20 4e 65 78 74 3a 20 53 69 64 65 20 65 66 66 65 63 74 ode:.Binding,..Next:.Side.effect
3a860 73 2c 20 20 50 72 65 76 3a 20 54 68 72 65 61 64 69 6e 67 20 6d 61 63 72 6f 73 2c 20 20 55 70 3a s,..Prev:.Threading.macros,..Up:
3a880 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 31 33 20 42 69 6e 64 69 6e 67 0a 3d 3d 3d 3d 3d 3d 3d .Functions..2.13.Binding.=======
3a8a0 3d 3d 3d 3d 3d 0a 0a 4d 61 63 72 6f 73 20 74 68 61 74 20 63 6f 6d 62 69 6e 65 20 e2 80 98 6c 65 =====..Macros.that.combine....le
3a8c0 74 e2 80 99 20 61 6e 64 20 e2 80 98 6c 65 74 2a e2 80 99 20 77 69 74 68 20 64 65 73 74 72 75 63 t....and....let*....with.destruc
3a8e0 74 75 72 69 6e 67 20 61 6e 64 20 66 6c 6f 77 0a 63 6f 6e 74 72 6f 6c 2e 0a 0a 20 2d 2d 20 4d 61 turing.and.flow.control....--.Ma
3a900 63 72 6f 3a 20 2d 77 68 65 6e 2d 6c 65 74 20 28 28 76 61 72 20 76 61 6c 29 20 26 72 65 73 74 20 cro:.-when-let.((var.val).&rest.
3a920 62 6f 64 79 29 0a 20 20 20 20 20 49 66 20 56 41 4c 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 6e body)......If.VAL.evaluates.to.n
3a940 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 62 69 6e 64 20 69 74 20 74 6f 20 56 41 52 20 61 6e 64 on-...nil...,.bind.it.to.VAR.and
3a960 20 65 78 65 63 75 74 65 20 62 6f 64 79 2e 0a 0a 20 20 20 20 20 4e 6f 74 65 3a 20 62 69 6e 64 69 .execute.body........Note:.bindi
3a980 6e 67 20 69 73 20 64 6f 6e 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 e2 80 98 2d 6c 65 74 e2 ng.is.done.according.to....-let.
3a9a0 80 99 20 28 2a 6e 6f 74 65 20 2d 6c 65 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d ...(*note.-let::).............(-
3a9c0 77 68 65 6e 2d 6c 65 74 20 28 6d 61 74 63 68 2d 69 6e 64 65 78 20 28 73 74 72 69 6e 67 2d 6d 61 when-let.(match-index.(string-ma
3a9e0 74 63 68 20 22 64 22 20 22 61 62 63 64 22 29 29 20 28 2b 20 6d 61 74 63 68 2d 69 6e 64 65 78 20 tch."d"."abcd")).(+.match-index.
3aa00 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 35 0a 20 20 20 20 20 20 20 20 2))...................5.........
3aa20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 20 28 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 66 6f 6f 29 20 ..(-when-let.((&plist.:foo.foo).
3aa40 28 6c 69 73 74 20 3a 66 6f 6f 20 22 66 6f 6f 22 29 29 20 66 6f 6f 29 0a 20 20 20 20 20 20 20 20 (list.:foo."foo")).foo).........
3aa60 20 20 20 20 20 20 e2 87 92 20 22 66 6f 6f 22 0a 20 20 20 20 20 20 20 20 20 20 28 2d 77 68 65 6e .........."foo"...........(-when
3aa80 2d 6c 65 74 20 28 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 66 6f 6f 29 20 28 6c 69 73 74 20 3a 62 -let.((&plist.:foo.foo).(list.:b
3aaa0 61 72 20 22 62 61 72 22 29 29 20 66 6f 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 ar."bar")).foo).................
3aac0 92 20 6e 69 6c 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 77 68 65 6e 2d 6c 65 74 2a 20 28 76 61 ..nil...--.Macro:.-when-let*.(va
3aae0 72 73 2d 76 61 6c 73 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 20 20 20 49 66 20 61 6c 6c 20 rs-vals.&rest.body)......If.all.
3ab00 56 41 4c 53 20 65 76 61 6c 75 61 74 65 20 74 6f 20 74 72 75 65 2c 20 62 69 6e 64 20 74 68 65 6d VALS.evaluate.to.true,.bind.them
3ab20 20 74 6f 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 56 41 52 53 0a 20 20 20 .to.their.corresponding.VARS....
3ab40 20 20 61 6e 64 20 65 78 65 63 75 74 65 20 62 6f 64 79 2e 20 20 56 41 52 53 2d 56 41 4c 53 20 73 ..and.execute.body...VARS-VALS.s
3ab60 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 28 56 41 52 20 56 41 4c 29 20 70 61 69 hould.be.a.list.of.(VAR.VAL).pai
3ab80 72 73 2e 0a 0a 20 20 20 20 20 4e 6f 74 65 3a 20 62 69 6e 64 69 6e 67 20 69 73 20 64 6f 6e 65 20 rs........Note:.binding.is.done.
3aba0 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 e2 80 98 2d 6c 65 74 2a e2 80 99 20 28 2a 6e 6f 74 65 20 according.to....-let*....(*note.
3abc0 2d 6c 65 74 2a 3a 3a 29 2e 20 20 56 41 4c 53 0a 20 20 20 20 20 61 72 65 20 65 76 61 6c 75 61 74 -let*::)...VALS......are.evaluat
3abe0 65 64 20 73 65 71 75 65 6e 74 69 61 6c 6c 79 2c 20 61 6e 64 20 65 76 61 6c 75 61 74 69 6f 6e 20 ed.sequentially,.and.evaluation.
3ac00 73 74 6f 70 73 20 61 66 74 65 72 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 20 e2 80 98 6e 69 stops.after.the.first.........ni
3ac20 6c e2 80 99 20 56 41 4c 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 2e 0a 0a 20 20 20 20 20 20 l....VAL.is.encountered.........
3ac40 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 2a 20 28 28 78 20 35 29 20 28 79 20 33 29 20 28 7a 20 ....(-when-let*.((x.5).(y.3).(z.
3ac60 28 2b 20 79 20 34 29 29 29 20 28 2b 20 78 20 79 20 7a 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (+.y.4))).(+.x.y.z))............
3ac80 20 20 20 e2 87 92 20 31 35 0a 20 20 20 20 20 20 20 20 20 20 28 2d 77 68 65 6e 2d 6c 65 74 2a 20 .......15...........(-when-let*.
3aca0 28 28 78 20 35 29 20 28 79 20 6e 69 6c 29 20 28 7a 20 37 29 29 20 28 2b 20 78 20 79 20 7a 29 29 ((x.5).(y.nil).(z.7)).(+.x.y.z))
3acc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 4d 61 63 72 ...................nil...--.Macr
3ace0 6f 3a 20 2d 69 66 2d 6c 65 74 20 28 28 76 61 72 20 76 61 6c 29 20 74 68 65 6e 20 26 72 65 73 74 o:.-if-let.((var.val).then.&rest
3ad00 20 65 6c 73 65 29 0a 20 20 20 20 20 49 66 20 56 41 4c 20 65 76 61 6c 75 61 74 65 73 20 74 6f 20 .else)......If.VAL.evaluates.to.
3ad20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2c 20 62 69 6e 64 20 69 74 20 74 6f 20 56 41 52 20 61 6e non-...nil...,.bind.it.to.VAR.an
3ad40 64 20 64 6f 20 54 48 45 4e 2c 0a 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 64 6f 20 45 4c 53 d.do.THEN,......otherwise.do.ELS
3ad60 45 2e 0a 0a 20 20 20 20 20 4e 6f 74 65 3a 20 62 69 6e 64 69 6e 67 20 69 73 20 64 6f 6e 65 20 61 E........Note:.binding.is.done.a
3ad80 63 63 6f 72 64 69 6e 67 20 74 6f 20 e2 80 98 2d 6c 65 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6c ccording.to....-let....(*note.-l
3ada0 65 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 74 20 28 6d 61 74 63 et::).............(-if-let.(matc
3adc0 68 2d 69 6e 64 65 78 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 64 22 20 22 61 62 63 22 29 h-index.(string-match."d"."abc")
3ade0 29 20 28 2b 20 6d 61 74 63 68 2d 69 6e 64 65 78 20 33 29 20 37 29 0a 20 20 20 20 20 20 20 20 20 ).(+.match-index.3).7)..........
3ae00 20 20 20 20 20 e2 87 92 20 37 0a 20 20 20 20 20 20 20 20 20 20 28 2d 2d 69 66 2d 6c 65 74 20 28 .........7...........(--if-let.(
3ae20 65 76 65 6e 3f 20 34 29 20 69 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 even?.4).it.nil)................
3ae40 87 92 20 74 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 69 66 2d 6c 65 74 2a 20 28 76 61 72 73 2d ...t...--.Macro:.-if-let*.(vars-
3ae60 76 61 6c 73 20 74 68 65 6e 20 26 72 65 73 74 20 65 6c 73 65 29 0a 20 20 20 20 20 49 66 20 61 6c vals.then.&rest.else)......If.al
3ae80 6c 20 56 41 4c 53 20 65 76 61 6c 75 61 74 65 20 74 6f 20 74 72 75 65 2c 20 62 69 6e 64 20 74 68 l.VALS.evaluate.to.true,.bind.th
3aea0 65 6d 20 74 6f 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 56 41 52 53 0a 20 em.to.their.corresponding.VARS..
3aec0 20 20 20 20 61 6e 64 20 64 6f 20 54 48 45 4e 2c 20 6f 74 68 65 72 77 69 73 65 20 64 6f 20 45 4c ....and.do.THEN,.otherwise.do.EL
3aee0 53 45 2e 20 20 56 41 52 53 2d 56 41 4c 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 SE...VARS-VALS.should.be.a.list.
3af00 6f 66 20 28 56 41 52 0a 20 20 20 20 20 56 41 4c 29 20 70 61 69 72 73 2e 0a 0a 20 20 20 20 20 4e of.(VAR......VAL).pairs........N
3af20 6f 74 65 3a 20 62 69 6e 64 69 6e 67 20 69 73 20 64 6f 6e 65 20 61 63 63 6f 72 64 69 6e 67 20 74 ote:.binding.is.done.according.t
3af40 6f 20 e2 80 98 2d 6c 65 74 2a e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6c 65 74 2a 3a 3a 29 2e 20 20 o....-let*....(*note.-let*::)...
3af60 56 41 4c 53 0a 20 20 20 20 20 61 72 65 20 65 76 61 6c 75 61 74 65 64 20 73 65 71 75 65 6e 74 69 VALS......are.evaluated.sequenti
3af80 61 6c 6c 79 2c 20 61 6e 64 20 65 76 61 6c 75 61 74 69 6f 6e 20 73 74 6f 70 73 20 61 66 74 65 72 ally,.and.evaluation.stops.after
3afa0 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 20 e2 80 98 6e 69 6c e2 80 99 20 56 41 4c 20 69 73 .the.first.........nil....VAL.is
3afc0 20 65 6e 63 6f 75 6e 74 65 72 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 .encountered.............(-if-le
3afe0 74 2a 20 28 28 78 20 35 29 20 28 79 20 33 29 20 28 7a 20 37 29 29 20 28 2b 20 78 20 79 20 7a 29 t*.((x.5).(y.3).(z.7)).(+.x.y.z)
3b000 20 22 66 6f 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 35 0a 20 20 20 ."foo")...................15....
3b020 20 20 20 20 20 20 20 28 2d 69 66 2d 6c 65 74 2a 20 28 28 78 20 35 29 20 28 79 20 6e 69 6c 29 20 .......(-if-let*.((x.5).(y.nil).
3b040 28 7a 20 37 29 29 20 28 2b 20 78 20 79 20 7a 29 20 22 66 6f 6f 22 29 0a 20 20 20 20 20 20 20 20 (z.7)).(+.x.y.z)."foo").........
3b060 20 20 20 20 20 20 e2 87 92 20 22 66 6f 6f 22 0a 20 20 20 20 20 20 20 20 20 20 28 2d 69 66 2d 6c .........."foo"...........(-if-l
3b080 65 74 2a 20 28 28 28 5f 20 5f 20 78 29 20 27 28 6e 69 6c 20 6e 69 6c 20 37 29 29 29 20 78 29 0a et*.(((_._.x).'(nil.nil.7))).x).
3b0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 37 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 ..................7...--.Macro:.
3b0c0 2d 6c 65 74 20 28 76 61 72 6c 69 73 74 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 20 20 20 42 -let.(varlist.&rest.body)......B
3b0e0 69 6e 64 20 76 61 72 69 61 62 6c 65 73 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 56 41 52 4c 49 ind.variables.according.to.VARLI
3b100 53 54 20 74 68 65 6e 20 65 76 61 6c 20 42 4f 44 59 2e 0a 0a 20 20 20 20 20 56 41 52 4c 49 53 54 ST.then.eval.BODY........VARLIST
3b120 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 .is.a.list.of.lists.of.the.form.
3b140 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 45 29 2e 20 20 45 61 63 68 0a 20 20 20 20 20 50 41 54 (PATTERN.SOURCE)...Each......PAT
3b160 54 45 52 4e 20 69 73 20 6d 61 74 63 68 65 64 20 61 67 61 69 6e 73 74 20 74 68 65 20 53 4f 55 52 TERN.is.matched.against.the.SOUR
3b180 43 45 20 22 73 74 72 75 63 74 75 72 61 6c 6c 79 22 2e 20 20 53 4f 55 52 43 45 20 69 73 0a 20 20 CE."structurally"...SOURCE.is...
3b1a0 20 20 20 6f 6e 6c 79 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 63 65 20 66 6f 72 20 65 61 63 68 20 ...only.evaluated.once.for.each.
3b1c0 50 41 54 54 45 52 4e 2e 20 20 45 61 63 68 20 50 41 54 54 45 52 4e 20 69 73 20 6d 61 74 63 68 65 PATTERN...Each.PATTERN.is.matche
3b1e0 64 0a 20 20 20 20 20 72 65 63 75 72 73 69 76 65 6c 79 2c 20 61 6e 64 20 63 61 6e 20 74 68 65 72 d......recursively,.and.can.ther
3b200 65 66 6f 72 65 20 63 6f 6e 74 61 69 6e 20 73 75 62 2d 70 61 74 74 65 72 6e 73 20 77 68 69 63 68 efore.contain.sub-patterns.which
3b220 20 61 72 65 0a 20 20 20 20 20 6d 61 74 63 68 65 64 20 61 67 61 69 6e 73 74 20 63 6f 72 72 65 73 .are......matched.against.corres
3b240 70 6f 6e 64 69 6e 67 20 73 75 62 2d 65 78 70 72 65 73 73 69 6f 6e 73 20 6f 66 20 53 4f 55 52 43 ponding.sub-expressions.of.SOURC
3b260 45 2e 0a 0a 20 20 20 20 20 41 6c 6c 20 74 68 65 20 53 4f 55 52 43 45 73 20 61 72 65 20 65 76 61 E........All.the.SOURCEs.are.eva
3b280 6c 6c 65 64 20 62 65 66 6f 72 65 20 61 6e 79 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 62 6f 75 6e lled.before.any.symbols.are.boun
3b2a0 64 20 28 69 2e 65 2e 20 20 22 69 6e 0a 20 20 20 20 20 70 61 72 61 6c 6c 65 6c 22 29 2e 0a 0a 20 d.(i.e..."in......parallel")....
3b2c0 20 20 20 20 49 66 20 56 41 52 4c 49 53 54 20 6f 6e 6c 79 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 ....If.VARLIST.only.contains.one
3b2e0 20 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 45 29 20 65 6c 65 6d 65 6e 74 2c 20 79 6f 75 20 63 .(PATTERN.SOURCE).element,.you.c
3b300 61 6e 0a 20 20 20 20 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 73 70 65 63 69 66 79 20 69 74 20 75 73 an......optionally.specify.it.us
3b320 69 6e 67 20 61 20 76 65 63 74 6f 72 20 61 6e 64 20 64 69 73 63 61 72 64 69 6e 67 20 74 68 65 20 ing.a.vector.and.discarding.the.
3b340 6f 75 74 65 72 2d 6d 6f 73 74 0a 20 20 20 20 20 70 61 72 65 6e 73 2e 20 20 54 68 75 73 0a 0a 20 outer-most......parens...Thus...
3b360 20 20 20 20 28 2d 6c 65 74 20 28 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 45 29 29 20 2e 2e 2e ....(-let.((PATTERN.SOURCE))....
3b380 29 0a 0a 20 20 20 20 20 62 65 63 6f 6d 65 73 0a 0a 20 20 20 20 20 28 2d 6c 65 74 20 5b 50 41 54 ).......becomes.......(-let.[PAT
3b3a0 54 45 52 4e 20 53 4f 55 52 43 45 5d 20 2e 2e 2e 29 2e 0a 0a 20 20 20 20 20 e2 80 98 2d 6c 65 74 TERN.SOURCE]....)...........-let
3b3c0 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6c 65 74 3a 3a 29 20 75 73 65 73 20 61 20 63 6f 6e 76 65 6e ....(*note.-let::).uses.a.conven
3b3e0 74 69 6f 6e 20 6f 66 20 6e 6f 74 20 62 69 6e 64 69 6e 67 20 70 6c 61 63 65 73 0a 20 20 20 20 20 tion.of.not.binding.places......
3b400 28 73 79 6d 62 6f 6c 73 29 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 5f 20 77 68 65 6e 65 76 (symbols).starting.with._.whenev
3b420 65 72 20 69 74 e2 80 99 73 20 70 6f 73 73 69 62 6c 65 2e 20 20 59 6f 75 20 63 61 6e 20 75 73 65 er.it...s.possible...You.can.use
3b440 20 74 68 69 73 0a 20 20 20 20 20 74 6f 20 73 6b 69 70 20 6f 76 65 72 20 65 6e 74 72 69 65 73 20 .this......to.skip.over.entries.
3b460 79 6f 75 20 64 6f 6e e2 80 99 74 20 63 61 72 65 20 61 62 6f 75 74 2e 20 20 48 6f 77 65 76 65 72 you.don...t.care.about...However
3b480 2c 20 74 68 69 73 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 2a 61 6c 77 61 79 73 2a 20 70 6f 73 73 ,.this.is.not......*always*.poss
3b4a0 69 62 6c 65 20 28 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 69 6d 70 6c 65 6d 65 6e 74 61 74 ible.(as.a.result.of.implementat
3b4c0 69 6f 6e 29 20 61 6e 64 20 74 68 65 73 65 20 73 79 6d 62 6f 6c 73 0a 20 20 20 20 20 6d 69 67 68 ion).and.these.symbols......migh
3b4e0 74 20 67 65 74 20 62 6f 75 6e 64 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20 76 61 6c 75 65 73 2e t.get.bound.to.undefined.values.
3b500 0a 0a 20 20 20 20 20 46 6f 6c 6c 6f 77 69 6e 67 20 69 73 20 74 68 65 20 6f 76 65 72 76 69 65 77 .......Following.is.the.overview
3b520 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 70 61 74 74 65 72 6e 73 2e 20 20 52 65 6d 65 6d 62 65 .of.supported.patterns...Remembe
3b540 72 20 74 68 61 74 0a 20 20 20 20 20 70 61 74 74 65 72 6e 73 20 63 61 6e 20 62 65 20 6d 61 74 63 r.that......patterns.can.be.matc
3b560 68 65 64 20 72 65 63 75 72 73 69 76 65 6c 79 2c 20 73 6f 20 65 76 65 72 79 20 61 2c 20 62 2c 20 hed.recursively,.so.every.a,.b,.
3b580 61 4b 20 69 6e 20 74 68 65 0a 20 20 20 20 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6e 20 62 65 20 aK.in.the......following.can.be.
3b5a0 61 20 6d 61 74 63 68 69 6e 67 20 63 6f 6e 73 74 72 75 63 74 20 61 6e 64 20 6e 6f 74 20 6e 65 63 a.matching.construct.and.not.nec
3b5c0 65 73 73 61 72 69 6c 79 20 61 0a 20 20 20 20 20 73 79 6d 62 6f 6c 2f 76 61 72 69 61 62 6c 65 2e essarily.a......symbol/variable.
3b5e0 0a 0a 20 20 20 20 20 53 79 6d 62 6f 6c 3a 0a 0a 20 20 20 20 20 61 20 2d 20 62 69 6e 64 20 74 68 .......Symbol:.......a.-.bind.th
3b600 65 20 53 4f 55 52 43 45 20 74 6f 20 41 2e 20 20 54 68 69 73 20 69 73 20 6a 75 73 74 20 6c 69 6b e.SOURCE.to.A...This.is.just.lik
3b620 65 20 72 65 67 75 6c 61 72 20 e2 80 98 6c 65 74 e2 80 99 2e 0a 0a 20 20 20 20 20 43 6f 6e 73 65 e.regular....let...........Conse
3b640 73 20 61 6e 64 20 6c 69 73 74 73 3a 0a 0a 20 20 20 20 20 28 61 29 20 2d 20 62 69 6e 64 20 e2 80 s.and.lists:.......(a).-.bind...
3b660 98 63 61 72 e2 80 99 20 6f 66 20 63 6f 6e 73 2f 6c 69 73 74 20 74 6f 20 41 0a 0a 20 20 20 20 20 .car....of.cons/list.to.A.......
3b680 28 61 20 2e 20 20 62 29 20 2d 20 62 69 6e 64 20 63 61 72 20 6f 66 20 63 6f 6e 73 20 74 6f 20 41 (a....b).-.bind.car.of.cons.to.A
3b6a0 20 61 6e 64 20 e2 80 98 63 64 72 e2 80 99 20 74 6f 20 42 0a 0a 20 20 20 20 20 28 61 20 62 29 20 .and....cdr....to.B.......(a.b).
3b6c0 2d 20 62 69 6e 64 20 63 61 72 20 6f 66 20 6c 69 73 74 20 74 6f 20 41 20 61 6e 64 20 e2 80 98 63 -.bind.car.of.list.to.A.and....c
3b6e0 61 64 72 e2 80 99 20 74 6f 20 42 0a 0a 20 20 20 20 20 28 61 31 20 61 32 20 61 33 20 2e 2e 2e 29 adr....to.B.......(a1.a2.a3....)
3b700 20 2d 20 62 69 6e 64 20 30 74 68 20 63 61 72 20 6f 66 20 6c 69 73 74 20 74 6f 20 41 31 2c 20 31 .-.bind.0th.car.of.list.to.A1,.1
3b720 73 74 20 74 6f 20 41 32 2c 20 32 6e 64 20 74 6f 0a 20 20 20 20 20 41 33 2e 2e 2e 0a 0a 20 20 20 st.to.A2,.2nd.to......A3........
3b740 20 20 28 61 31 20 61 32 20 61 33 20 2e 2e 2e 20 61 4e 20 2e 20 20 72 65 73 74 29 20 2d 20 61 73 ..(a1.a2.a3.....aN....rest).-.as
3b760 20 61 62 6f 76 65 2c 20 62 75 74 20 62 69 6e 64 20 74 68 65 20 4e 74 68 20 63 64 72 20 74 6f 20 .above,.but.bind.the.Nth.cdr.to.
3b780 52 45 53 54 2e 0a 0a 20 20 20 20 20 56 65 63 74 6f 72 73 3a 0a 0a 20 20 20 20 20 5b 61 5d 20 2d REST........Vectors:.......[a].-
3b7a0 20 62 69 6e 64 20 30 74 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 61 20 6e 6f 6e 2d 6c 69 73 74 20 .bind.0th.element.of.a.non-list.
3b7c0 73 65 71 75 65 6e 63 65 20 74 6f 20 41 20 28 77 6f 72 6b 73 20 77 69 74 68 0a 20 20 20 20 20 76 sequence.to.A.(works.with......v
3b7e0 65 63 74 6f 72 73 2c 20 73 74 72 69 6e 67 73 2c 20 62 69 74 20 61 72 72 61 79 73 2e 2e 2e 29 0a ectors,.strings,.bit.arrays...).
3b800 0a 20 20 20 20 20 5b 61 31 20 61 32 20 61 33 20 2e 2e 2e 5d 20 2d 20 62 69 6e 64 20 30 74 68 20 ......[a1.a2.a3....].-.bind.0th.
3b820 65 6c 65 6d 65 6e 74 20 6f 66 20 6e 6f 6e 2d 6c 69 73 74 20 73 65 71 75 65 6e 63 65 20 74 6f 20 element.of.non-list.sequence.to.
3b840 41 30 2c 20 31 73 74 0a 20 20 20 20 20 74 6f 20 41 31 2c 20 32 6e 64 20 74 6f 20 41 32 2c 20 2e A0,.1st......to.A1,.2nd.to.A2,..
3b860 2e 2e 20 20 49 66 20 74 68 65 20 50 41 54 54 45 52 4e 20 69 73 20 73 68 6f 72 74 65 72 20 74 68 ....If.the.PATTERN.is.shorter.th
3b880 61 6e 20 53 4f 55 52 43 45 2c 20 74 68 65 0a 20 20 20 20 20 76 61 6c 75 65 73 20 61 74 20 70 6c an.SOURCE,.the......values.at.pl
3b8a0 61 63 65 73 20 6e 6f 74 20 69 6e 20 50 41 54 54 45 52 4e 20 61 72 65 20 69 67 6e 6f 72 65 64 2e aces.not.in.PATTERN.are.ignored.
3b8c0 20 20 49 66 20 74 68 65 20 50 41 54 54 45 52 4e 20 69 73 0a 20 20 20 20 20 6c 6f 6e 67 65 72 20 ..If.the.PATTERN.is......longer.
3b8e0 74 68 61 6e 20 53 4f 55 52 43 45 2c 20 61 6e 20 e2 80 98 65 72 72 6f 72 e2 80 99 20 69 73 20 74 than.SOURCE,.an....error....is.t
3b900 68 72 6f 77 6e 2e 0a 0a 20 20 20 20 20 5b 61 31 20 61 32 20 61 33 20 2e 2e 2e 20 26 72 65 73 74 hrown........[a1.a2.a3.....&rest
3b920 20 72 65 73 74 5d 20 2d 20 61 73 20 61 62 6f 76 65 2c 20 62 75 74 20 62 69 6e 64 20 74 68 65 20 .rest].-.as.above,.but.bind.the.
3b940 72 65 73 74 20 6f 66 20 74 68 65 0a 20 20 20 20 20 73 65 71 75 65 6e 63 65 20 74 6f 20 52 45 53 rest.of.the......sequence.to.RES
3b960 54 2e 20 20 54 68 69 73 20 69 73 20 63 6f 6e 63 65 70 74 75 61 6c 6c 79 20 74 68 65 20 73 61 6d T...This.is.conceptually.the.sam
3b980 65 20 61 73 20 69 6d 70 72 6f 70 65 72 20 6c 69 73 74 0a 20 20 20 20 20 6d 61 74 63 68 69 6e 67 e.as.improper.list......matching
3b9a0 20 28 61 31 20 61 32 20 2e 2e 2e 20 61 4e 20 2e 20 20 72 65 73 74 29 0a 0a 20 20 20 20 20 4b 65 .(a1.a2.....aN....rest).......Ke
3b9c0 79 2f 76 61 6c 75 65 20 73 74 6f 72 65 73 3a 0a 0a 20 20 20 20 20 28 26 70 6c 69 73 74 20 6b 65 y/value.stores:.......(&plist.ke
3b9e0 79 30 20 61 30 20 2e 2e 2e 20 6b 65 79 4e 20 61 4e 29 20 2d 20 62 69 6e 64 20 76 61 6c 75 65 20 y0.a0.....keyN.aN).-.bind.value.
3ba00 6d 61 70 70 65 64 20 62 79 20 6b 65 79 4b 20 69 6e 20 74 68 65 0a 20 20 20 20 20 53 4f 55 52 43 mapped.by.keyK.in.the......SOURC
3ba20 45 20 70 6c 69 73 74 20 74 6f 20 61 4b 2e 20 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 6e E.plist.to.aK..If.the.value.is.n
3ba40 6f 74 20 66 6f 75 6e 64 2c 20 61 4b 20 69 73 20 e2 80 98 6e 69 6c e2 80 99 2e 20 20 55 73 65 73 ot.found,.aK.is....nil......Uses
3ba60 0a 20 20 20 20 20 e2 80 98 70 6c 69 73 74 2d 67 65 74 e2 80 99 20 74 6f 20 66 65 74 63 68 20 76 .........plist-get....to.fetch.v
3ba80 61 6c 75 65 73 2e 0a 0a 20 20 20 20 20 28 26 61 6c 69 73 74 20 6b 65 79 30 20 61 30 20 2e 2e 2e alues........(&alist.key0.a0....
3baa0 20 6b 65 79 4e 20 61 4e 29 20 2d 20 62 69 6e 64 20 76 61 6c 75 65 20 6d 61 70 70 65 64 20 62 79 .keyN.aN).-.bind.value.mapped.by
3bac0 20 6b 65 79 4b 20 69 6e 20 74 68 65 0a 20 20 20 20 20 53 4f 55 52 43 45 20 61 6c 69 73 74 20 74 .keyK.in.the......SOURCE.alist.t
3bae0 6f 20 61 4b 2e 20 49 66 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 2c o.aK..If.the.value.is.not.found,
3bb00 20 61 4b 20 69 73 20 e2 80 98 6e 69 6c e2 80 99 2e 20 20 55 73 65 73 0a 20 20 20 20 20 e2 80 98 .aK.is....nil......Uses.........
3bb20 61 73 73 6f 63 e2 80 99 20 74 6f 20 66 65 74 63 68 20 76 61 6c 75 65 73 2e 0a 0a 20 20 20 20 20 assoc....to.fetch.values........
3bb40 28 26 68 61 73 68 20 6b 65 79 30 20 61 30 20 2e 2e 2e 20 6b 65 79 4e 20 61 4e 29 20 2d 20 62 69 (&hash.key0.a0.....keyN.aN).-.bi
3bb60 6e 64 20 76 61 6c 75 65 20 6d 61 70 70 65 64 20 62 79 20 6b 65 79 4b 20 69 6e 20 74 68 65 0a 20 nd.value.mapped.by.keyK.in.the..
3bb80 20 20 20 20 53 4f 55 52 43 45 20 68 61 73 68 20 74 61 62 6c 65 20 74 6f 20 61 4b 2e 20 49 66 20 ....SOURCE.hash.table.to.aK..If.
3bba0 74 68 65 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 61 4b 20 69 73 20 e2 80 the.value.is.not.found,.aK.is...
3bbc0 98 6e 69 6c e2 80 99 2e 0a 20 20 20 20 20 55 73 65 73 20 e2 80 98 67 65 74 68 61 73 68 e2 80 99 .nil..........Uses....gethash...
3bbe0 20 74 6f 20 66 65 74 63 68 20 76 61 6c 75 65 73 2e 0a 0a 20 20 20 20 20 46 75 72 74 68 65 72 2c .to.fetch.values........Further,
3bc00 20 73 70 65 63 69 61 6c 20 6b 65 79 77 6f 72 64 20 26 6b 65 79 73 20 73 75 70 70 6f 72 74 73 20 .special.keyword.&keys.supports.
3bc20 22 69 6e 6c 69 6e 65 22 20 6d 61 74 63 68 69 6e 67 20 6f 66 0a 20 20 20 20 20 70 6c 69 73 74 2d "inline".matching.of......plist-
3bc40 6c 69 6b 65 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 2c 20 73 69 6d 69 6c 61 72 6c 79 20 like.key-value.pairs,.similarly.
3bc60 74 6f 20 26 6b 65 79 73 20 6b 65 79 77 6f 72 64 20 6f 66 0a 20 20 20 20 20 e2 80 98 63 6c 2d 64 to.&keys.keyword.of.........cl-d
3bc80 65 66 75 6e e2 80 99 2e 0a 0a 20 20 20 20 20 28 61 31 20 61 32 20 2e 2e 2e 20 61 4e 20 26 6b 65 efun...........(a1.a2.....aN.&ke
3bca0 79 73 20 6b 65 79 31 20 62 31 20 2e 2e 2e 20 6b 65 79 4e 20 62 4b 29 0a 0a 20 20 20 20 20 54 68 ys.key1.b1.....keyN.bK).......Th
3bcc0 69 73 20 62 69 6e 64 73 20 4e 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 is.binds.N.values.from.the.list.
3bce0 74 6f 20 61 31 20 2e 2e 2e 20 61 4e 2c 20 74 68 65 6e 20 69 6e 74 65 72 70 72 65 74 73 20 74 68 to.a1.....aN,.then.interprets.th
3bd00 65 0a 20 20 20 20 20 63 64 72 20 61 73 20 61 20 70 6c 69 73 74 20 28 73 65 65 20 6b 65 79 2f 76 e......cdr.as.a.plist.(see.key/v
3bd20 61 6c 75 65 20 6d 61 74 63 68 69 6e 67 20 61 62 6f 76 65 29 2e 0a 0a 20 20 20 20 20 41 20 73 68 alue.matching.above)........A.sh
3bd40 6f 72 74 68 61 6e 64 20 6e 6f 74 61 74 69 6f 6e 20 66 6f 72 20 6b 76 2d 64 65 73 74 72 75 63 74 orthand.notation.for.kv-destruct
3bd60 75 72 69 6e 67 20 65 78 69 73 74 73 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 20 74 68 65 0a 20 20 uring.exists.which.allows.the...
3bd80 20 20 20 70 61 74 74 65 72 6e 73 20 62 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 6c 65 66 74 20 6f ...patterns.be.optionally.left.o
3bda0 75 74 20 61 6e 64 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 74 68 65 20 6b 65 79 20 6e 61 6d 65 ut.and.derived.from.the.key.name
3bdc0 20 69 6e 0a 20 20 20 20 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 61 73 68 69 6f 6e 3a 0a .in......the.following.fashion:.
3bde0 0a 20 20 20 20 20 2d 20 61 20 6b 65 79 20 3a 66 6f 6f 20 69 73 20 63 6f 6e 76 65 72 74 65 64 20 ......-.a.key.:foo.is.converted.
3be00 69 6e 74 6f 20 e2 80 98 66 6f 6f e2 80 99 20 70 61 74 74 65 72 6e 2c 20 2d 20 61 20 6b 65 79 20 into....foo....pattern,.-.a.key.
3be20 e2 80 99 62 61 72 20 69 73 0a 20 20 20 20 20 63 6f 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 e2 80 ...bar.is......converted.into...
3be40 98 62 61 72 e2 80 99 20 70 61 74 74 65 72 6e 2c 20 2d 20 61 20 6b 65 79 20 22 62 61 7a 22 20 69 .bar....pattern,.-.a.key."baz".i
3be60 73 20 63 6f 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 e2 80 98 62 61 7a e2 80 99 0a 20 20 20 20 20 s.converted.into....baz.........
3be80 70 61 74 74 65 72 6e 2e 0a 0a 20 20 20 20 20 54 68 61 74 20 69 73 2c 20 74 68 65 20 65 6e 74 69 pattern........That.is,.the.enti
3bea0 72 65 20 76 61 6c 75 65 20 75 6e 64 65 72 20 74 68 65 20 6b 65 79 20 69 73 20 62 6f 75 6e 64 20 re.value.under.the.key.is.bound.
3bec0 74 6f 20 74 68 65 20 64 65 72 69 76 65 64 0a 20 20 20 20 20 76 61 72 69 61 62 6c 65 20 77 69 74 to.the.derived......variable.wit
3bee0 68 6f 75 74 20 61 6e 79 20 66 75 72 74 68 65 72 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2e 0a hout.any.further.destructuring..
3bf00 0a 20 20 20 20 20 54 68 69 73 20 69 73 20 70 6f 73 73 69 62 6c 65 20 6f 6e 6c 79 20 77 68 65 6e ......This.is.possible.only.when
3bf20 20 74 68 65 20 66 6f 72 6d 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 6b 65 79 20 69 73 20 6e .the.form.following.the.key.is.n
3bf40 6f 74 20 61 0a 20 20 20 20 20 76 61 6c 69 64 20 70 61 74 74 65 72 6e 20 28 69 2e 65 2e 20 20 6e ot.a......valid.pattern.(i.e...n
3bf60 6f 74 20 61 20 73 79 6d 62 6f 6c 2c 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 6f 72 20 61 20 76 65 ot.a.symbol,.a.cons.cell.or.a.ve
3bf80 63 74 6f 72 29 2e 0a 20 20 20 20 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 6d 61 74 63 68 69 ctor).......Otherwise.the.matchi
3bfa0 6e 67 20 70 72 6f 63 65 65 64 73 20 61 73 20 75 73 75 61 6c 20 61 6e 64 20 69 6e 20 63 61 73 65 ng.proceeds.as.usual.and.in.case
3bfc0 20 6f 66 20 61 6e 20 69 6e 76 61 6c 69 64 0a 20 20 20 20 20 73 70 65 63 20 66 61 69 6c 73 20 77 .of.an.invalid......spec.fails.w
3bfe0 69 74 68 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 20 20 20 20 20 54 68 75 73 20 74 68 65 20 70 61 74 ith.an.error........Thus.the.pat
3c000 74 65 72 6e 73 20 61 72 65 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 3a terns.are.normalized.as.follows:
3c020 0a 0a 20 20 20 20 20 3b 3b 20 64 65 72 69 76 65 20 61 6c 6c 20 74 68 65 20 6d 69 73 73 69 6e 67 .......;;.derive.all.the.missing
3c040 20 70 61 74 74 65 72 6e 73 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 e2 80 99 62 61 72 20 22 62 .patterns.(&plist.:foo....bar."b
3c060 61 7a 22 29 20 3d 3e 0a 20 20 20 20 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 66 6f 6f 20 e2 80 az").=>......(&plist.:foo.foo...
3c080 99 62 61 72 20 62 61 72 20 22 62 61 7a 22 20 62 61 7a 29 0a 0a 20 20 20 20 20 3b 3b 20 77 65 20 .bar.bar."baz".baz).......;;.we.
3c0a0 63 61 6e 20 73 70 65 63 69 66 79 20 73 6f 6d 65 20 62 75 74 20 6e 6f 74 20 6f 74 68 65 72 73 20 can.specify.some.but.not.others.
3c0c0 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 e2 80 99 62 61 72 0a 20 20 20 20 20 65 78 70 6c 69 63 69 (&plist.:foo....bar......explici
3c0e0 74 2d 62 61 72 29 20 3d 3e 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 66 6f 6f 20 e2 80 99 62 61 t-bar).=>.(&plist.:foo.foo....ba
3c100 72 20 65 78 70 6c 69 63 69 74 2d 62 61 72 29 0a 0a 20 20 20 20 20 3b 3b 20 6e 6f 74 68 69 6e 67 r.explicit-bar).......;;.nothing
3c120 20 68 61 70 70 65 6e 73 2c 20 77 65 20 73 74 6f 72 65 20 3a 66 6f 6f 20 69 6e 20 78 20 28 26 70 .happens,.we.store.:foo.in.x.(&p
3c140 6c 69 73 74 20 3a 66 6f 6f 20 78 29 20 3d 3e 20 28 26 70 6c 69 73 74 0a 20 20 20 20 20 3a 66 6f list.:foo.x).=>.(&plist......:fo
3c160 6f 20 78 29 0a 0a 20 20 20 20 20 3b 3b 20 6e 6f 74 68 69 6e 67 20 68 61 70 70 65 6e 73 2c 20 77 o.x).......;;.nothing.happens,.w
3c180 65 20 6d 61 74 63 68 20 72 65 63 75 72 73 69 76 65 6c 79 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f e.match.recursively.(&plist.:foo
3c1a0 20 28 61 20 62 20 63 29 29 20 3d 3e 0a 20 20 20 20 20 28 26 70 6c 69 73 74 20 3a 66 6f 6f 20 28 .(a.b.c)).=>......(&plist.:foo.(
3c1c0 61 20 62 20 63 29 29 0a 0a 20 20 20 20 20 59 6f 75 20 63 61 6e 20 6e 61 6d 65 20 74 68 65 20 73 a.b.c)).......You.can.name.the.s
3c1e0 6f 75 72 63 65 20 75 73 69 6e 67 20 74 68 65 20 73 79 6e 74 61 78 20 53 59 4d 42 4f 4c 20 26 61 ource.using.the.syntax.SYMBOL.&a
3c200 73 20 50 41 54 54 45 52 4e 2e 20 20 54 68 69 73 0a 20 20 20 20 20 73 79 6e 74 61 78 20 77 6f 72 s.PATTERN...This......syntax.wor
3c220 6b 73 20 77 69 74 68 20 6c 69 73 74 73 20 28 70 72 6f 70 65 72 20 6f 72 20 69 6d 70 72 6f 70 65 ks.with.lists.(proper.or.imprope
3c240 72 29 2c 20 76 65 63 74 6f 72 73 20 61 6e 64 20 61 6c 6c 20 74 79 70 65 73 0a 20 20 20 20 20 6f r),.vectors.and.all.types......o
3c260 66 20 6d 61 70 73 2e 0a 0a 20 20 20 20 20 28 6c 69 73 74 20 26 61 73 20 61 20 62 20 63 29 20 28 f.maps........(list.&as.a.b.c).(
3c280 6c 69 73 74 20 31 20 32 20 33 29 0a 0a 20 20 20 20 20 62 69 6e 64 73 20 41 20 74 6f 20 31 2c 20 list.1.2.3).......binds.A.to.1,.
3c2a0 42 20 74 6f 20 32 2c 20 43 20 74 6f 20 33 20 61 6e 64 20 4c 49 53 54 20 74 6f 20 28 31 20 32 20 B.to.2,.C.to.3.and.LIST.to.(1.2.
3c2c0 33 29 2e 0a 0a 20 20 20 20 20 53 69 6d 69 6c 61 72 6c 79 3a 0a 0a 20 20 20 20 20 28 62 6f 75 6e 3)........Similarly:.......(boun
3c2e0 64 73 20 26 61 73 20 62 65 67 20 2e 20 20 65 6e 64 29 20 28 63 6f 6e 73 20 31 20 32 29 0a 0a 20 ds.&as.beg....end).(cons.1.2)...
3c300 20 20 20 20 62 69 6e 64 73 20 42 45 47 20 74 6f 20 31 2c 20 45 4e 44 20 74 6f 20 32 20 61 6e 64 ....binds.BEG.to.1,.END.to.2.and
3c320 20 42 4f 55 4e 44 53 20 74 6f 20 28 31 20 2e 20 20 32 29 2e 0a 0a 20 20 20 20 20 28 69 74 65 6d .BOUNDS.to.(1....2)........(item
3c340 73 20 26 61 73 20 66 69 72 73 74 20 2e 20 20 72 65 73 74 29 20 28 6c 69 73 74 20 31 20 32 20 33 s.&as.first....rest).(list.1.2.3
3c360 29 0a 0a 20 20 20 20 20 62 69 6e 64 73 20 46 49 52 53 54 20 74 6f 20 31 2c 20 52 45 53 54 20 74 ).......binds.FIRST.to.1,.REST.t
3c380 6f 20 28 32 20 33 29 20 61 6e 64 20 49 54 45 4d 53 20 74 6f 20 28 31 20 32 20 33 29 0a 0a 20 20 o.(2.3).and.ITEMS.to.(1.2.3)....
3c3a0 20 20 20 5b 76 65 63 74 20 26 61 73 20 5f 20 62 20 63 5d 20 5b 31 20 32 20 33 5d 0a 0a 20 20 20 ...[vect.&as._.b.c].[1.2.3].....
3c3c0 20 20 62 69 6e 64 73 20 42 20 74 6f 20 32 2c 20 43 20 74 6f 20 33 20 61 6e 64 20 56 45 43 54 20 ..binds.B.to.2,.C.to.3.and.VECT.
3c3e0 74 6f 20 5b 31 20 32 20 33 5d 20 28 5f 20 61 76 6f 69 64 73 20 62 69 6e 64 69 6e 67 20 61 73 0a to.[1.2.3].(_.avoids.binding.as.
3c400 20 20 20 20 20 75 73 75 61 6c 29 2e 0a 0a 20 20 20 20 20 28 70 6c 69 73 74 20 26 61 73 20 26 70 .....usual)........(plist.&as.&p
3c420 6c 69 73 74 20 3a 62 20 62 29 20 28 6c 69 73 74 20 3a 61 20 31 20 3a 62 20 32 20 3a 63 20 33 29 list.:b.b).(list.:a.1.:b.2.:c.3)
3c440 0a 0a 20 20 20 20 20 62 69 6e 64 73 20 42 20 74 6f 20 32 20 61 6e 64 20 50 4c 49 53 54 20 74 6f .......binds.B.to.2.and.PLIST.to
3c460 20 28 3a 61 20 31 20 3a 62 20 32 20 3a 63 20 33 29 2e 20 20 53 61 6d 65 20 66 6f 72 20 26 61 6c .(:a.1.:b.2.:c.3)...Same.for.&al
3c480 69 73 74 20 61 6e 64 0a 20 20 20 20 20 26 68 61 73 68 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 69 ist.and......&hash........This.i
3c4a0 73 20 65 73 70 65 63 69 61 6c 6c 79 20 75 73 65 66 75 6c 20 77 68 65 6e 20 77 65 20 77 61 6e 74 s.especially.useful.when.we.want
3c4c0 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 0a 20 20 20 20 .to.capture.the.result.of.a.....
3c4e0 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 61 6e 64 20 64 65 73 74 72 75 63 74 75 72 65 20 61 74 20 .computation.and.destructure.at.
3c500 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 20 20 43 6f 6e 73 69 64 65 72 20 74 68 65 20 66 6f 72 the.same.time...Consider.the.for
3c520 6d 0a 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 2d 72 65 74 75 72 6e 69 6e 67 2d 63 6f 6d 70 6c m......(function-returning-compl
3c540 65 78 2d 73 74 72 75 63 74 75 72 65 29 20 72 65 74 75 72 6e 69 6e 67 20 61 20 6c 69 73 74 20 6f ex-structure).returning.a.list.o
3c560 66 20 74 77 6f 0a 20 20 20 20 20 76 65 63 74 6f 72 73 20 77 69 74 68 20 74 77 6f 20 69 74 65 6d f.two......vectors.with.two.item
3c580 73 20 65 61 63 68 2e 20 20 57 65 20 77 61 6e 74 20 74 6f 20 63 61 70 74 75 72 65 20 74 68 69 73 s.each...We.want.to.capture.this
3c5a0 20 65 6e 74 69 72 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 61 6e 64 20 70 61 73 73 20 69 74 20 .entire.result......and.pass.it.
3c5c0 74 6f 20 61 6e 6f 74 68 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 2c 20 62 75 74 20 61 74 20 74 to.another.computation,.but.at.t
3c5e0 68 65 20 73 61 6d 65 20 74 69 6d 65 20 77 65 20 77 61 6e 74 20 74 6f 0a 20 20 20 20 20 67 65 74 he.same.time.we.want.to......get
3c600 20 74 68 65 20 73 65 63 6f 6e 64 20 69 74 65 6d 20 66 72 6f 6d 20 65 61 63 68 20 76 65 63 74 6f .the.second.item.from.each.vecto
3c620 72 2e 20 20 57 65 20 63 61 6e 20 61 63 68 69 65 76 65 20 69 74 20 77 69 74 68 0a 20 20 20 20 20 r...We.can.achieve.it.with......
3c640 70 61 74 74 65 72 6e 0a 0a 20 20 20 20 20 28 72 65 73 75 6c 74 20 26 61 73 20 5b 5f 20 61 5d 20 pattern.......(result.&as.[_.a].
3c660 5b 5f 20 62 5d 29 20 28 66 75 6e 63 74 69 6f 6e 2d 72 65 74 75 72 6e 69 6e 67 2d 63 6f 6d 70 6c [_.b]).(function-returning-compl
3c680 65 78 2d 73 74 72 75 63 74 75 72 65 29 0a 0a 20 20 20 20 20 4e 6f 74 65 3a 20 43 6c 6f 6a 75 72 ex-structure).......Note:.Clojur
3c6a0 65 20 70 72 6f 67 72 61 6d 6d 65 72 73 20 6d 61 79 20 6b 6e 6f 77 20 74 68 69 73 20 66 65 61 74 e.programmers.may.know.this.feat
3c6c0 75 72 65 20 61 73 20 74 68 65 20 22 3a 61 73 0a 20 20 20 20 20 62 69 6e 64 69 6e 67 22 2e 20 20 ure.as.the.":as......binding"...
3c6e0 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 69 73 20 74 68 61 74 20 77 65 20 70 75 74 20 74 68 The.difference.is.that.we.put.th
3c700 65 20 26 61 73 20 61 74 20 74 68 65 20 66 72 6f 6e 74 0a 20 20 20 20 20 62 65 63 61 75 73 65 20 e.&as.at.the.front......because.
3c720 77 65 20 6e 65 65 64 20 74 6f 20 73 75 70 70 6f 72 74 20 69 6d 70 72 6f 70 65 72 20 6c 69 73 74 we.need.to.support.improper.list
3c740 20 62 69 6e 64 69 6e 67 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 28 28 5b 61 20 .binding.............(-let.(([a.
3c760 28 62 20 63 29 20 64 5d 20 5b 31 20 28 32 20 33 29 20 34 5d 29 29 20 28 6c 69 73 74 20 61 20 62 (b.c).d].[1.(2.3).4])).(list.a.b
3c780 20 63 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 .c.d))...................(1.2.3.
3c7a0 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 61 20 62 20 63 20 2e 20 64 29 20 4)...........(-let.[(a.b.c...d).
3c7c0 28 6c 69 73 74 20 31 20 32 20 33 20 34 20 35 20 36 29 5d 20 28 6c 69 73 74 20 61 20 62 20 63 20 (list.1.2.3.4.5.6)].(list.a.b.c.
3c7e0 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 28 34 20 d))...................(1.2.3.(4.
3c800 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 20 5b 28 26 70 6c 69 73 74 20 3a 5.6))...........(-let.[(&plist.:
3c820 66 6f 6f 20 66 6f 6f 20 3a 62 61 72 20 62 61 72 29 20 28 6c 69 73 74 20 3a 62 61 7a 20 33 20 3a foo.foo.:bar.bar).(list.:baz.3.:
3c840 66 6f 6f 20 31 20 3a 71 75 78 20 34 20 3a 62 61 72 20 32 29 5d 20 28 6c 69 73 74 20 66 6f 6f 20 foo.1.:qux.4.:bar.2)].(list.foo.
3c860 62 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 29 0a 0a 20 bar))...................(1.2)...
3c880 2d 2d 20 4d 61 63 72 6f 3a 20 2d 6c 65 74 2a 20 28 76 61 72 6c 69 73 74 20 26 72 65 73 74 20 62 --.Macro:.-let*.(varlist.&rest.b
3c8a0 6f 64 79 29 0a 20 20 20 20 20 42 69 6e 64 20 76 61 72 69 61 62 6c 65 73 20 61 63 63 6f 72 64 69 ody)......Bind.variables.accordi
3c8c0 6e 67 20 74 6f 20 56 41 52 4c 49 53 54 20 74 68 65 6e 20 65 76 61 6c 20 42 4f 44 59 2e 0a 0a 20 ng.to.VARLIST.then.eval.BODY....
3c8e0 20 20 20 20 56 41 52 4c 49 53 54 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 20 6f ....VARLIST.is.a.list.of.lists.o
3c900 66 20 74 68 65 20 66 6f 72 6d 20 28 50 41 54 54 45 52 4e 20 53 4f 55 52 43 45 29 2e 20 20 45 61 f.the.form.(PATTERN.SOURCE)...Ea
3c920 63 68 0a 20 20 20 20 20 50 41 54 54 45 52 4e 20 69 73 20 6d 61 74 63 68 65 64 20 61 67 61 69 6e ch......PATTERN.is.matched.again
3c940 73 74 20 74 68 65 20 53 4f 55 52 43 45 20 73 74 72 75 63 74 75 72 61 6c 6c 79 2e 20 20 53 4f 55 st.the.SOURCE.structurally...SOU
3c960 52 43 45 20 69 73 20 6f 6e 6c 79 0a 20 20 20 20 20 65 76 61 6c 75 61 74 65 64 20 6f 6e 63 65 20 RCE.is.only......evaluated.once.
3c980 66 6f 72 20 65 61 63 68 20 50 41 54 54 45 52 4e 2e 0a 0a 20 20 20 20 20 45 61 63 68 20 53 4f 55 for.each.PATTERN........Each.SOU
3c9a0 52 43 45 20 63 61 6e 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 61 6c 72 RCE.can.refer.to.the.symbols.alr
3c9c0 65 61 64 79 20 62 6f 75 6e 64 20 62 79 20 74 68 69 73 20 56 41 52 4c 49 53 54 2e 0a 20 20 20 20 eady.bound.by.this.VARLIST......
3c9e0 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 .This.is.useful.if.you.want.to.d
3ca00 65 73 74 72 75 63 74 75 72 65 20 53 4f 55 52 43 45 20 72 65 63 75 72 73 69 76 65 6c 79 20 62 75 estructure.SOURCE.recursively.bu
3ca20 74 0a 20 20 20 20 20 61 6c 73 6f 20 77 61 6e 74 20 74 6f 20 6e 61 6d 65 20 74 68 65 20 69 6e 74 t......also.want.to.name.the.int
3ca40 65 72 6d 65 64 69 61 74 65 20 73 74 72 75 63 74 75 72 65 73 2e 0a 0a 20 20 20 20 20 53 65 65 20 ermediate.structures........See.
3ca60 e2 80 98 2d 6c 65 74 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6c 65 74 3a 3a 29 20 66 6f 72 20 74 68 ...-let....(*note.-let::).for.th
3ca80 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 70 61 74 74 65 72 6e 73 2e e.list.of.all.possible.patterns.
3caa0 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 28 61 20 2e 20 62 29 20 28 63 6f ............(-let*.(((a...b).(co
3cac0 6e 73 20 31 20 32 29 29 20 28 28 63 20 2e 20 64 29 20 28 63 6f 6e 73 20 33 20 34 29 29 29 20 28 ns.1.2)).((c...d).(cons.3.4))).(
3cae0 6c 69 73 74 20 61 20 62 20 63 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 list.a.b.c.d))..................
3cb00 20 28 31 20 32 20 33 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 28 61 .(1.2.3.4)...........(-let*.(((a
3cb20 20 2e 20 62 29 20 28 63 6f 6e 73 20 31 20 28 63 6f 6e 73 20 32 20 33 29 29 29 20 28 28 63 20 2e ...b).(cons.1.(cons.2.3))).((c..
3cb40 20 64 29 20 62 29 29 20 28 6c 69 73 74 20 61 20 62 20 63 20 64 29 29 0a 20 20 20 20 20 20 20 20 .d).b)).(list.a.b.c.d)).........
3cb60 20 20 20 20 20 20 e2 87 92 20 28 31 20 28 32 20 2e 20 33 29 20 32 20 33 29 0a 20 20 20 20 20 20 ..........(1.(2...3).2.3).......
3cb80 20 20 20 20 28 2d 6c 65 74 2a 20 28 28 28 26 61 6c 69 73 74 20 22 66 6f 6f 22 20 66 6f 6f 20 22 ....(-let*.(((&alist."foo".foo."
3cba0 62 61 72 22 20 62 61 72 29 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 22 66 6f 6f 22 20 31 29 20 28 bar".bar).(list.(cons."foo".1).(
3cbc0 63 6f 6e 73 20 22 62 61 72 22 20 28 6c 69 73 74 20 27 61 20 27 62 20 27 63 29 29 29 29 20 28 28 cons."bar".(list.'a.'b.'c)))).((
3cbe0 61 20 62 20 63 29 20 62 61 72 29 29 20 28 6c 69 73 74 20 66 6f 6f 20 61 20 62 20 63 20 62 61 72 a.b.c).bar)).(list.foo.a.b.c.bar
3cc00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 61 20 62 20 63 20 28 61 ))...................(1.a.b.c.(a
3cc20 20 62 20 63 29 29 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 6c 61 6d 62 64 61 20 28 6d 61 74 63 .b.c))...--.Macro:.-lambda.(matc
3cc40 68 2d 66 6f 72 6d 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 h-form.&rest.body)......Return.a
3cc60 20 6c 61 6d 62 64 61 20 77 68 69 63 68 20 64 65 73 74 72 75 63 74 75 72 65 73 20 69 74 73 20 69 .lambda.which.destructures.its.i
3cc80 6e 70 75 74 20 61 73 20 4d 41 54 43 48 2d 46 4f 52 4d 20 61 6e 64 0a 20 20 20 20 20 65 78 65 63 nput.as.MATCH-FORM.and......exec
3cca0 75 74 65 73 20 42 4f 44 59 2e 0a 0a 20 20 20 20 20 4e 6f 74 65 20 74 68 61 74 20 79 6f 75 20 68 utes.BODY........Note.that.you.h
3ccc0 61 76 65 20 74 6f 20 65 6e 63 6c 6f 73 65 20 74 68 65 20 4d 41 54 43 48 2d 46 4f 52 4d 20 69 6e ave.to.enclose.the.MATCH-FORM.in
3cce0 20 61 20 70 61 69 72 20 6f 66 20 70 61 72 65 6e 73 2c 0a 20 20 20 20 20 73 75 63 68 20 74 68 61 .a.pair.of.parens,......such.tha
3cd00 74 3a 0a 0a 20 20 20 20 20 28 2d 6c 61 6d 62 64 61 20 28 78 29 20 62 6f 64 79 29 20 28 2d 6c 61 t:.......(-lambda.(x).body).(-la
3cd20 6d 62 64 61 20 28 78 20 79 20 2e 2e 2e 29 20 62 6f 64 79 29 0a 0a 20 20 20 20 20 68 61 73 20 74 mbda.(x.y....).body).......has.t
3cd40 68 65 20 75 73 75 61 6c 20 73 65 6d 61 6e 74 69 63 73 20 6f 66 20 e2 80 98 6c 61 6d 62 64 61 e2 he.usual.semantics.of....lambda.
3cd60 80 99 2e 20 20 46 75 72 74 68 65 72 6d 6f 72 65 2c 20 74 68 65 73 65 20 67 65 74 0a 20 20 20 20 .....Furthermore,.these.get.....
3cd80 20 74 72 61 6e 73 6c 61 74 65 64 20 69 6e 74 6f 20 6e 6f 72 6d 61 6c 20 e2 80 98 6c 61 6d 62 64 .translated.into.normal....lambd
3cda0 61 e2 80 99 2c 20 73 6f 20 74 68 65 72 65 20 69 73 20 6e 6f 20 70 65 72 66 6f 72 6d 61 6e 63 65 a...,.so.there.is.no.performance
3cdc0 0a 20 20 20 20 20 70 65 6e 61 6c 74 79 2e 0a 0a 20 20 20 20 20 53 65 65 20 e2 80 98 2d 6c 65 74 ......penalty........See....-let
3cde0 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6c 65 74 3a 3a 29 20 66 6f 72 20 61 20 64 65 73 63 72 69 70 ....(*note.-let::).for.a.descrip
3ce00 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 0a 20 20 20 20 20 6d tion.of.the.destructuring......m
3ce20 65 63 68 61 6e 69 73 6d 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d echanism.............(-map.(-lam
3ce40 62 64 61 20 28 28 78 20 79 29 29 20 28 2b 20 78 20 79 29 29 20 27 28 28 31 20 32 29 20 28 33 20 bda.((x.y)).(+.x.y)).'((1.2).(3.
3ce60 34 29 20 28 35 20 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 4).(5.6)))...................(3.
3ce80 37 20 31 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 6c 61 6d 62 64 61 20 28 7.11)...........(-map.(-lambda.(
3cea0 5b 78 20 79 5d 29 20 28 2b 20 78 20 79 29 29 20 27 28 5b 31 20 32 5d 20 5b 33 20 34 5d 20 5b 35 [x.y]).(+.x.y)).'([1.2].[3.4].[5
3cec0 20 36 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 37 20 31 31 29 .6]))...................(3.7.11)
3cee0 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 6c 61 6d 62 64 61 20 28 28 5f ...........(funcall.(-lambda.((_
3cf00 20 2e 20 61 29 20 28 5f 20 2e 20 62 29 29 20 28 2d 63 6f 6e 63 61 74 20 61 20 62 29 29 20 27 28 ...a).(_...b)).(-concat.a.b)).'(
3cf20 31 20 32 20 33 29 20 27 28 34 20 35 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 1.2.3).'(4.5.6))................
3cf40 87 92 20 28 32 20 33 20 35 20 36 29 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 73 65 74 71 20 28 ...(2.3.5.6)...--.Macro:.-setq.(
3cf60 5b 6d 61 74 63 68 2d 66 6f 72 6d 20 76 61 6c 5d 20 2e 2e 2e 29 0a 20 20 20 20 20 42 69 6e 64 20 [match-form.val]....)......Bind.
3cf80 65 61 63 68 20 4d 41 54 43 48 2d 46 4f 52 4d 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 each.MATCH-FORM.to.the.value.of.
3cfa0 69 74 73 20 56 41 4c 2e 0a 0a 20 20 20 20 20 4d 41 54 43 48 2d 46 4f 52 4d 20 64 65 73 74 72 75 its.VAL........MATCH-FORM.destru
3cfc0 63 74 75 72 69 6e 67 20 69 73 20 64 6f 6e 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 cturing.is.done.according.to.the
3cfe0 20 72 75 6c 65 73 20 6f 66 20 e2 80 98 2d 6c 65 74 e2 80 99 0a 20 20 20 20 20 28 2a 6e 6f 74 65 .rules.of....-let.........(*note
3d000 20 2d 6c 65 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 6d 61 63 72 6f 20 61 6c 6c 6f 77 .-let::)........This.macro.allow
3d020 73 20 79 6f 75 20 74 6f 20 62 69 6e 64 20 6d 75 6c 74 69 70 6c 65 20 76 61 72 69 61 62 6c 65 73 s.you.to.bind.multiple.variables
3d040 20 62 79 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 0a 20 20 20 20 20 74 68 65 20 76 61 6c 75 65 .by.destructuring......the.value
3d060 2c 20 73 6f 20 66 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 20 20 20 20 28 2d 73 65 74 71 20 28 ,.so.for.example:.......(-setq.(
3d080 61 20 62 29 20 78 20 28 26 70 6c 69 73 74 20 3a 63 20 63 29 20 70 6c 69 73 74 29 0a 0a 20 20 20 a.b).x.(&plist.:c.c).plist).....
3d0a0 20 20 65 78 70 61 6e 64 73 20 72 6f 75 67 68 6c 79 20 73 70 65 61 6b 69 6e 67 20 74 6f 20 74 68 ..expands.roughly.speaking.to.th
3d0c0 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 65 0a 0a 20 20 20 20 20 28 73 65 74 71 20 61 20 28 e.following.code.......(setq.a.(
3d0e0 63 61 72 20 78 29 20 62 20 28 63 61 64 72 20 78 29 20 63 20 28 70 6c 69 73 74 2d 67 65 74 20 70 car.x).b.(cadr.x).c.(plist-get.p
3d100 6c 69 73 74 20 3a 63 29 29 0a 0a 20 20 20 20 20 43 61 72 65 20 69 73 20 74 61 6b 65 6e 20 74 6f list.:c)).......Care.is.taken.to
3d120 20 6f 6e 6c 79 20 65 76 61 6c 75 61 74 65 20 65 61 63 68 20 56 41 4c 20 6f 6e 63 65 20 73 6f 20 .only.evaluate.each.VAL.once.so.
3d140 74 68 61 74 20 69 6e 20 63 61 73 65 20 6f 66 0a 20 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 61 73 that.in.case.of......multiple.as
3d160 73 69 67 6e 6d 65 6e 74 73 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 63 61 75 73 65 20 75 6e 65 78 signments.it.does.not.cause.unex
3d180 70 65 63 74 65 64 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 pected.side.effects.............
3d1a0 28 6c 65 74 20 28 61 29 20 28 2d 73 65 74 71 20 61 20 31 29 20 61 29 0a 20 20 20 20 20 20 20 20 (let.(a).(-setq.a.1).a).........
3d1c0 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 61 20 62 29 ..........1...........(let.(a.b)
3d1e0 20 28 2d 73 65 74 71 20 28 61 20 62 29 20 28 6c 69 73 74 20 31 20 32 29 29 20 28 6c 69 73 74 20 .(-setq.(a.b).(list.1.2)).(list.
3d200 61 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 29 0a 20 20 a.b))...................(1.2)...
3d220 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 63 29 20 28 2d 73 65 74 71 20 28 26 70 6c 69 73 74 20 ........(let.(c).(-setq.(&plist.
3d240 3a 63 20 63 29 20 28 6c 69 73 74 20 3a 63 20 22 63 22 29 29 20 63 29 0a 20 20 20 20 20 20 20 20 :c.c).(list.:c."c")).c).........
3d260 20 20 20 20 20 20 e2 87 92 20 22 63 22 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f .........."c"....File:.dash.info
3d280 2c 20 20 4e 6f 64 65 3a 20 53 69 64 65 20 65 66 66 65 63 74 73 2c 20 20 4e 65 78 74 3a 20 44 65 ,..Node:.Side.effects,..Next:.De
3d2a0 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 42 69 6e structive.operations,..Prev:.Bin
3d2c0 64 69 6e 67 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 31 34 20 53 69 64 65 20 ding,..Up:.Functions..2.14.Side.
3d2e0 65 66 66 65 63 74 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 6e 63 74 effects.=================..Funct
3d300 69 6f 6e 73 20 69 74 65 72 61 74 69 6e 67 20 6f 76 65 72 20 6c 69 73 74 73 20 66 6f 72 20 73 69 ions.iterating.over.lists.for.si
3d320 64 65 20 65 66 66 65 63 74 20 6f 6e 6c 79 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d de.effect.only....--.Function:.-
3d340 65 61 63 68 20 28 6c 69 73 74 20 66 6e 29 0a 20 20 20 20 20 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 each.(list.fn)......Call.FN.on.e
3d360 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 ach.element.of.LIST...Return....
3d380 6e 69 6c e2 80 99 3b 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a 20 20 20 20 20 69 6e nil...;.this.function.is......in
3d3a0 74 65 6e 64 65 64 20 66 6f 72 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 0a 20 20 20 20 20 49 tended.for.side.effects........I
3d3c0 74 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d ts.anaphoric.counterpart.is....-
3d3e0 2d 65 61 63 68 e2 80 99 2e 0a 0a 20 20 20 20 20 46 6f 72 20 61 63 63 65 73 73 20 74 6f 20 74 68 -each...........For.access.to.th
3d400 65 20 63 75 72 72 65 6e 74 20 65 6c 65 6d 65 6e 74 e2 80 99 73 20 69 6e 64 65 78 20 69 6e 20 4c e.current.element...s.index.in.L
3d420 49 53 54 2c 20 73 65 65 0a 20 20 20 20 20 e2 80 98 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 e2 80 IST,.see.........-each-indexed..
3d440 99 20 28 2a 6e 6f 74 65 20 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 3a 3a 29 2e 0a 0a 20 20 20 20 ..(*note.-each-indexed::).......
3d460 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 2d 65 61 63 68 20 27 28 31 20 32 20 33 29 20 28 ......(let.(l).(-each.'(1.2.3).(
3d480 6c 61 6d 62 64 61 20 28 78 29 20 28 70 75 73 68 20 78 20 6c 29 29 29 20 6c 29 0a 20 20 20 20 20 lambda.(x).(push.x.l))).l)......
3d4a0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 32 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 .............(3.2.1)...........(
3d4c0 6c 65 74 20 28 6c 29 20 28 2d 2d 65 61 63 68 20 27 28 31 20 32 20 33 29 20 28 70 75 73 68 20 69 let.(l).(--each.'(1.2.3).(push.i
3d4e0 74 20 6c 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 32 20 t.l)).l)...................(3.2.
3d500 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 65 61 63 68 20 27 28 31 20 32 20 33 29 20 23 27 69 1)...........(-each.'(1.2.3).#'i
3d520 64 65 6e 74 69 74 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a dentity)...................nil..
3d540 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 65 61 63 68 2d 77 68 69 6c 65 20 28 6c 69 73 74 20 .--.Function:.-each-while.(list.
3d560 70 72 65 64 20 66 6e 29 0a 20 20 20 20 20 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 63 68 20 49 54 pred.fn)......Call.FN.on.each.IT
3d580 45 4d 20 69 6e 20 4c 49 53 54 2c 20 77 68 69 6c 65 20 28 50 52 45 44 20 49 54 45 4d 29 20 69 73 EM.in.LIST,.while.(PRED.ITEM).is
3d5a0 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 20 20 4f 6e 63 65 0a 20 20 20 20 20 61 6e 20 49 54 .non-...nil......Once......an.IT
3d5c0 45 4d 20 69 73 20 72 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 74 EM.is.reached.for.which.PRED.ret
3d5e0 75 72 6e 73 20 e2 80 98 6e 69 6c e2 80 99 2c 20 46 4e 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 0a urns....nil...,.FN.is.no.longer.
3d600 20 20 20 20 20 63 61 6c 6c 65 64 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 3b 20 .....called...Return....nil...;.
3d620 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 73 69 this.function.is.intended.for.si
3d640 64 65 20 65 66 66 65 63 74 73 2e 0a 0a 20 20 20 20 20 49 74 73 20 61 6e 61 70 68 6f 72 69 63 20 de.effects........Its.anaphoric.
3d660 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 65 61 63 68 2d 77 68 69 6c 65 e2 80 counterpart.is....--each-while..
3d680 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 2d 65 61 63 68 2d 77 68 ..............(let.(l).(-each-wh
3d6a0 69 6c 65 20 27 28 32 20 34 20 35 20 36 29 20 23 27 65 76 65 6e 3f 20 28 6c 61 6d 62 64 61 20 28 ile.'(2.4.5.6).#'even?.(lambda.(
3d6c0 78 29 20 28 70 75 73 68 20 78 20 6c 29 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 x).(push.x.l))).l)..............
3d6e0 20 e2 87 92 20 28 34 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 2d .....(4.2)...........(let.(l).(-
3d700 2d 65 61 63 68 2d 77 68 69 6c 65 20 27 28 31 20 32 20 33 20 34 29 20 28 3c 20 69 74 20 33 29 20 -each-while.'(1.2.3.4).(<.it.3).
3d720 28 70 75 73 68 20 69 74 20 6c 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 (push.it.l)).l).................
3d740 92 20 28 32 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 20 30 29 29 20 28 ..(2.1)...........(let.((s.0)).(
3d760 2d 2d 65 61 63 68 2d 77 68 69 6c 65 20 27 28 31 20 33 20 34 20 35 29 20 28 3c 20 69 74 20 35 29 --each-while.'(1.3.4.5).(<.it.5)
3d780 20 28 73 65 74 71 20 73 20 28 2b 20 73 20 69 74 29 29 29 20 73 29 0a 20 20 20 20 20 20 20 20 20 .(setq.s.(+.s.it))).s)..........
3d7a0 20 20 20 20 20 e2 87 92 20 38 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 65 61 63 68 2d .........8...--.Function:.-each-
3d7c0 69 6e 64 65 78 65 64 20 28 6c 69 73 74 20 66 6e 29 0a 20 20 20 20 20 43 61 6c 6c 20 46 4e 20 6f indexed.(list.fn)......Call.FN.o
3d7e0 6e 20 65 61 63 68 20 69 6e 64 65 78 20 61 6e 64 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 n.each.index.and.element.of.LIST
3d800 2e 20 20 46 6f 72 20 65 61 63 68 20 49 54 45 4d 20 61 74 20 49 4e 44 45 58 0a 20 20 20 20 20 69 ...For.each.ITEM.at.INDEX......i
3d820 6e 20 4c 49 53 54 2c 20 63 61 6c 6c 20 28 66 75 6e 63 61 6c 6c 20 46 4e 20 49 4e 44 45 58 20 49 n.LIST,.call.(funcall.FN.INDEX.I
3d840 54 45 4d 29 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 3b 20 74 68 69 73 20 66 75 TEM)...Return....nil...;.this.fu
3d860 6e 63 74 69 6f 6e 0a 20 20 20 20 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 73 69 64 65 nction......is.intended.for.side
3d880 20 65 66 66 65 63 74 73 2e 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 6d 61 .effects........See.also:....-ma
3d8a0 70 2d 69 6e 64 65 78 65 64 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 6d 61 70 2d 69 6e 64 65 78 65 64 p-indexed....(*note.-map-indexed
3d8c0 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 2d 65 61 63 68 2d ::).............(let.(l).(-each-
3d8e0 69 6e 64 65 78 65 64 20 27 28 61 20 62 20 63 29 20 28 6c 61 6d 62 64 61 20 28 69 20 78 29 20 28 indexed.'(a.b.c).(lambda.(i.x).(
3d900 70 75 73 68 20 28 6c 69 73 74 20 78 20 69 29 20 6c 29 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 push.(list.x.i).l))).l).........
3d920 20 20 20 20 20 20 e2 87 92 20 28 28 63 20 32 29 20 28 62 20 31 29 20 28 61 20 30 29 29 0a 20 20 ..........((c.2).(b.1).(a.0))...
3d940 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 2d 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 ........(let.(l).(--each-indexed
3d960 20 27 28 61 20 62 20 63 29 20 28 70 75 73 68 20 28 6c 69 73 74 20 69 74 20 69 74 2d 69 6e 64 65 .'(a.b.c).(push.(list.it.it-inde
3d980 78 29 20 6c 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 63 20 x).l)).l)...................((c.
3d9a0 32 29 20 28 62 20 31 29 20 28 61 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 2).(b.1).(a.0))...........(let.(
3d9c0 6c 29 20 28 2d 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 20 28 29 20 28 70 75 73 68 20 69 74 20 6c l).(--each-indexed.().(push.it.l
3d9e0 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 0a 20 2d 2d 20 )).l)...................()...--.
3da00 46 75 6e 63 74 69 6f 6e 3a 20 2d 65 61 63 68 2d 72 20 28 6c 69 73 74 20 66 6e 29 0a 20 20 20 20 Function:.-each-r.(list.fn).....
3da20 20 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 4c 49 53 54 .Call.FN.on.each.element.of.LIST
3da40 20 69 6e 20 72 65 76 65 72 73 65 64 20 6f 72 64 65 72 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e .in.reversed.order...Return....n
3da60 69 6c e2 80 99 3b 0a 20 20 20 20 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 il...;......this.function.is.int
3da80 65 6e 64 65 64 20 66 6f 72 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 0a 20 20 20 20 20 49 74 ended.for.side.effects........It
3daa0 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d s.anaphoric.counterpart.is....--
3dac0 65 61 63 68 2d 72 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 each-r................(let.(l).(
3dae0 2d 65 61 63 68 2d 72 20 27 28 31 20 32 20 33 29 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 70 75 -each-r.'(1.2.3).(lambda.(x).(pu
3db00 73 68 20 78 20 6c 29 29 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 sh.x.l))).l)...................(
3db20 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 2d 2d 65 61 63 1.2.3)...........(let.(l).(--eac
3db40 68 2d 72 20 27 28 31 20 32 20 33 29 20 28 70 75 73 68 20 69 74 20 6c 29 29 20 6c 29 0a 20 20 20 h-r.'(1.2.3).(push.it.l)).l)....
3db60 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 29 0a 20 20 20 20 20 20 20 20 20 ...............(1.2.3)..........
3db80 20 28 2d 65 61 63 68 2d 72 20 27 28 31 20 32 20 33 29 20 23 27 69 64 65 6e 74 69 74 79 29 0a 20 .(-each-r.'(1.2.3).#'identity)..
3dba0 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 6e 69 6c 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 .................nil...--.Functi
3dbc0 6f 6e 3a 20 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 20 28 6c 69 73 74 20 70 72 65 64 20 66 6e 29 on:.-each-r-while.(list.pred.fn)
3dbe0 0a 20 20 20 20 20 43 61 6c 6c 20 46 4e 20 6f 6e 20 65 61 63 68 20 49 54 45 4d 20 69 6e 20 72 65 ......Call.FN.on.each.ITEM.in.re
3dc00 76 65 72 73 65 64 20 4c 49 53 54 2c 20 77 68 69 6c 65 20 28 50 52 45 44 20 49 54 45 4d 29 20 69 versed.LIST,.while.(PRED.ITEM).i
3dc20 73 0a 20 20 20 20 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 20 20 4f 6e 63 65 20 61 6e 20 49 s......non-...nil......Once.an.I
3dc40 54 45 4d 20 69 73 20 72 65 61 63 68 65 64 20 66 6f 72 20 77 68 69 63 68 20 50 52 45 44 20 72 65 TEM.is.reached.for.which.PRED.re
3dc60 74 75 72 6e 73 20 e2 80 98 6e 69 6c e2 80 99 2c 0a 20 20 20 20 20 46 4e 20 69 73 20 6e 6f 20 6c turns....nil...,......FN.is.no.l
3dc80 6f 6e 67 65 72 20 63 61 6c 6c 65 64 2e 20 20 52 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 3b onger.called...Return....nil...;
3dca0 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 69 6e 74 65 6e 64 65 64 0a 20 20 20 20 20 .this.function.is.intended......
3dcc0 66 6f 72 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 0a 0a 20 20 20 20 20 49 74 73 20 61 6e 61 70 for.side.effects........Its.anap
3dce0 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 2d 2d 65 61 63 68 2d 72 horic.counterpart.is....--each-r
3dd00 2d 77 68 69 6c 65 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 29 20 28 -while................(let.(l).(
3dd20 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 20 27 28 32 20 34 20 35 20 36 29 20 23 27 65 76 65 6e 3f -each-r-while.'(2.4.5.6).#'even?
3dd40 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 70 75 73 68 20 78 20 6c 29 29 29 20 6c 29 0a 20 20 20 .(lambda.(x).(push.x.l))).l)....
3dd60 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 36 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 ...............(6)...........(le
3dd80 74 20 28 6c 29 20 28 2d 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 20 27 28 31 20 32 20 33 20 34 29 t.(l).(--each-r-while.'(1.2.3.4)
3dda0 20 28 3e 3d 20 69 74 20 33 29 20 28 70 75 73 68 20 69 74 20 6c 29 29 20 6c 29 0a 20 20 20 20 20 .(>=.it.3).(push.it.l)).l)......
3ddc0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 .............(3.4)...........(le
3dde0 74 20 28 28 73 20 30 29 29 20 28 2d 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 20 27 28 31 20 32 20 t.((s.0)).(--each-r-while.'(1.2.
3de00 33 20 35 29 20 28 3e 20 69 74 20 31 29 20 28 73 65 74 71 20 73 20 28 2b 20 73 20 69 74 29 29 29 3.5).(>.it.1).(setq.s.(+.s.it)))
3de20 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 30 0a 0a 20 2d 2d 20 46 75 .s)...................10...--.Fu
3de40 6e 63 74 69 6f 6e 3a 20 2d 64 6f 74 69 6d 65 73 20 28 6e 75 6d 20 66 6e 29 0a 20 20 20 20 20 43 nction:.-dotimes.(num.fn)......C
3de60 61 6c 6c 20 46 4e 20 4e 55 4d 20 74 69 6d 65 73 2c 20 70 72 65 73 75 6d 61 62 6c 79 20 66 6f 72 all.FN.NUM.times,.presumably.for
3de80 20 73 69 64 65 20 65 66 66 65 63 74 73 2e 20 20 46 4e 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 .side.effects...FN.is.called.wit
3dea0 68 0a 20 20 20 20 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d 65 6e 74 20 6f 6e 20 73 75 63 63 h......a.single.argument.on.succ
3dec0 65 73 73 69 76 65 20 69 6e 74 65 67 65 72 73 20 72 75 6e 6e 69 6e 67 20 66 72 6f 6d 20 30 2c 20 essive.integers.running.from.0,.
3dee0 69 6e 63 6c 75 73 69 76 65 2c 0a 20 20 20 20 20 74 6f 20 4e 55 4d 2c 20 65 78 63 6c 75 73 69 76 inclusive,......to.NUM,.exclusiv
3df00 65 2e 20 20 46 4e 20 69 73 20 6e 6f 74 20 63 61 6c 6c 65 64 20 69 66 20 4e 55 4d 20 69 73 20 6c e...FN.is.not.called.if.NUM.is.l
3df20 65 73 73 20 74 68 61 6e 20 31 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e e2 ess.than.1........This.function.
3df40 80 99 73 20 61 6e 61 70 68 6f 72 69 63 20 63 6f 75 6e 74 65 72 70 61 72 74 20 69 73 20 e2 80 98 ..s.anaphoric.counterpart.is....
3df60 2d 2d 64 6f 74 69 6d 65 73 e2 80 99 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 73 --dotimes................(let.(s
3df80 29 20 28 2d 64 6f 74 69 6d 65 73 20 33 20 28 6c 61 6d 62 64 61 20 28 6e 29 20 28 70 75 73 68 20 ).(-dotimes.3.(lambda.(n).(push.
3dfa0 6e 20 73 29 29 29 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 31 n.s))).s)...................(2.1
3dfc0 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 73 29 20 28 2d 64 6f 74 69 6d 65 73 .0)...........(let.(s).(-dotimes
3dfe0 20 30 20 28 6c 61 6d 62 64 61 20 28 6e 29 20 28 70 75 73 68 20 6e 20 73 29 29 29 20 73 29 0a 20 .0.(lambda.(n).(push.n.s))).s)..
3e000 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c .................()...........(l
3e020 65 74 20 28 73 29 20 28 2d 2d 64 6f 74 69 6d 65 73 20 35 20 28 70 75 73 68 20 69 74 20 73 29 29 et.(s).(--dotimes.5.(push.it.s))
3e040 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 20 33 20 32 20 31 20 30 .s)...................(4.3.2.1.0
3e060 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 65 73 )....File:.dash.info,..Node:.Des
3e080 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 46 75 6e 63 tructive.operations,..Next:.Func
3e0a0 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2c 20 20 50 72 65 76 3a 20 53 69 64 65 20 65 66 tion.combinators,..Prev:.Side.ef
3e0c0 66 65 63 74 73 2c 20 20 55 70 3a 20 46 75 6e 63 74 69 6f 6e 73 0a 0a 32 2e 31 35 20 44 65 73 74 fects,..Up:.Functions..2.15.Dest
3e0e0 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ructive.operations.=============
3e100 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4d 61 63 72 6f 73 20 74 68 61 74 20 6d 6f 64 69 ==============..Macros.that.modi
3e120 66 79 20 76 61 72 69 61 62 6c 65 73 20 68 6f 6c 64 69 6e 67 20 6c 69 73 74 73 2e 0a 0a 20 2d 2d fy.variables.holding.lists....--
3e140 20 4d 61 63 72 6f 3a 20 21 63 6f 6e 73 20 28 63 61 72 20 63 64 72 29 0a 20 20 20 20 20 44 65 73 .Macro:.!cons.(car.cdr)......Des
3e160 74 72 75 63 74 69 76 65 3a 20 53 65 74 20 43 44 52 20 74 6f 20 74 68 65 20 63 6f 6e 73 20 6f 66 tructive:.Set.CDR.to.the.cons.of
3e180 20 43 41 52 20 61 6e 64 20 43 44 52 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c .CAR.and.CDR.............(let.(l
3e1a0 29 20 28 21 63 6f 6e 73 20 35 20 6c 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 ).(!cons.5.l).l)................
3e1c0 87 92 20 28 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 20 27 28 33 29 29 29 ...(5)...........(let.((l.'(3)))
3e1e0 20 28 21 63 6f 6e 73 20 35 20 6c 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 .(!cons.5.l).l).................
3e200 92 20 28 35 20 33 29 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 21 63 64 72 20 28 6c 69 73 74 29 0a ..(5.3)...--.Macro:.!cdr.(list).
3e220 20 20 20 20 20 44 65 73 74 72 75 63 74 69 76 65 3a 20 53 65 74 20 4c 49 53 54 20 74 6f 20 74 68 .....Destructive:.Set.LIST.to.th
3e240 65 20 63 64 72 20 6f 66 20 4c 49 53 54 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 e.cdr.of.LIST.............(let.(
3e260 28 6c 20 27 28 33 29 29 29 20 28 21 63 64 72 20 6c 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 (l.'(3))).(!cdr.l).l)...........
3e280 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 20 27 28 ........()...........(let.((l.'(
3e2a0 33 20 35 29 29 29 20 28 21 63 64 72 20 6c 29 20 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3.5))).(!cdr.l).l)..............
3e2c0 20 e2 87 92 20 28 35 29 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f .....(5)....File:.dash.info,..No
3e2e0 64 65 3a 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2c 20 20 50 72 65 76 3a de:.Function.combinators,..Prev:
3e300 20 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 2c 20 20 55 70 3a 20 46 75 .Destructive.operations,..Up:.Fu
3e320 6e 63 74 69 6f 6e 73 0a 0a 32 2e 31 36 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f nctions..2.16.Function.combinato
3e340 72 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 46 75 rs.=========================..Fu
3e360 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 6e 69 70 75 6c 61 74 65 20 61 6e 64 20 63 6f 6d 70 nctions.that.manipulate.and.comp
3e380 6f 73 65 20 6f 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 ose.other.functions....--.Functi
3e3a0 6f 6e 3a 20 2d 70 61 72 74 69 61 6c 20 28 66 75 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 on:.-partial.(fun.&rest.args)...
3e3c0 20 20 20 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 73 20 61 20 70 ...Return.a.function.that.is.a.p
3e3e0 61 72 74 69 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f 66 20 46 55 4e 20 74 6f 20 41 52 47 artial.application.of.FUN.to.ARG
3e400 53 2e 0a 20 20 20 20 20 41 52 47 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 69 S.......ARGS.is.a.list.of.the.fi
3e420 72 73 74 20 4e 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 61 73 73 20 74 6f 20 46 55 4e 2e 20 rst.N.arguments.to.pass.to.FUN..
3e440 20 54 68 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 69 73 20 61 20 6e 65 77 20 66 75 6e 63 74 69 .The.result......is.a.new.functi
3e460 6f 6e 20 77 68 69 63 68 20 64 6f 65 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 46 55 4e 2c 20 65 on.which.does.the.same.as.FUN,.e
3e480 78 63 65 70 74 20 74 68 61 74 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 20 4e 20 61 72 67 75 xcept.that.the.first......N.argu
3e4a0 6d 65 6e 74 73 20 61 72 65 20 66 69 78 65 64 20 61 74 20 74 68 65 20 76 61 6c 75 65 73 20 77 69 ments.are.fixed.at.the.values.wi
3e4c0 74 68 20 77 68 69 63 68 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 0a 20 20 20 20 20 th.which.this.function.was......
3e4e0 63 61 6c 6c 65 64 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 70 61 called.............(funcall.(-pa
3e500 72 74 69 61 6c 20 23 27 2b 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 rtial.#'+.5))...................
3e520 35 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 70 61 72 74 69 61 6c 20 23 5...........(funcall.(-partial.#
3e540 27 2d 20 35 29 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 32 0a 20 20 20 '-.5).3)...................2....
3e560 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 70 61 72 74 69 61 6c 20 23 27 2b 20 35 20 .......(funcall.(-partial.#'+.5.
3e580 32 29 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 30 0a 0a 20 2d 2d 20 2).3)...................10...--.
3e5a0 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 70 61 72 74 69 61 6c 20 28 66 6e 20 26 72 65 73 74 20 61 72 Function:.-rpartial.(fn.&rest.ar
3e5c0 67 73 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 gs)......Return.a.function.that.
3e5e0 69 73 20 61 20 70 61 72 74 69 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f 66 20 46 4e 20 74 is.a.partial.application.of.FN.t
3e600 6f 20 41 52 47 53 2e 0a 20 20 20 20 20 41 52 47 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 o.ARGS.......ARGS.is.a.list.of.t
3e620 68 65 20 6c 61 73 74 20 4e 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 61 73 73 20 74 6f 20 46 he.last.N.arguments.to.pass.to.F
3e640 4e 2e 20 20 54 68 65 20 72 65 73 75 6c 74 0a 20 20 20 20 20 69 73 20 61 20 6e 65 77 20 66 75 6e N...The.result......is.a.new.fun
3e660 63 74 69 6f 6e 20 77 68 69 63 68 20 64 6f 65 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 46 4e 2c ction.which.does.the.same.as.FN,
3e680 20 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65 20 6c 61 73 74 20 4e 0a 20 20 20 20 20 61 72 67 .except.that.the.last.N......arg
3e6a0 75 6d 65 6e 74 73 20 61 72 65 20 66 69 78 65 64 20 61 74 20 74 68 65 20 76 61 6c 75 65 73 20 77 uments.are.fixed.at.the.values.w
3e6c0 69 74 68 20 77 68 69 63 68 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 61 73 0a 20 20 20 20 ith.which.this.function.was.....
3e6e0 20 63 61 6c 6c 65 64 2e 20 20 54 68 69 73 20 69 73 20 6c 69 6b 65 20 e2 80 98 2d 70 61 72 74 69 .called...This.is.like....-parti
3e700 61 6c e2 80 99 20 28 2a 6e 6f 74 65 20 2d 70 61 72 74 69 61 6c 3a 3a 29 2c 20 65 78 63 65 70 74 al....(*note.-partial::),.except
3e720 20 74 68 65 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 66 69 78 65 64 20 73 74 .the......arguments.are.fixed.st
3e740 61 72 74 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 72 69 67 68 74 20 72 61 74 68 65 72 20 74 68 61 arting.from.the.right.rather.tha
3e760 6e 20 74 68 65 20 6c 65 66 74 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 n.the.left.............(funcall.
3e780 28 2d 72 70 61 72 74 69 61 6c 20 23 27 2d 20 35 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (-rpartial.#'-.5))..............
3e7a0 20 e2 87 92 20 2d 35 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 72 70 61 .....-5...........(funcall.(-rpa
3e7c0 72 74 69 61 6c 20 23 27 2d 20 35 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 rtial.#'-.5).8).................
3e7e0 92 20 33 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 72 70 61 72 74 69 61 ..3...........(funcall.(-rpartia
3e800 6c 20 23 27 2d 20 35 20 32 29 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 l.#'-.5.2).10)..................
3e820 20 33 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6a 75 78 74 20 28 26 72 65 73 74 20 66 .3...--.Function:.-juxt.(&rest.f
3e840 6e 73 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 ns)......Return.a.function.that.
3e860 69 73 20 74 68 65 20 6a 75 78 74 61 70 6f 73 69 74 69 6f 6e 20 6f 66 20 46 4e 53 2e 20 20 54 68 is.the.juxtaposition.of.FNS...Th
3e880 65 20 72 65 74 75 72 6e 65 64 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 e.returned......function.takes.a
3e8a0 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 41 52 47 53 2c 20 61 70 70 6c 69 65 .variable.number.of.ARGS,.applie
3e8c0 73 20 65 61 63 68 20 6f 66 20 46 4e 53 20 69 6e 0a 20 20 20 20 20 74 75 72 6e 20 74 6f 20 41 52 s.each.of.FNS.in......turn.to.AR
3e8e0 47 53 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 72 65 73 75 GS,.and.returns.the.list.of.resu
3e900 6c 74 73 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 6a 75 78 74 29 lts.............(funcall.(-juxt)
3e920 20 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 29 0a 20 20 20 20 20 .1.2)...................()......
3e940 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 6a 75 78 74 20 23 27 2b 20 23 27 2d 20 23 27 2a .....(funcall.(-juxt.#'+.#'-.#'*
3e960 20 23 27 2f 29 20 37 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 32 .#'/).7.5)...................(12
3e980 20 32 20 33 35 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 2d 6a 75 78 .2.35.1)...........(mapcar.(-jux
3e9a0 74 20 23 27 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 23 27 31 2b 29 20 27 28 31 20 32 t.#'number-to-string.#'1+).'(1.2
3e9c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 22 31 22 20 32 29 20 28 22 ))...................(("1".2).("
3e9e0 32 22 20 33 29 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 63 6f 6d 70 6f 73 65 20 28 2".3))...--.Function:.-compose.(
3ea00 26 72 65 73 74 20 66 6e 73 29 0a 20 20 20 20 20 43 6f 6d 70 6f 73 65 20 46 4e 53 20 69 6e 74 6f &rest.fns)......Compose.FNS.into
3ea20 20 61 20 73 69 6e 67 6c 65 20 63 6f 6d 70 6f 73 69 74 65 20 66 75 6e 63 74 69 6f 6e 2e 20 20 52 .a.single.composite.function...R
3ea40 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 74 68 61 74 20 74 61 6b 65 73 eturn.a.function......that.takes
3ea60 20 61 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 41 52 47 53 2c 20 61 70 70 6c .a.variable.number.of.ARGS,.appl
3ea80 69 65 73 20 74 68 65 20 6c 61 73 74 20 66 75 6e 63 74 69 6f 6e 20 69 6e 0a 20 20 20 20 20 46 4e ies.the.last.function.in......FN
3eaa0 53 20 74 6f 20 41 52 47 53 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 72 65 73 75 6c S.to.ARGS,.and.returns.the.resul
3eac0 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 65 61 63 68 20 72 65 6d 61 69 6e 69 6e 67 0a 20 20 20 20 t.of.calling.each.remaining.....
3eae0 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 70 .function.on.the.result.of.the.p
3eb00 72 65 76 69 6f 75 73 20 66 75 6e 63 74 69 6f 6e 2c 20 72 69 67 68 74 2d 74 6f 2d 6c 65 66 74 2e revious.function,.right-to-left.
3eb20 20 20 49 66 0a 20 20 20 20 20 6e 6f 20 46 4e 53 20 61 72 65 20 67 69 76 65 6e 2c 20 72 65 74 75 ..If......no.FNS.are.given,.retu
3eb40 72 6e 20 61 20 76 61 72 69 61 64 69 63 20 e2 80 98 69 64 65 6e 74 69 74 79 e2 80 99 20 66 75 6e rn.a.variadic....identity....fun
3eb60 63 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 63 6f 6d ction.............(funcall.(-com
3eb80 70 6f 73 65 20 23 27 2d 20 23 27 31 2b 20 23 27 2b 29 20 31 20 32 20 33 29 0a 20 20 20 20 20 20 pose.#'-.#'1+.#'+).1.2.3).......
3eba0 20 20 20 20 20 20 20 20 e2 87 92 20 2d 37 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c ............-7...........(funcal
3ebc0 6c 20 28 2d 63 6f 6d 70 6f 73 65 20 23 27 69 64 65 6e 74 69 74 79 20 23 27 31 2b 29 20 33 29 0a l.(-compose.#'identity.#'1+).3).
3ebe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 34 0a 20 20 20 20 20 20 20 20 20 20 28 6d ..................4...........(m
3ec00 61 70 63 61 72 20 28 2d 63 6f 6d 70 6f 73 65 20 23 27 6e 6f 74 20 23 27 73 74 72 69 6e 67 70 29 apcar.(-compose.#'not.#'stringp)
3ec20 20 27 28 6e 69 6c 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 74 .'(nil.""))...................(t
3ec40 20 6e 69 6c 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 61 70 70 6c 69 66 79 20 28 66 .nil)...--.Function:.-applify.(f
3ec60 6e 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 61 n)......Return.a.function.that.a
3ec80 70 70 6c 69 65 73 20 46 4e 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 6c 69 73 74 20 6f 66 20 61 72 pplies.FN.to.a.single.list.of.ar
3eca0 67 73 2e 20 20 54 68 69 73 0a 20 20 20 20 20 63 68 61 6e 67 65 73 20 74 68 65 20 61 72 69 74 79 gs...This......changes.the.arity
3ecc0 20 6f 66 20 46 4e 20 66 72 6f 6d 20 74 61 6b 69 6e 67 20 4e 20 64 69 73 74 69 6e 63 74 20 61 72 .of.FN.from.taking.N.distinct.ar
3ece0 67 75 6d 65 6e 74 73 20 74 6f 20 74 61 6b 69 6e 67 0a 20 20 20 20 20 31 20 61 72 67 75 6d 65 6e guments.to.taking......1.argumen
3ed00 74 20 77 68 69 63 68 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 4e 20 61 72 67 75 6d 65 6e 74 73 t.which.is.a.list.of.N.arguments
3ed20 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 61 70 70 6c 69 66 79 20 .............(funcall.(-applify.
3ed40 23 27 2b 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 30 0a 20 20 #'+).nil)...................0...
3ed60 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 2d 61 70 70 6c 69 66 79 20 23 27 2b 29 20 27 ........(mapcar.(-applify.#'+).'
3ed80 28 28 31 20 31 20 31 29 20 28 31 20 32 20 33 29 20 28 35 20 35 20 35 29 29 29 0a 20 20 20 20 20 ((1.1.1).(1.2.3).(5.5.5)))......
3eda0 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 33 20 36 20 31 35 29 0a 20 20 20 20 20 20 20 20 20 20 .............(3.6.15)...........
3edc0 28 66 75 6e 63 61 6c 6c 20 28 2d 61 70 70 6c 69 66 79 20 23 27 3c 29 20 27 28 33 20 36 29 29 0a (funcall.(-applify.#'<).'(3.6)).
3ede0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 74 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f ..................t...--.Functio
3ee00 6e 3a 20 2d 6f 6e 20 28 6f 70 20 74 72 61 6e 73 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 n:.-on.(op.trans)......Return.a.
3ee20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 61 6c 6c 73 20 54 52 41 4e 53 20 6f 6e 20 65 61 63 function.that.calls.TRANS.on.eac
3ee40 68 20 61 72 67 20 61 6e 64 20 4f 50 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 72 65 73 75 6c 74 73 h.arg.and.OP.on.the......results
3ee60 2e 20 20 54 68 65 20 72 65 74 75 72 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 61 ...The.returned.function.takes.a
3ee80 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 0a 20 20 20 20 20 61 72 67 75 6d 65 6e .variable.number.of......argumen
3eea0 74 73 2c 20 63 61 6c 6c 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 54 52 41 4e 53 20 6f 6e 20 ts,.calls.the.function.TRANS.on.
3eec0 65 61 63 68 20 6f 6e 65 20 69 6e 20 74 75 72 6e 2c 20 61 6e 64 20 74 68 65 6e 0a 20 20 20 20 20 each.one.in.turn,.and.then......
3eee0 70 61 73 73 65 73 20 74 68 6f 73 65 20 72 65 73 75 6c 74 73 20 61 73 20 74 68 65 20 6c 69 73 74 passes.those.results.as.the.list
3ef00 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 4f 50 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 .of.arguments.to.OP,.in.the.same
3ef20 0a 20 20 20 20 20 6f 72 64 65 72 2e 0a 0a 20 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 ......order........For.example,.
3ef40 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 69 72 73 20 6f 66 20 65 78 70 72 65 73 73 69 6f the.following.pairs.of.expressio
3ef60 6e 73 20 61 72 65 20 6d 6f 72 61 6c 6c 79 0a 20 20 20 20 20 65 71 75 69 76 61 6c 65 6e 74 3a 0a ns.are.morally......equivalent:.
3ef80 0a 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 6f 6e 20 23 e2 80 99 2b 20 23 e2 80 99 31 2b ......(funcall.(-on.#...+.#...1+
3efa0 29 20 31 20 32 20 33 29 20 3d 20 28 2b 20 28 31 2b 20 31 29 20 28 31 2b 20 32 29 20 28 31 2b 20 ).1.2.3).=.(+.(1+.1).(1+.2).(1+.
3efc0 33 29 29 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 20 20 28 2d 6f 6e 20 23 e2 80 99 2b 20 23 e2 80 3)).(funcall......(-on.#...+.#..
3efe0 99 31 2b 29 29 20 3d 20 28 2b 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d .1+)).=.(+)............(-sort.(-
3f000 6f 6e 20 23 27 3c 20 23 27 6c 65 6e 67 74 68 29 20 27 28 28 31 20 32 20 33 29 20 28 31 29 20 28 on.#'<.#'length).'((1.2.3).(1).(
3f020 31 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 29 20 28 31 1.2)))...................((1).(1
3f040 20 32 29 20 28 31 20 32 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 .2).(1.2.3))...........(funcall.
3f060 28 2d 6f 6e 20 23 27 6d 69 6e 20 23 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 29 20 22 (-on.#'min.#'string-to-number)."
3f080 32 32 22 20 22 32 22 20 22 31 22 20 22 31 32 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22"."2"."1"."12")...............
3f0a0 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 69 6e 2d 62 79 20 28 2d 6f 6e 20 23 27 ....1...........(-min-by.(-on.#'
3f0c0 3e 20 23 27 6c 65 6e 67 74 68 29 20 27 28 28 31 20 32 20 33 29 20 28 34 29 20 28 31 20 32 29 29 >.#'length).'((1.2.3).(4).(1.2))
3f0e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 29 0a 0a 20 2d 2d 20 46 75 6e )...................(4)...--.Fun
3f100 63 74 69 6f 6e 3a 20 2d 66 6c 69 70 20 28 66 6e 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 ction:.-flip.(fn)......Return.a.
3f120 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 61 6c 6c 73 20 46 4e 20 77 69 74 68 20 69 74 73 20 function.that.calls.FN.with.its.
3f140 61 72 67 75 6d 65 6e 74 73 20 72 65 76 65 72 73 65 64 2e 20 20 54 68 65 0a 20 20 20 20 20 72 65 arguments.reversed...The......re
3f160 74 75 72 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 74 68 65 20 73 61 6d 65 20 6e turned.function.takes.the.same.n
3f180 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 46 4e 2e 0a 0a 20 20 20 20 20 umber.of.arguments.as.FN........
3f1a0 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 77 6f 20 65 For.example,.the.following.two.e
3f1c0 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 6d 6f 72 61 6c 6c 79 20 65 71 75 69 76 61 6c 65 6e xpressions.are.morally.equivalen
3f1e0 74 3a 0a 0a 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 66 6c 69 70 20 23 e2 80 99 2d 29 20 t:.......(funcall.(-flip.#...-).
3f200 31 20 32 29 20 3d 20 28 2d 20 32 20 31 29 0a 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 1.2).=.(-.2.1).......See.also:..
3f220 80 98 2d 72 6f 74 61 74 65 2d 61 72 67 73 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 6f 74 61 74 65 ..-rotate-args....(*note.-rotate
3f240 2d 61 72 67 73 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d 66 6c -args::).............(-sort.(-fl
3f260 69 70 20 23 27 3c 29 20 27 28 34 20 33 20 36 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ip.#'<).'(4.3.6.1)).............
3f280 20 20 e2 87 92 20 28 36 20 34 20 33 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 ......(6.4.3.1)...........(funca
3f2a0 6c 6c 20 28 2d 66 6c 69 70 20 23 27 2d 29 20 33 20 32 20 31 20 31 30 29 0a 20 20 20 20 20 20 20 ll.(-flip.#'-).3.2.1.10)........
3f2c0 20 20 20 20 20 20 20 e2 87 92 20 34 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 ...........4...........(funcall.
3f2e0 28 2d 66 6c 69 70 20 23 27 31 2b 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 (-flip.#'1+).1).................
3f300 92 20 32 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 72 6f 74 61 74 65 2d 61 72 67 73 20 ..2...--.Function:.-rotate-args.
3f320 28 6e 20 66 6e 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 (n.fn)......Return.a.function.th
3f340 61 74 20 63 61 6c 6c 73 20 46 4e 20 77 69 74 68 20 61 72 67 73 20 72 6f 74 61 74 65 64 20 4e 20 at.calls.FN.with.args.rotated.N.
3f360 70 6c 61 63 65 73 20 74 6f 20 74 68 65 0a 20 20 20 20 20 72 69 67 68 74 2e 20 20 54 68 65 20 72 places.to.the......right...The.r
3f380 65 74 75 72 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 74 68 65 20 73 61 6d 65 20 eturned.function.takes.the.same.
3f3a0 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61 73 0a 20 20 20 20 20 46 4e 2c 20 number.of.arguments.as......FN,.
3f3c0 72 6f 74 61 74 65 73 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 4e 20 rotates.the.list.of.arguments.N.
3f3e0 70 6c 61 63 65 73 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 28 6c 65 66 74 20 69 66 20 4e 0a 20 places.to.the.right.(left.if.N..
3f400 20 20 20 20 69 73 20 6e 65 67 61 74 69 76 65 29 20 6a 75 73 74 20 6c 69 6b 65 20 e2 80 98 2d 72 ....is.negative).just.like....-r
3f420 6f 74 61 74 65 e2 80 99 20 28 2a 6e 6f 74 65 20 2d 72 6f 74 61 74 65 3a 3a 29 2c 20 61 6e 64 20 otate....(*note.-rotate::),.and.
3f440 61 70 70 6c 69 65 73 20 46 4e 0a 20 20 20 20 20 74 6f 20 74 68 65 20 72 65 73 75 6c 74 2e 0a 0a applies.FN......to.the.result...
3f460 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 66 6c 69 70 e2 80 99 20 28 2a 6e 6f 74 .....See.also:....-flip....(*not
3f480 65 20 2d 66 6c 69 70 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 e.-flip::).............(funcall.
3f4a0 28 2d 72 6f 74 61 74 65 2d 61 72 67 73 20 2d 31 20 23 27 6c 69 73 74 29 20 31 20 32 20 33 20 34 (-rotate-args.-1.#'list).1.2.3.4
3f4c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 33 20 34 20 31 29 0a 20 20 )...................(2.3.4.1)...
3f4e0 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 72 6f 74 61 74 65 2d 61 72 67 73 20 31 ........(funcall.(-rotate-args.1
3f500 20 23 27 2d 29 20 31 20 31 30 20 31 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 .#'-).1.10.100).................
3f520 92 20 38 39 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 72 6f 74 61 74 65 ..89...........(funcall.(-rotate
3f540 2d 61 72 67 73 20 32 20 23 27 6c 69 73 74 29 20 33 20 34 20 35 20 31 20 32 29 0a 20 20 20 20 20 -args.2.#'list).3.4.5.1.2)......
3f560 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 32 20 33 20 34 20 35 29 0a 0a 20 2d 2d 20 46 75 .............(1.2.3.4.5)...--.Fu
3f580 6e 63 74 69 6f 6e 3a 20 2d 63 6f 6e 73 74 20 28 63 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 nction:.-const.(c)......Return.a
3f5a0 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 43 20 69 67 6e 6f 72 69 6e .function.that.returns.C.ignorin
3f5c0 67 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 g.any.additional.arguments......
3f5e0 20 20 49 6e 20 74 79 70 65 73 3a 20 61 20 2d 3e 20 62 20 2d 3e 20 61 0a 0a 20 20 20 20 20 20 20 ..In.types:.a.->.b.->.a.........
3f600 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 63 6f 6e 73 74 20 32 29 20 31 20 33 20 22 66 6f 6f 22 ...(funcall.(-const.2).1.3."foo"
3f620 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 32 0a 20 20 20 20 20 20 20 20 20 20 )...................2...........
3f640 28 6d 61 70 63 61 72 20 28 2d 63 6f 6e 73 74 20 31 29 20 27 28 22 61 22 20 22 62 22 20 22 63 22 (mapcar.(-const.1).'("a"."b"."c"
3f660 20 22 64 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 31 20 31 20 ."d"))...................(1.1.1.
3f680 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 75 6d 20 28 6d 61 70 63 61 72 20 28 2d 63 6f 6e 1)...........(-sum.(mapcar.(-con
3f6a0 73 74 20 31 29 20 27 28 22 61 22 20 22 62 22 20 22 63 22 20 22 64 22 29 29 29 0a 20 20 20 20 20 st.1).'("a"."b"."c"."d")))......
3f6c0 20 20 20 20 20 20 20 20 20 e2 87 92 20 34 0a 0a 20 2d 2d 20 4d 61 63 72 6f 3a 20 2d 63 75 74 20 .............4...--.Macro:.-cut.
3f6e0 28 26 72 65 73 74 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 54 61 6b 65 20 6e 2d 61 72 79 20 66 (&rest.params)......Take.n-ary.f
3f700 75 6e 63 74 69 6f 6e 20 61 6e 64 20 6e 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 73 70 65 63 unction.and.n.arguments.and.spec
3f720 69 61 6c 69 7a 65 20 73 6f 6d 65 20 6f 66 20 74 68 65 6d 2e 0a 20 20 20 20 20 41 72 67 75 6d 65 ialize.some.of.them.......Argume
3f740 6e 74 73 20 64 65 6e 6f 74 65 64 20 62 79 20 3c 3e 20 77 69 6c 6c 20 62 65 20 6c 65 66 74 20 75 nts.denoted.by.<>.will.be.left.u
3f760 6e 73 70 65 63 69 61 6c 69 7a 65 64 2e 0a 0a 20 20 20 20 20 53 65 65 20 53 52 46 49 2d 32 36 20 nspecialized........See.SRFI-26.
3f780 66 6f 72 20 64 65 74 61 69 6c 65 64 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 for.detailed.description........
3f7a0 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 63 75 74 20 6c 69 73 74 20 31 20 3c 3e 20 33 20 .....(funcall.(-cut.list.1.<>.3.
3f7c0 3c 3e 20 35 29 20 32 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 31 20 <>.5).2.4)...................(1.
3f7e0 32 20 33 20 34 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 63 75 74 20 66 2.3.4.5)...........(-map.(-cut.f
3f800 75 6e 63 61 6c 6c 20 3c 3e 20 35 29 20 60 28 31 2b 20 31 2d 20 2c 28 6c 61 6d 62 64 61 20 28 78 uncall.<>.5).`(1+.1-.,(lambda.(x
3f820 29 20 28 2f 20 31 2e 30 20 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 ).(/.1.0.x))))..................
3f840 20 28 36 20 34 20 30 2e 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 6d 61 70 20 28 2d 63 75 74 .(6.4.0.2)...........(-map.(-cut
3f860 20 3c 3e 20 31 20 32 20 33 29 20 27 28 6c 69 73 74 20 76 65 63 74 6f 72 20 73 74 72 69 6e 67 29 .<>.1.2.3).'(list.vector.string)
3f880 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 28 31 20 32 20 33 29 20 5b 31 20 )...................((1.2.3).[1.
3f8a0 32 20 33 5d 20 22 5c 31 5c 32 5c 33 22 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6e 2.3]."\1\2\3")...--.Function:.-n
3f8c0 6f 74 20 28 70 72 65 64 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 70 72 65 64 69 63 61 74 ot.(pred)......Return.a.predicat
3f8e0 65 20 74 68 61 74 20 6e 65 67 61 74 65 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 50 52 45 e.that.negates.the.result.of.PRE
3f900 44 2e 20 20 54 68 65 20 72 65 74 75 72 6e 65 64 0a 20 20 20 20 20 70 72 65 64 69 63 61 74 65 20 D...The.returned......predicate.
3f920 70 61 73 73 65 73 20 69 74 73 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 50 52 45 44 2e 20 20 49 passes.its.arguments.to.PRED...I
3f940 66 20 50 52 45 44 20 72 65 74 75 72 6e 73 20 e2 80 98 6e 69 6c e2 80 99 2c 20 74 68 65 0a 20 20 f.PRED.returns....nil...,.the...
3f960 20 20 20 72 65 73 75 6c 74 20 69 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 3b 20 6f 74 68 65 ...result.is.non-...nil...;.othe
3f980 72 77 69 73 65 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a rwise.the.result.is....nil......
3f9a0 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 61 6e 64 66 6e e2 80 99 20 28 2a 6e 6f .....See.also:....-andfn....(*no
3f9c0 74 65 20 2d 61 6e 64 66 6e 3a 3a 29 20 61 6e 64 20 e2 80 98 2d 6f 72 66 6e e2 80 99 20 28 2a 6e te.-andfn::).and....-orfn....(*n
3f9e0 6f 74 65 20 2d 6f 72 66 6e 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c ote.-orfn::).............(funcal
3fa00 6c 20 28 2d 6e 6f 74 20 23 27 6e 75 6d 62 65 72 70 29 20 22 35 22 29 0a 20 20 20 20 20 20 20 20 l.(-not.#'numberp)."5").........
3fa20 20 20 20 20 20 20 e2 87 92 20 74 0a 20 20 20 20 20 20 20 20 20 20 28 2d 73 6f 72 74 20 28 2d 6e ..........t...........(-sort.(-n
3fa40 6f 74 20 23 27 3c 29 20 27 28 35 20 32 20 31 20 30 20 36 29 29 0a 20 20 20 20 20 20 20 20 20 20 ot.#'<).'(5.2.1.0.6))...........
3fa60 20 20 20 20 e2 87 92 20 28 36 20 35 20 32 20 31 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d ........(6.5.2.1.0)...........(-
3fa80 66 69 6c 74 65 72 20 28 2d 6e 6f 74 20 28 2d 70 61 72 74 69 61 6c 20 23 27 3c 20 34 29 29 20 27 filter.(-not.(-partial.#'<.4)).'
3faa0 28 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (1.2.3.4.5.6.7.8))..............
3fac0 20 e2 87 92 20 28 31 20 32 20 33 20 34 29 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 6f .....(1.2.3.4)...--.Function:.-o
3fae0 72 66 6e 20 28 26 72 65 73 74 20 70 72 65 64 73 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 rfn.(&rest.preds)......Return.a.
3fb00 70 72 65 64 69 63 61 74 65 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 69 72 73 74 predicate.that.returns.the.first
3fb20 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 72 65 73 75 6c 74 20 6f 66 0a 20 20 20 20 20 50 52 .non-...nil....result.of......PR
3fb40 45 44 53 2e 20 20 54 68 65 20 72 65 74 75 72 6e 65 64 20 70 72 65 64 69 63 61 74 65 20 74 61 6b EDS...The.returned.predicate.tak
3fb60 65 73 20 61 20 76 61 72 69 61 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 0a 20 20 20 20 20 61 72 67 es.a.variable.number.of......arg
3fb80 75 6d 65 6e 74 73 2c 20 70 61 73 73 65 73 20 74 68 65 6d 20 74 6f 20 65 61 63 68 20 70 72 65 64 uments,.passes.them.to.each.pred
3fba0 69 63 61 74 65 20 69 6e 20 50 52 45 44 53 20 69 6e 20 74 75 72 6e 20 75 6e 74 69 6c 20 6f 6e 65 icate.in.PREDS.in.turn.until.one
3fbc0 0a 20 20 20 20 20 6f 66 20 74 68 65 6d 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c ......of.them.returns.non-...nil
3fbe0 e2 80 99 2c 20 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 61 74 20 6e 6f 6e 2d e2 80 98 6e 69 6c ...,.and.returns.that.non-...nil
3fc00 e2 80 99 20 72 65 73 75 6c 74 0a 20 20 20 20 20 77 69 74 68 6f 75 74 20 63 61 6c 6c 69 6e 67 20 ....result......without.calling.
3fc20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 50 52 45 44 53 2e 20 20 49 66 20 61 6c 6c 20 50 52 45 the.remaining.PREDS...If.all.PRE
3fc40 44 53 20 72 65 74 75 72 6e 20 e2 80 98 6e 69 6c e2 80 99 2c 20 6f 72 0a 20 20 20 20 20 69 66 20 DS.return....nil...,.or......if.
3fc60 6e 6f 20 50 52 45 44 53 20 61 72 65 20 67 69 76 65 6e 2c 20 74 68 65 20 72 65 74 75 72 6e 65 64 no.PREDS.are.given,.the.returned
3fc80 20 70 72 65 64 69 63 61 74 65 20 72 65 74 75 72 6e 73 20 e2 80 98 6e 69 6c e2 80 99 2e 0a 0a 20 .predicate.returns....nil.......
3fca0 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 61 6e 64 66 6e e2 80 99 20 28 2a 6e 6f 74 ....See.also:....-andfn....(*not
3fcc0 65 20 2d 61 6e 64 66 6e 3a 3a 29 20 61 6e 64 20 e2 80 98 2d 6e 6f 74 e2 80 99 20 28 2a 6e 6f 74 e.-andfn::).and....-not....(*not
3fce0 65 20 2d 6e 6f 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6c 74 65 72 20 28 e.-not::).............(-filter.(
3fd00 2d 6f 72 66 6e 20 23 27 6e 61 74 6e 75 6d 70 20 23 27 62 6f 6f 6c 65 61 6e 70 29 20 27 28 31 20 -orfn.#'natnump.#'booleanp).'(1.
3fd20 6e 69 6c 20 22 61 22 20 2d 34 20 62 20 63 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nil."a".-4.b.c.t))..............
3fd40 20 e2 87 92 20 28 31 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c .....(1.nil.t)...........(funcal
3fd60 6c 20 28 2d 6f 72 66 6e 20 23 27 73 79 6d 62 6f 6c 70 20 28 2d 63 75 74 20 73 74 72 69 6e 67 2d l.(-orfn.#'symbolp.(-cut.string-
3fd80 6d 61 74 63 68 2d 70 20 22 78 22 20 3c 3e 29 29 20 22 61 78 65 22 29 0a 20 20 20 20 20 20 20 20 match-p."x".<>))."axe").........
3fda0 20 20 20 20 20 20 e2 87 92 20 31 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 ..........1...........(funcall.(
3fdc0 2d 6f 72 66 6e 20 23 27 3d 20 23 27 2b 29 20 31 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -orfn.#'=.#'+).1.1).............
3fde0 20 20 e2 87 92 20 74 0a 0a 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 61 6e 64 66 6e 20 28 26 ......t...--.Function:.-andfn.(&
3fe00 72 65 73 74 20 70 72 65 64 73 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 70 72 65 64 69 63 rest.preds)......Return.a.predic
3fe20 61 74 65 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 69 ate.that.returns.non-...nil....i
3fe40 66 20 61 6c 6c 20 50 52 45 44 53 20 64 6f 20 73 6f 2e 20 20 54 68 65 0a 20 20 20 20 20 72 65 74 f.all.PREDS.do.so...The......ret
3fe60 75 72 6e 65 64 20 70 72 65 64 69 63 61 74 65 20 50 20 74 61 6b 65 73 20 61 20 76 61 72 69 61 62 urned.predicate.P.takes.a.variab
3fe80 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 0a 20 20 20 20 20 le.number.of.arguments.and......
3fea0 70 61 73 73 65 73 20 74 68 65 6d 20 74 6f 20 65 61 63 68 20 70 72 65 64 69 63 61 74 65 20 69 6e passes.them.to.each.predicate.in
3fec0 20 50 52 45 44 53 20 69 6e 20 74 75 72 6e 2e 20 20 49 66 20 61 6e 79 20 6f 6e 65 20 6f 66 0a 20 .PREDS.in.turn...If.any.one.of..
3fee0 20 20 20 20 50 52 45 44 53 20 72 65 74 75 72 6e 73 20 e2 80 98 6e 69 6c e2 80 99 2c 20 50 20 61 ....PREDS.returns....nil...,.P.a
3ff00 6c 73 6f 20 72 65 74 75 72 6e 73 20 e2 80 98 6e 69 6c e2 80 99 20 77 69 74 68 6f 75 74 20 63 61 lso.returns....nil....without.ca
3ff20 6c 6c 69 6e 67 20 74 68 65 0a 20 20 20 20 20 72 65 6d 61 69 6e 69 6e 67 20 50 52 45 44 53 2e 20 lling.the......remaining.PREDS..
3ff40 20 49 66 20 61 6c 6c 20 50 52 45 44 53 20 72 65 74 75 72 6e 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 .If.all.PREDS.return.non-...nil.
3ff60 80 99 2c 20 50 20 72 65 74 75 72 6e 73 20 74 68 65 20 6c 61 73 74 0a 20 20 20 20 20 73 75 63 68 ..,.P.returns.the.last......such
3ff80 20 76 61 6c 75 65 2e 20 20 49 66 20 6e 6f 20 50 52 45 44 53 20 61 72 65 20 67 69 76 65 6e 2c 20 .value...If.no.PREDS.are.given,.
3ffa0 50 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 2e 0a P.always.returns.non-...nil.....
3ffc0 0a 20 20 20 20 20 53 65 65 20 61 6c 73 6f 3a 20 e2 80 98 2d 6f 72 66 6e e2 80 99 20 28 2a 6e 6f ......See.also:....-orfn....(*no
3ffe0 74 65 20 2d 6f 72 66 6e 3a 3a 29 20 61 6e 64 20 e2 80 98 2d 6e 6f 74 e2 80 99 20 28 2a 6e 6f 74 te.-orfn::).and....-not....(*not
40000 65 20 2d 6e 6f 74 3a 3a 29 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 2d 66 69 6c 74 65 72 20 28 e.-not::).............(-filter.(
40020 2d 61 6e 64 66 6e 20 23 27 6e 75 6d 62 65 72 70 20 28 2d 63 75 74 20 3c 20 3c 3e 20 35 29 29 20 -andfn.#'numberp.(-cut.<.<>.5)).
40040 27 28 61 20 31 20 62 20 36 20 63 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 '(a.1.b.6.c.2)).................
40060 92 20 28 31 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 2d 61 6e 64 66 ..(1.2)...........(mapcar.(-andf
40080 6e 20 23 27 6e 75 6d 62 65 72 70 20 23 27 31 2b 29 20 27 28 61 20 31 20 62 20 36 29 29 0a 20 20 n.#'numberp.#'1+).'(a.1.b.6))...
400a0 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 6e 69 6c 20 32 20 6e 69 6c 20 37 29 0a 20 20 ................(nil.2.nil.7)...
400c0 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 61 6e 64 66 6e 20 23 27 3d 20 23 27 2b ........(funcall.(-andfn.#'=.#'+
400e0 29 20 31 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 32 0a 0a 20 2d 2d 20 ).1.1)...................2...--.
40100 46 75 6e 63 74 69 6f 6e 3a 20 2d 69 74 65 72 61 74 65 66 6e 20 28 66 6e 20 6e 29 0a 20 20 20 20 Function:.-iteratefn.(fn.n).....
40120 20 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 46 4e 20 63 6f 6d 70 6f 73 65 64 20 4e .Return.a.function.FN.composed.N
40140 20 74 69 6d 65 73 20 77 69 74 68 20 69 74 73 65 6c 66 2e 0a 0a 20 20 20 20 20 46 4e 20 69 73 20 .times.with.itself........FN.is.
40160 61 20 75 6e 61 72 79 20 66 75 6e 63 74 69 6f 6e 2e 20 20 49 66 20 79 6f 75 20 6e 65 65 64 20 74 a.unary.function...If.you.need.t
40180 6f 20 75 73 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 68 69 67 68 65 72 0a 20 20 20 20 20 o.use.a.function.of.higher......
401a0 61 72 69 74 79 2c 20 75 73 65 20 e2 80 98 2d 61 70 70 6c 69 66 79 e2 80 99 20 28 2a 6e 6f 74 65 arity,.use....-applify....(*note
401c0 20 2d 61 70 70 6c 69 66 79 3a 3a 29 20 66 69 72 73 74 20 74 6f 20 74 75 72 6e 20 69 74 20 69 6e .-applify::).first.to.turn.it.in
401e0 74 6f 20 61 0a 20 20 20 20 20 75 6e 61 72 79 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 to.a......unary.function........
40200 57 69 74 68 20 6e 20 3d 20 30 2c 20 74 68 69 73 20 61 63 74 73 20 61 73 20 69 64 65 6e 74 69 74 With.n.=.0,.this.acts.as.identit
40220 79 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 49 6e 20 74 79 70 65 73 3a 20 28 61 20 2d y.function........In.types:.(a.-
40240 3e 20 61 29 20 2d 3e 20 49 6e 74 20 2d 3e 20 61 20 2d 3e 20 61 2e 0a 0a 20 20 20 20 20 54 68 69 >.a).->.Int.->.a.->.a........Thi
40260 73 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 69 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 s.function.satisfies.the.followi
40280 6e 67 20 6c 61 77 3a 0a 0a 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 69 74 65 72 61 74 65 ng.law:.......(funcall.(-iterate
402a0 66 6e 20 66 6e 20 6e 29 20 69 6e 69 74 29 20 3d 20 28 2d 6c 61 73 74 2d 69 74 65 6d 20 28 2d 69 fn.fn.n).init).=.(-last-item.(-i
402c0 74 65 72 61 74 65 20 66 6e 20 69 6e 69 74 0a 20 20 20 20 20 28 31 2b 20 6e 29 29 29 2e 0a 0a 20 terate.fn.init......(1+.n)))....
402e0 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 69 74 65 72 61 74 65 66 6e 20 28 6c .........(funcall.(-iteratefn.(l
40300 61 6d 62 64 61 20 28 78 29 20 28 2a 20 78 20 78 29 29 20 33 29 20 32 29 0a 20 20 20 20 20 20 20 ambda.(x).(*.x.x)).3).2)........
40320 20 20 20 20 20 20 20 e2 87 92 20 32 35 36 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c ...........256...........(funcal
40340 6c 20 28 2d 69 74 65 72 61 74 65 66 6e 20 27 31 2b 20 33 29 20 31 29 0a 20 20 20 20 20 20 20 20 l.(-iteratefn.'1+.3).1).........
40360 20 20 20 20 20 20 e2 87 92 20 34 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 ..........4...........(funcall.(
40380 2d 69 74 65 72 61 74 65 66 6e 20 27 63 64 72 20 33 29 20 27 28 31 20 32 20 33 20 34 20 35 29 29 -iteratefn.'cdr.3).'(1.2.3.4.5))
403a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 34 20 35 29 0a 0a 20 2d 2d 20 46 75 ...................(4.5)...--.Fu
403c0 6e 63 74 69 6f 6e 3a 20 2d 66 69 78 66 6e 20 28 66 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 65 71 75 nction:.-fixfn.(fn.&optional.equ
403e0 61 6c 2d 74 65 73 74 20 68 61 6c 74 2d 74 65 73 74 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 al-test.halt-test)......Return.a
40400 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 6f 6d 70 75 74 65 73 20 74 68 65 20 28 6c 65 61 .function.that.computes.the.(lea
40420 73 74 29 20 66 69 78 70 6f 69 6e 74 20 6f 66 20 46 4e 2e 0a 0a 20 20 20 20 20 46 4e 20 6d 75 73 st).fixpoint.of.FN........FN.mus
40440 74 20 62 65 20 61 20 75 6e 61 72 79 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68 65 20 72 65 74 75 t.be.a.unary.function...The.retu
40460 72 6e 65 64 20 6c 61 6d 62 64 61 20 74 61 6b 65 73 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 20 rned.lambda.takes.a.single......
40480 61 72 67 75 6d 65 6e 74 2c 20 58 2c 20 74 68 65 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 20 66 argument,.X,.the.initial.value.f
404a0 6f 72 20 74 68 65 20 66 69 78 70 6f 69 6e 74 20 69 74 65 72 61 74 69 6f 6e 2e 20 20 54 68 65 0a or.the.fixpoint.iteration...The.
404c0 20 20 20 20 20 69 74 65 72 61 74 69 6f 6e 20 68 61 6c 74 73 20 77 68 65 6e 20 65 69 74 68 65 72 .....iteration.halts.when.either
404e0 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 20 69 73 0a .of.the.following.conditions.is.
40500 20 20 20 20 20 73 61 74 69 73 66 69 65 64 3a 0a 0a 20 20 20 20 20 31 2e 20 20 49 74 65 72 61 74 .....satisfied:.......1...Iterat
40520 69 6f 6e 20 63 6f 6e 76 65 72 67 65 73 20 74 6f 20 74 68 65 20 66 69 78 70 6f 69 6e 74 2c 20 77 ion.converges.to.the.fixpoint,.w
40540 69 74 68 20 65 71 75 61 6c 69 74 79 20 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20 20 20 20 20 75 ith.equality.being.tested......u
40560 73 69 6e 67 20 45 51 55 41 4c 2d 54 45 53 54 2e 20 20 49 66 20 45 51 55 41 4c 2d 54 45 53 54 20 sing.EQUAL-TEST...If.EQUAL-TEST.
40580 69 73 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2c 20 e2 80 98 65 71 75 61 6c e2 80 99 20 69 73 is.not.specified,....equal....is
405a0 20 75 73 65 64 2e 0a 20 20 20 20 20 46 6f 72 20 66 75 6e 63 74 69 6f 6e 73 20 6f 76 65 72 20 74 .used.......For.functions.over.t
405c0 68 65 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6e 75 6d 62 65 72 73 2c 20 69 74 20 6d 61 he.floating.point.numbers,.it.ma
405e0 79 20 62 65 20 6e 65 63 65 73 73 61 72 79 0a 20 20 20 20 20 74 6f 20 70 72 6f 76 69 64 65 20 61 y.be.necessary......to.provide.a
40600 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 61 70 70 72 6f 78 69 6d 61 74 65 20 63 6f 6d 70 61 72 n.appropriate.approximate.compar
40620 69 73 6f 6e 20 74 65 73 74 2e 0a 0a 20 20 20 20 20 32 2e 20 20 48 41 4c 54 2d 54 45 53 54 20 72 ison.test........2...HALT-TEST.r
40640 65 74 75 72 6e 73 20 61 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 76 61 6c 75 65 2e 20 20 48 eturns.a.non-...nil....value...H
40660 41 4c 54 2d 54 45 53 54 20 64 65 66 61 75 6c 74 73 20 74 6f 20 61 0a 20 20 20 20 20 73 69 6d 70 ALT-TEST.defaults.to.a......simp
40680 6c 65 20 63 6f 75 6e 74 65 72 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 e2 80 98 74 e2 80 99 20 le.counter.that.returns....t....
406a0 61 66 74 65 72 20 e2 80 98 2d 66 69 78 66 6e 2d 6d 61 78 2d 69 74 65 72 61 74 69 6f 6e 73 e2 80 after....-fixfn-max-iterations..
406c0 99 2c 20 74 6f 0a 20 20 20 20 20 67 75 61 72 64 20 61 67 61 69 6e 73 74 20 69 6e 66 69 6e 69 74 .,.to......guard.against.infinit
406e0 65 20 69 74 65 72 61 74 69 6f 6e 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 48 41 4c 54 2d 54 45 e.iteration...Otherwise,.HALT-TE
40700 53 54 20 6d 75 73 74 20 62 65 20 61 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 ST.must.be.a......function.that.
40720 61 63 63 65 70 74 73 20 61 20 73 69 6e 67 6c 65 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 63 accepts.a.single.argument,.the.c
40740 75 72 72 65 6e 74 20 76 61 6c 75 65 20 6f 66 20 58 2c 0a 20 20 20 20 20 61 6e 64 20 72 65 74 75 urrent.value.of.X,......and.retu
40760 72 6e 73 20 6e 6f 6e 2d e2 80 98 6e 69 6c e2 80 99 20 61 73 20 6c 6f 6e 67 20 61 73 20 69 74 65 rns.non-...nil....as.long.as.ite
40780 72 61 74 69 6f 6e 20 73 68 6f 75 6c 64 20 63 6f 6e 74 69 6e 75 65 2e 20 20 49 6e 0a 20 20 20 20 ration.should.continue...In.....
407a0 20 74 68 69 73 20 77 61 79 2c 20 61 20 6d 6f 72 65 20 73 6f 70 68 69 73 74 69 63 61 74 65 64 20 .this.way,.a.more.sophisticated.
407c0 63 6f 6e 76 65 72 67 65 6e 63 65 20 74 65 73 74 20 6d 61 79 20 62 65 20 73 75 70 70 6c 69 65 64 convergence.test.may.be.supplied
407e0 20 62 79 0a 20 20 20 20 20 74 68 65 20 63 61 6c 6c 65 72 2e 0a 0a 20 20 20 20 20 54 68 65 20 72 .by......the.caller........The.r
40800 65 74 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 6c 61 6d 62 64 61 20 69 73 20 65 69 74 eturn.value.of.the.lambda.is.eit
40820 68 65 72 20 74 68 65 20 66 69 78 70 6f 69 6e 74 20 6f 72 2c 20 69 66 0a 20 20 20 20 20 69 74 65 her.the.fixpoint.or,.if......ite
40840 72 61 74 69 6f 6e 20 68 61 6c 74 65 64 20 62 65 66 6f 72 65 20 63 6f 6e 76 65 72 67 69 6e 67 2c ration.halted.before.converging,
40860 20 61 20 63 6f 6e 73 20 77 69 74 68 20 63 61 72 20 e2 80 98 68 61 6c 74 65 64 e2 80 99 20 61 6e .a.cons.with.car....halted....an
40880 64 0a 20 20 20 20 20 63 64 72 20 74 68 65 20 66 69 6e 61 6c 20 6f 75 74 70 75 74 20 66 72 6f 6d d......cdr.the.final.output.from
408a0 20 48 41 4c 54 2d 54 45 53 54 2e 0a 0a 20 20 20 20 20 49 6e 20 74 79 70 65 73 3a 20 28 61 20 2d .HALT-TEST........In.types:.(a.-
408c0 3e 20 61 29 20 2d 3e 20 61 20 2d 3e 20 61 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 >.a).->.a.->.a.............(func
408e0 61 6c 6c 20 28 2d 66 69 78 66 6e 20 23 27 63 6f 73 20 23 27 61 70 70 72 6f 78 3d 29 20 30 2e 37 all.(-fixfn.#'cos.#'approx=).0.7
40900 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 30 2e 37 33 39 30 38 35 31 33 33 32 )...................0.7390851332
40920 31 35 31 36 30 37 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 66 69 78 66 151607...........(funcall.(-fixf
40940 6e 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 65 78 70 74 20 28 2b 20 78 20 31 30 29 20 30 2e 32 n.(lambda.(x).(expt.(+.x.10).0.2
40960 35 29 29 29 20 32 2e 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 31 2e 38 35 5))).2.0)...................1.85
40980 35 35 38 34 35 32 38 36 34 30 39 33 37 38 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 55845286409378...........(funcal
409a0 6c 20 28 2d 66 69 78 66 6e 20 23 27 73 69 6e 20 23 27 61 70 70 72 6f 78 3d 29 20 30 2e 31 29 0a l.(-fixfn.#'sin.#'approx=).0.1).
409c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 68 61 6c 74 65 64 20 2e 20 74 29 0a 0a ..................(halted...t)..
409e0 20 2d 2d 20 46 75 6e 63 74 69 6f 6e 3a 20 2d 70 72 6f 64 66 6e 20 28 26 72 65 73 74 20 66 6e 73 .--.Function:.-prodfn.(&rest.fns
40a00 29 0a 20 20 20 20 20 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 61 70 )......Return.a.function.that.ap
40a20 70 6c 69 65 73 20 65 61 63 68 20 6f 66 20 46 4e 53 20 74 6f 20 65 61 63 68 20 6f 66 20 61 20 6c plies.each.of.FNS.to.each.of.a.l
40a40 69 73 74 20 6f 66 0a 20 20 20 20 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 54 61 6b ist.of......arguments........Tak
40a60 65 73 20 61 20 6c 69 73 74 20 6f 66 20 4e 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 72 65 74 es.a.list.of.N.functions.and.ret
40a80 75 72 6e 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 0a 20 20 20 urns.a.function.that.takes.a....
40aa0 20 20 6c 69 73 74 20 6f 66 20 6c 65 6e 67 74 68 20 4e 2c 20 61 70 70 6c 79 69 6e 67 20 49 74 68 ..list.of.length.N,.applying.Ith
40ac0 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 49 74 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 .function.to.Ith.element.of.the.
40ae0 69 6e 70 75 74 0a 20 20 20 20 20 6c 69 73 74 2e 20 20 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 input......list...Returns.a.list
40b00 20 6f 66 20 6c 65 6e 67 74 68 20 4e 2e 0a 0a 20 20 20 20 20 49 6e 20 74 79 70 65 73 20 28 66 6f .of.length.N........In.types.(fo
40b20 72 20 4e 3d 32 29 3a 20 28 28 61 20 2d 3e 20 62 29 2c 20 28 63 20 2d 3e 20 64 29 29 20 2d 3e 20 r.N=2):.((a.->.b),.(c.->.d)).->.
40b40 28 61 2c 20 63 29 20 2d 3e 20 28 62 2c 20 64 29 0a 0a 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 (a,.c).->.(b,.d).......This.func
40b60 74 69 6f 6e 20 73 61 74 69 73 66 69 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 61 77 tion.satisfies.the.following.law
40b80 73 3a 0a 0a 20 20 20 20 20 28 2d 63 6f 6d 70 6f 73 65 20 28 2d 70 72 6f 64 66 6e 20 66 20 67 20 s:.......(-compose.(-prodfn.f.g.
40ba0 2e 2e 2e 29 20 28 2d 70 72 6f 64 66 6e 20 66 e2 80 99 20 67 e2 80 99 20 2e 2e 2e 29 29 20 3d 20 ...).(-prodfn.f....g.......)).=.
40bc0 28 2d 70 72 6f 64 66 6e 0a 20 20 20 20 20 28 2d 63 6f 6d 70 6f 73 65 20 66 20 66 e2 80 99 29 20 (-prodfn......(-compose.f.f...).
40be0 28 2d 63 6f 6d 70 6f 73 65 20 67 20 67 e2 80 99 29 20 2e 2e 2e 29 0a 0a 20 20 20 20 20 28 2d 70 (-compose.g.g...)....).......(-p
40c00 72 6f 64 66 6e 20 66 20 67 20 2e 2e 2e 29 20 3d 20 28 2d 6a 75 78 74 20 28 2d 63 6f 6d 70 6f 73 rodfn.f.g....).=.(-juxt.(-compos
40c20 65 20 66 20 28 2d 70 61 72 74 69 61 6c 20 23 e2 80 99 6e 74 68 20 30 29 29 0a 20 20 20 20 20 28 e.f.(-partial.#...nth.0))......(
40c40 2d 63 6f 6d 70 6f 73 65 20 67 20 28 2d 70 61 72 74 69 61 6c 20 23 e2 80 99 6e 74 68 20 31 29 29 -compose.g.(-partial.#...nth.1))
40c60 20 2e 2e 2e 29 0a 0a 20 20 20 20 20 28 2d 63 6f 6d 70 6f 73 65 20 28 2d 70 72 6f 64 66 6e 20 66 ....).......(-compose.(-prodfn.f
40c80 20 67 20 2e 2e 2e 29 20 28 2d 6a 75 78 74 20 66 e2 80 99 20 67 e2 80 99 20 2e 2e 2e 29 29 20 3d .g....).(-juxt.f....g.......)).=
40ca0 20 28 2d 6a 75 78 74 20 28 2d 63 6f 6d 70 6f 73 65 20 66 0a 20 20 20 20 20 66 e2 80 99 29 20 28 .(-juxt.(-compose.f......f...).(
40cc0 2d 63 6f 6d 70 6f 73 65 20 67 20 67 e2 80 99 29 20 2e 2e 2e 29 0a 0a 20 20 20 20 20 28 2d 63 6f -compose.g.g...)....).......(-co
40ce0 6d 70 6f 73 65 20 28 2d 70 61 72 74 69 61 6c 20 23 e2 80 99 6e 74 68 20 6e 29 20 28 2d 70 72 6f mpose.(-partial.#...nth.n).(-pro
40d00 64 20 66 31 20 66 32 20 2e 2e 2e 29 29 20 3d 20 28 2d 63 6f 6d 70 6f 73 65 20 66 6e 0a 20 20 20 d.f1.f2....)).=.(-compose.fn....
40d20 20 20 28 2d 70 61 72 74 69 61 6c 20 23 e2 80 99 6e 74 68 20 6e 29 29 0a 0a 20 20 20 20 20 20 20 ..(-partial.#...nth.n)).........
40d40 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 2d 70 72 6f 64 66 6e 20 23 27 31 2b 20 23 27 31 2d 20 23 ...(funcall.(-prodfn.#'1+.#'1-.#
40d60 27 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 29 20 27 28 31 20 32 20 33 29 29 0a 20 20 20 'number-to-string).'(1.2.3))....
40d80 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 28 32 20 31 20 22 33 22 29 0a 20 20 20 20 20 20 20 ...............(2.1."3")........
40da0 20 20 20 28 2d 6d 61 70 20 28 2d 70 72 6f 64 66 6e 20 23 27 31 2d 20 23 27 31 2b 29 20 27 28 28 ...(-map.(-prodfn.#'1-.#'1+).'((
40dc0 31 20 32 29 20 28 33 20 34 29 20 28 35 20 36 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 1.2).(3.4).(5.6)))..............
40de0 20 e2 87 92 20 28 28 30 20 33 29 20 28 32 20 35 29 20 28 34 20 37 29 29 0a 20 20 20 20 20 20 20 .....((0.3).(2.5).(4.7))........
40e00 20 20 20 28 61 70 70 6c 79 20 23 27 2b 20 28 66 75 6e 63 61 6c 6c 20 28 2d 70 72 6f 64 66 6e 20 ...(apply.#'+.(funcall.(-prodfn.
40e20 23 27 6c 65 6e 67 74 68 20 23 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 29 20 27 28 28 #'length.#'string-to-number).'((
40e40 74 29 20 22 35 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e2 87 92 20 36 0a 0a 1f t)."5")))...................6...
40e60 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 65 76 65 6c 6f 70 .File:.dash.info,..Node:.Develop
40e80 6d 65 6e 74 2c 20 20 4e 65 78 74 3a 20 46 44 4c 2c 20 20 50 72 65 76 3a 20 46 75 6e 63 74 69 6f ment,..Next:.FDL,..Prev:.Functio
40ea0 6e 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 33 20 44 65 76 65 6c 6f 70 6d 65 6e 74 0a 2a 2a 2a 2a ns,..Up:.Top..3.Development.****
40ec0 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 44 61 73 68 20 72 65 70 6f 73 69 74 6f 72 79 20 69 *********..The.Dash.repository.i
40ee0 73 20 68 6f 73 74 65 64 20 6f 6e 20 47 69 74 48 75 62 20 61 74 0a 3c 68 74 74 70 73 3a 2f 2f 67 s.hosted.on.GitHub.at.<https://g
40f00 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 6e 61 72 73 2f 64 61 73 68 2e 65 6c 3e 2e 0a 0a 2a 20 4d ithub.com/magnars/dash.el>...*.M
40f20 65 6e 75 3a 0a 0a 2a 20 43 6f 6e 74 72 69 62 75 74 65 3a 3a 20 20 20 20 20 20 20 20 20 20 48 6f enu:..*.Contribute::..........Ho
40f40 77 20 74 6f 20 63 6f 6e 74 72 69 62 75 74 65 2e 0a 2a 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 3a w.to.contribute..*.Contributors:
40f60 3a 20 20 20 20 20 20 20 20 4c 69 73 74 20 6f 66 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 2e 0a 0a :........List.of.contributors...
40f80 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f 6e 74 72 69 ..File:.dash.info,..Node:.Contri
40fa0 62 75 74 65 2c 20 20 4e 65 78 74 3a 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 2c 20 20 55 70 3a 20 bute,..Next:.Contributors,..Up:.
40fc0 44 65 76 65 6c 6f 70 6d 65 6e 74 0a 0a 33 2e 31 20 43 6f 6e 74 72 69 62 75 74 65 0a 3d 3d 3d 3d Development..3.1.Contribute.====
40fe0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 59 65 73 2c 20 70 6c 65 61 73 65 20 64 6f 2e 20 20 50 75 72 ==========..Yes,.please.do...Pur
41000 65 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 61 6e 69 70 75 6c 61 e.functions.in.the.list.manipula
41020 74 69 6f 6e 20 72 65 61 6c 6d 20 6f 6e 6c 79 2c 0a 70 6c 65 61 73 65 2e 20 20 54 68 65 72 65 e2 tion.realm.only,.please...There.
41040 80 99 73 20 61 20 73 75 69 74 65 20 6f 66 20 65 78 61 6d 70 6c 65 73 2f 74 65 73 74 73 20 69 6e ..s.a.suite.of.examples/tests.in
41060 20 e2 80 98 64 65 76 2f 65 78 61 6d 70 6c 65 73 2e 65 6c e2 80 99 2c 20 73 6f 0a 72 65 6d 65 6d ....dev/examples.el...,.so.remem
41080 62 65 72 20 74 6f 20 61 64 64 20 74 65 73 74 73 20 66 6f 72 20 79 6f 75 72 20 61 64 64 69 74 69 ber.to.add.tests.for.your.additi
410a0 6f 6e 73 2c 20 6f 72 20 74 68 65 79 20 6d 61 79 20 67 65 74 20 62 72 6f 6b 65 6e 20 6c 61 74 65 ons,.or.they.may.get.broken.late
410c0 72 2e 0a 0a 20 20 20 52 75 6e 20 74 68 65 20 74 65 73 74 73 20 77 69 74 68 20 e2 80 98 6d 61 6b r......Run.the.tests.with....mak
410e0 65 20 63 68 65 63 6b e2 80 99 2e 20 20 52 65 67 65 6e 65 72 61 74 65 20 74 68 65 20 64 6f 63 73 e.check......Regenerate.the.docs
41100 20 77 69 74 68 20 e2 80 98 6d 61 6b 65 0a 64 6f 63 73 e2 80 99 2e 20 20 43 6f 6e 74 72 69 62 75 .with....make.docs......Contribu
41120 74 6f 72 73 20 61 72 65 20 65 6e 63 6f 75 72 61 67 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 tors.are.encouraged.to.install.t
41140 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 61 73 20 61 20 47 69 74 0a 70 72 65 2d 63 6f 6d 6d 69 hese.commands.as.a.Git.pre-commi
41160 74 20 68 6f 6f 6b 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 74 65 73 74 73 20 61 72 65 20 61 6c t.hook,.so.that.the.tests.are.al
41180 77 61 79 73 20 72 75 6e 6e 69 6e 67 20 61 6e 64 20 74 68 65 20 64 6f 63 73 20 61 72 65 0a 61 6c ways.running.and.the.docs.are.al
411a0 77 61 79 73 20 69 6e 20 73 79 6e 63 3a 0a 0a 20 20 20 20 20 24 20 63 70 20 64 65 76 2f 70 72 65 ways.in.sync:.......$.cp.dev/pre
411c0 2d 63 6f 6d 6d 69 74 2e 73 68 20 2e 67 69 74 2f 68 6f 6f 6b 73 2f 70 72 65 2d 63 6f 6d 6d 69 74 -commit.sh..git/hooks/pre-commit
411e0 0a 0a 20 20 20 4f 68 2c 20 61 6e 64 20 64 6f 6e e2 80 99 74 20 65 64 69 74 20 e2 80 98 52 45 41 .....Oh,.and.don...t.edit....REA
41200 44 4d 45 2e 6d 64 e2 80 99 20 6f 72 20 e2 80 98 64 61 73 68 2e 74 65 78 69 e2 80 99 20 64 69 72 DME.md....or....dash.texi....dir
41220 65 63 74 6c 79 2c 20 61 73 20 74 68 65 79 20 61 72 65 0a 61 75 74 6f 2d 67 65 6e 65 72 61 74 65 ectly,.as.they.are.auto-generate
41240 64 2e 20 20 49 6e 73 74 65 61 64 2c 20 63 68 61 6e 67 65 20 74 68 65 69 72 20 72 65 73 70 65 63 d...Instead,.change.their.respec
41260 74 69 76 65 20 74 65 6d 70 6c 61 74 65 73 0a e2 80 98 72 65 61 64 6d 65 2d 74 65 6d 70 6c 61 74 tive.templates....readme-templat
41280 65 2e 6d 64 e2 80 99 20 6f 72 20 e2 80 98 64 61 73 68 2d 74 65 6d 70 6c 61 74 65 2e 74 65 78 69 e.md....or....dash-template.texi
412a0 e2 80 99 2e 0a 0a 20 20 20 54 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 44 61 73 68 20 63 61 6e .........To.ensure.that.Dash.can
412c0 20 62 65 20 64 69 73 74 72 69 62 75 74 65 64 20 77 69 74 68 20 47 4e 55 20 45 4c 50 41 20 6f 72 .be.distributed.with.GNU.ELPA.or
412e0 20 45 6d 61 63 73 2c 20 77 65 0a 72 65 71 75 69 72 65 20 74 68 61 74 20 61 6c 6c 20 63 6f 6e 74 .Emacs,.we.require.that.all.cont
41300 72 69 62 75 74 6f 72 73 20 61 73 73 69 67 6e 20 63 6f 70 79 72 69 67 68 74 20 74 6f 20 74 68 65 ributors.assign.copyright.to.the
41320 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 46 6f 72 20 .Free.Software.Foundation...For.
41340 6d 6f 72 65 20 6f 6e 20 74 68 69 73 2c 20 2a 6e 6f 74 65 20 28 65 6d 61 63 73 29 43 6f 70 79 72 more.on.this,.*note.(emacs)Copyr
41360 69 67 68 74 20 41 73 73 69 67 6e 6d 65 6e 74 3a 3a 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 ight.Assignment::.....File:.dash
41380 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 2c 20 20 50 72 65 .info,..Node:.Contributors,..Pre
413a0 76 3a 20 43 6f 6e 74 72 69 62 75 74 65 2c 20 20 55 70 3a 20 44 65 76 65 6c 6f 70 6d 65 6e 74 0a v:.Contribute,..Up:.Development.
413c0 0a 33 2e 32 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .3.2.Contributors.==============
413e0 3d 3d 0a 0a 20 20 20 e2 80 a2 20 4d 61 74 75 73 20 47 6f 6c 6a 65 72 20 28 68 74 74 70 73 3a 2f ==.........Matus.Goljer.(https:/
41400 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 46 75 63 6f 31 29 20 63 6f 6e 74 72 69 62 75 74 65 64 20 6c /github.com/Fuco1).contributed.l
41420 6f 74 73 20 6f 66 0a 20 20 20 20 20 66 65 61 74 75 72 65 73 20 61 6e 64 20 66 75 6e 63 74 69 6f ots.of......features.and.functio
41440 6e 73 2e 0a 20 20 20 e2 80 a2 20 54 61 6b 61 66 75 6d 69 20 41 72 61 6b 61 6b 69 20 28 68 74 74 ns.........Takafumi.Arakaki.(htt
41460 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 74 6b 66 29 20 63 6f 6e 74 72 69 62 75 74 65 64 ps://github.com/tkf).contributed
41480 20 e2 80 98 2d 67 72 6f 75 70 2d 62 79 e2 80 99 2e 0a 20 20 20 e2 80 a2 20 74 61 6c 69 37 31 33 ....-group-by............tali713
414a0 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 74 61 6c 69 37 31 33 29 20 69 73 .(https://github.com/tali713).is
414c0 20 74 68 65 20 61 75 74 68 6f 72 20 6f 66 20 e2 80 98 2d 61 70 70 6c 69 66 79 e2 80 99 2e 0a 20 .the.author.of....-applify......
414e0 20 20 e2 80 a2 20 56 c3 ad 63 74 6f 72 20 4d 2e 20 56 61 6c 65 6e 7a 75 65 6c 61 20 28 68 74 74 ......V..ctor.M..Valenzuela.(htt
41500 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 76 65 6d 76 29 20 63 6f 6e 74 72 69 62 75 74 65 ps://github.com/vemv).contribute
41520 64 0a 20 20 20 20 20 e2 80 98 2d 72 65 70 65 61 74 e2 80 99 2e 0a 20 20 20 e2 80 a2 20 4e 69 63 d.........-repeat............Nic
41540 20 46 65 72 72 69 65 72 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 69 63 .Ferrier.(https://github.com/nic
41560 66 65 72 72 69 65 72 29 20 63 6f 6e 74 72 69 62 75 74 65 64 20 e2 80 98 2d 63 6f 6e 73 2a e2 80 ferrier).contributed....-cons*..
41580 99 2e 0a 20 20 20 e2 80 a2 20 57 69 6c 66 72 65 64 20 48 75 67 68 65 73 20 28 68 74 74 70 73 3a ..........Wilfred.Hughes.(https:
415a0 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 57 69 6c 66 72 65 64 29 20 63 6f 6e 74 72 69 62 75 74 65 //github.com/Wilfred).contribute
415c0 64 20 e2 80 98 2d 73 6c 69 63 65 e2 80 99 2c 0a 20 20 20 20 20 e2 80 98 2d 66 69 72 73 74 2d 69 d....-slice...,.........-first-i
415e0 74 65 6d e2 80 99 2c 20 61 6e 64 20 e2 80 98 2d 6c 61 73 74 2d 69 74 65 6d e2 80 99 2e 0a 20 20 tem...,.and....-last-item.......
41600 20 e2 80 a2 20 45 6d 61 6e 75 65 6c 20 45 76 61 6e 73 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 .....Emanuel.Evans.(https://gith
41620 75 62 2e 63 6f 6d 2f 73 68 6f 73 74 69 29 20 63 6f 6e 74 72 69 62 75 74 65 64 20 e2 80 98 2d 69 ub.com/shosti).contributed....-i
41640 66 2d 6c 65 74 e2 80 99 2c 0a 20 20 20 20 20 e2 80 98 2d 77 68 65 6e 2d 6c 65 74 e2 80 99 2c 20 f-let...,.........-when-let...,.
41660 61 6e 64 20 e2 80 98 2d 69 6e 73 65 72 74 2d 61 74 e2 80 99 2e 0a 20 20 20 e2 80 a2 20 4a 6f 68 and....-insert-at............Joh
41680 61 6e 20 41 6e 64 65 72 73 73 6f 6e 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d an.Andersson.(https://github.com
416a0 2f 72 65 6a 65 65 70 29 20 63 6f 6e 74 72 69 62 75 74 65 64 20 e2 80 98 2d 73 75 6d e2 80 99 2c /rejeep).contributed....-sum...,
416c0 0a 20 20 20 20 20 e2 80 98 2d 70 72 6f 64 75 63 74 e2 80 99 2c 20 61 6e 64 20 e2 80 98 2d 73 61 .........-product...,.and....-sa
416e0 6d 65 2d 69 74 65 6d 73 3f e2 80 99 2e 0a 20 20 20 e2 80 a2 20 43 68 72 69 73 74 69 6e 61 20 57 me-items?............Christina.W
41700 68 79 74 65 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 75 72 69 73 75 77 hyte.(https://github.com/kurisuw
41720 68 79 74 65 29 20 63 6f 6e 74 72 69 62 75 74 65 64 0a 20 20 20 20 20 e2 80 98 2d 63 6f 6d 70 6f hyte).contributed.........-compo
41740 73 65 e2 80 99 2e 0a 20 20 20 e2 80 a2 20 53 74 65 76 65 20 4c 61 6d 62 20 28 68 74 74 70 73 3a se............Steve.Lamb.(https:
41760 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 74 65 76 65 6e 74 6c 61 6d 62 29 20 63 6f 6e 74 72 69 //github.com/steventlamb).contri
41780 62 75 74 65 64 20 e2 80 98 2d 63 79 63 6c 65 e2 80 99 2c 0a 20 20 20 20 20 e2 80 98 2d 70 61 64 buted....-cycle...,.........-pad
417a0 e2 80 99 2c 20 e2 80 98 2d 61 6e 6e 6f 74 61 74 65 e2 80 99 2c 20 e2 80 98 2d 7a 69 70 2d 66 69 ...,....-annotate...,....-zip-fi
417c0 6c 6c e2 80 99 2c 20 61 6e 64 20 61 20 76 61 72 69 61 64 69 63 20 76 65 72 73 69 6f 6e 20 6f 66 ll...,.and.a.variadic.version.of
417e0 20 e2 80 98 2d 7a 69 70 e2 80 99 2e 0a 20 20 20 e2 80 a2 20 46 72 65 64 72 69 6b 20 42 65 72 67 ....-zip............Fredrik.Berg
41800 72 6f 74 68 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 62 65 72 67 72 6f roth.(https://github.com/fbergro
41820 74 68 29 20 6d 61 64 65 20 74 68 65 20 e2 80 98 2d 69 66 2d 6c 65 74 e2 80 99 0a 20 20 20 20 20 th).made.the....-if-let.........
41840 66 61 6d 69 6c 79 20 75 73 65 20 e2 80 98 2d 6c 65 74 e2 80 99 20 64 65 73 74 72 75 63 74 75 72 family.use....-let....destructur
41860 69 6e 67 20 61 6e 64 20 69 6d 70 72 6f 76 65 64 20 74 68 65 20 73 63 72 69 70 74 20 66 6f 72 0a ing.and.improved.the.script.for.
41880 20 20 20 20 20 67 65 6e 65 72 61 74 69 6e 67 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 .....generating.documentation...
418a0 20 20 e2 80 a2 20 4d 61 72 6b 20 4f 74 65 69 7a 61 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 ......Mark.Oteiza.(https://githu
418c0 62 2e 63 6f 6d 2f 68 6f 6c 6f 6d 6f 72 70 68 29 20 63 6f 6e 74 72 69 62 75 74 65 64 20 e2 80 98 b.com/holomorph).contributed....
418e0 2d 69 6f 74 61 e2 80 99 20 61 6e 64 0a 20 20 20 20 20 74 68 65 20 73 63 72 69 70 74 20 74 6f 20 -iota....and......the.script.to.
41900 63 72 65 61 74 65 20 61 6e 20 49 6e 66 6f 20 6d 61 6e 75 61 6c 2e 0a 20 20 20 e2 80 a2 20 56 61 create.an.Info.manual.........Va
41920 73 69 6c 69 6a 20 53 63 68 6e 65 69 64 65 72 6d 61 6e 6e 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 silij.Schneidermann.(https://git
41940 68 75 62 2e 63 6f 6d 2f 77 61 73 61 6d 61 73 61 29 20 63 6f 6e 74 72 69 62 75 74 65 64 0a 20 20 hub.com/wasamasa).contributed...
41960 20 20 20 e2 80 98 2d 73 6f 6d 65 e2 80 99 2e 0a 20 20 20 e2 80 a2 20 57 69 6c 6c 69 61 6d 20 57 ......-some............William.W
41980 65 73 74 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6f 63 63 69 64 65 6e 73 est.(https://github.com/occidens
419a0 29 20 6d 61 64 65 20 e2 80 98 2d 66 69 78 66 6e e2 80 99 20 6d 6f 72 65 0a 20 20 20 20 20 72 6f ).made....-fixfn....more......ro
419c0 62 75 73 74 20 61 74 20 68 61 6e 64 6c 69 6e 67 20 66 6c 6f 61 74 73 2e 0a 20 20 20 e2 80 a2 20 bust.at.handling.floats.........
419e0 43 61 6d 20 53 61 75 6c 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 63 61 6d Cam.Saul.(https://github.com/cam
41a00 73 61 75 6c 29 20 63 6f 6e 74 72 69 62 75 74 65 64 20 e2 80 98 2d 73 6f 6d 65 2d 3e e2 80 99 2c saul).contributed....-some->...,
41a20 0a 20 20 20 20 20 e2 80 98 2d 73 6f 6d 65 2d 3e 3e e2 80 99 2c 20 61 6e 64 20 e2 80 98 2d 73 6f .........-some->>...,.and....-so
41a40 6d 65 2d 2d 3e e2 80 99 2e 0a 20 20 20 e2 80 a2 20 42 61 73 69 6c 20 4c 2e 20 43 6f 6e 74 6f 76 me-->............Basil.L..Contov
41a60 6f 75 6e 65 73 69 6f 73 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 62 61 73 ounesios.(https://github.com/bas
41a80 69 6c 2d 63 6f 6e 74 6f 29 0a 20 20 20 20 20 63 6f 6e 74 72 69 62 75 74 65 64 20 e2 80 98 2d 63 il-conto)......contributed....-c
41aa0 6f 6d 6d 6f 6e 2d 70 72 65 66 69 78 e2 80 99 2c 20 e2 80 98 2d 63 6f 6d 6d 6f 6e 2d 73 75 66 66 ommon-prefix...,....-common-suff
41ac0 69 78 e2 80 99 2c 20 61 6e 64 20 76 61 72 69 6f 75 73 20 6f 74 68 65 72 0a 20 20 20 20 20 69 6d ix...,.and.various.other......im
41ae0 70 72 6f 76 65 6d 65 6e 74 73 2e 0a 20 20 20 e2 80 a2 20 50 61 75 6c 20 50 6f 67 6f 6e 79 73 68 provements.........Paul.Pogonysh
41b00 65 76 20 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 6f 75 62 6c 65 70 29 20 ev.(https://github.com/doublep).
41b20 63 6f 6e 74 72 69 62 75 74 65 64 20 e2 80 98 2d 65 61 63 68 2d 72 e2 80 99 0a 20 20 20 20 20 61 contributed....-each-r.........a
41b40 6e 64 20 e2 80 98 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 e2 80 99 2e 0a 0a 20 20 20 54 68 61 6e nd....-each-r-while.........Than
41b60 6b 73 21 0a 0a 20 20 20 4e 65 77 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 61 72 65 20 76 65 72 ks!.....New.contributors.are.ver
41b80 79 20 77 65 6c 63 6f 6d 65 2e 20 20 2a 4e 6f 74 65 20 43 6f 6e 74 72 69 62 75 74 65 3a 3a 2e 0a y.welcome...*Note.Contribute::..
41ba0 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 44 4c 2c 20 ...File:.dash.info,..Node:.FDL,.
41bc0 20 4e 65 78 74 3a 20 47 50 4c 2c 20 20 50 72 65 76 3a 20 44 65 76 65 6c 6f 70 6d 65 6e 74 2c 20 .Next:.GPL,..Prev:.Development,.
41be0 20 55 70 3a 20 54 6f 70 0a 0a 41 70 70 65 6e 64 69 78 20 41 20 47 4e 55 20 46 72 65 65 20 44 6f .Up:.Top..Appendix.A.GNU.Free.Do
41c00 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a cumentation.License.************
41c20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 20 *****************************...
41c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 31 2e 33 2c ....................Version.1.3,
41c60 20 33 20 4e 6f 76 65 6d 62 65 72 20 32 30 30 38 0a 0a 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 .3.November.2008.......Copyright
41c80 20 c2 a9 20 32 30 30 30 2c 20 32 30 30 31 2c 20 32 30 30 32 2c 20 32 30 30 37 2c 20 32 30 30 38 ....2000,.2001,.2002,.2007,.2008
41ca0 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a .Free.Software.Foundation,.Inc..
41cc0 20 20 20 20 20 3c 68 74 74 70 73 3a 2f 2f 66 73 66 2e 6f 72 67 2f 3e 0a 0a 20 20 20 20 20 45 76 .....<https://fsf.org/>.......Ev
41ce0 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 eryone.is.permitted.to.copy.and.
41d00 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 73 0a 20 20 20 20 20 distribute.verbatim.copies......
41d20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 74 20 63 68 of.this.license.document,.but.ch
41d40 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 20 20 30 2e 20 anging.it.is.not.allowed.....0..
41d60 50 52 45 41 4d 42 4c 45 0a 0a 20 20 20 20 20 54 68 65 20 70 75 72 70 6f 73 65 20 6f 66 20 74 68 PREAMBLE.......The.purpose.of.th
41d80 69 73 20 4c 69 63 65 6e 73 65 20 69 73 20 74 6f 20 6d 61 6b 65 20 61 20 6d 61 6e 75 61 6c 2c 20 is.License.is.to.make.a.manual,.
41da0 74 65 78 74 62 6f 6f 6b 2c 20 6f 72 20 6f 74 68 65 72 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e textbook,.or.other......function
41dc0 61 6c 20 61 6e 64 20 75 73 65 66 75 6c 20 64 6f 63 75 6d 65 6e 74 20 e2 80 9c 66 72 65 65 e2 80 al.and.useful.document....free..
41de0 9d 20 69 6e 20 74 68 65 20 73 65 6e 73 65 20 6f 66 20 66 72 65 65 64 6f 6d 3a 20 74 6f 0a 20 20 ..in.the.sense.of.freedom:.to...
41e00 20 20 20 61 73 73 75 72 65 20 65 76 65 72 79 6f 6e 65 20 74 68 65 20 65 66 66 65 63 74 69 76 65 ...assure.everyone.the.effective
41e20 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 72 65 64 69 73 74 72 69 62 75 74 .freedom.to.copy.and.redistribut
41e40 65 20 69 74 2c 0a 20 20 20 20 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 e.it,......with.or.without.modif
41e60 79 69 6e 67 20 69 74 2c 20 65 69 74 68 65 72 20 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 20 6f 72 0a ying.it,.either.commercially.or.
41e80 20 20 20 20 20 6e 6f 6e 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 2e 20 20 53 65 63 6f 6e 64 61 72 69 .....noncommercially...Secondari
41ea0 6c 79 2c 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 70 72 65 73 65 72 76 65 73 20 66 6f 72 20 74 ly,.this.License.preserves.for.t
41ec0 68 65 0a 20 20 20 20 20 61 75 74 68 6f 72 20 61 6e 64 20 70 75 62 6c 69 73 68 65 72 20 61 20 77 he......author.and.publisher.a.w
41ee0 61 79 20 74 6f 20 67 65 74 20 63 72 65 64 69 74 20 66 6f 72 20 74 68 65 69 72 20 77 6f 72 6b 2c ay.to.get.credit.for.their.work,
41f00 20 77 68 69 6c 65 20 6e 6f 74 0a 20 20 20 20 20 62 65 69 6e 67 20 63 6f 6e 73 69 64 65 72 65 64 .while.not......being.considered
41f20 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 6d .responsible.for.modifications.m
41f40 61 64 65 20 62 79 20 6f 74 68 65 72 73 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 4c 69 63 65 6e 73 ade.by.others........This.Licens
41f60 65 20 69 73 20 61 20 6b 69 6e 64 20 6f 66 20 e2 80 9c 63 6f 70 79 6c 65 66 74 e2 80 9d 2c 20 77 e.is.a.kind.of....copyleft...,.w
41f80 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 20 64 65 72 69 76 61 74 69 76 65 0a 20 20 20 20 20 hich.means.that.derivative......
41fa0 77 6f 72 6b 73 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 6d 75 73 74 20 74 68 65 6d 73 works.of.the.document.must.thems
41fc0 65 6c 76 65 73 20 62 65 20 66 72 65 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 73 65 6e 73 65 2e elves.be.free.in.the.same.sense.
41fe0 0a 20 20 20 20 20 49 74 20 63 6f 6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 47 4e 55 20 47 65 6e ......It.complements.the.GNU.Gen
42000 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 77 68 69 63 68 20 69 73 20 61 20 eral.Public.License,.which.is.a.
42020 63 6f 70 79 6c 65 66 74 0a 20 20 20 20 20 6c 69 63 65 6e 73 65 20 64 65 73 69 67 6e 65 64 20 66 copyleft......license.designed.f
42040 6f 72 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 0a 0a 20 20 20 20 20 57 65 20 68 61 76 65 20 or.free.software........We.have.
42060 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 6f 72 64 65 72 20 74 designed.this.License.in.order.t
42080 6f 20 75 73 65 20 69 74 20 66 6f 72 20 6d 61 6e 75 61 6c 73 20 66 6f 72 0a 20 20 20 20 20 66 72 o.use.it.for.manuals.for......fr
420a0 65 65 20 73 6f 66 74 77 61 72 65 2c 20 62 65 63 61 75 73 65 20 66 72 65 65 20 73 6f 66 74 77 61 ee.software,.because.free.softwa
420c0 72 65 20 6e 65 65 64 73 20 66 72 65 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3a 20 61 0a 20 re.needs.free.documentation:.a..
420e0 20 20 20 20 66 72 65 65 20 70 72 6f 67 72 61 6d 20 73 68 6f 75 6c 64 20 63 6f 6d 65 20 77 69 74 ....free.program.should.come.wit
42100 68 20 6d 61 6e 75 61 6c 73 20 70 72 6f 76 69 64 69 6e 67 20 74 68 65 20 73 61 6d 65 20 66 72 65 h.manuals.providing.the.same.fre
42120 65 64 6f 6d 73 0a 20 20 20 20 20 74 68 61 74 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 64 6f 65 edoms......that.the.software.doe
42140 73 2e 20 20 42 75 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 73 20 6e 6f 74 20 6c 69 6d 69 s...But.this.License.is.not.limi
42160 74 65 64 20 74 6f 0a 20 20 20 20 20 73 6f 66 74 77 61 72 65 20 6d 61 6e 75 61 6c 73 3b 20 69 74 ted.to......software.manuals;.it
42180 20 63 61 6e 20 62 65 20 75 73 65 64 20 66 6f 72 20 61 6e 79 20 74 65 78 74 75 61 6c 20 77 6f 72 .can.be.used.for.any.textual.wor
421a0 6b 2c 20 72 65 67 61 72 64 6c 65 73 73 0a 20 20 20 20 20 6f 66 20 73 75 62 6a 65 63 74 20 6d 61 k,.regardless......of.subject.ma
421c0 74 74 65 72 20 6f 72 20 77 68 65 74 68 65 72 20 69 74 20 69 73 20 70 75 62 6c 69 73 68 65 64 20 tter.or.whether.it.is.published.
421e0 61 73 20 61 20 70 72 69 6e 74 65 64 20 62 6f 6f 6b 2e 20 20 57 65 0a 20 20 20 20 20 72 65 63 6f as.a.printed.book...We......reco
42200 6d 6d 65 6e 64 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 70 72 69 6e 63 69 70 61 6c 6c 79 20 66 mmend.this.License.principally.f
42220 6f 72 20 77 6f 72 6b 73 20 77 68 6f 73 65 20 70 75 72 70 6f 73 65 20 69 73 0a 20 20 20 20 20 69 or.works.whose.purpose.is......i
42240 6e 73 74 72 75 63 74 69 6f 6e 20 6f 72 20 72 65 66 65 72 65 6e 63 65 2e 0a 0a 20 20 31 2e 20 41 nstruction.or.reference.....1..A
42260 50 50 4c 49 43 41 42 49 4c 49 54 59 20 41 4e 44 20 44 45 46 49 4e 49 54 49 4f 4e 53 0a 0a 20 20 PPLICABILITY.AND.DEFINITIONS....
42280 20 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 20 61 70 70 6c 69 65 73 20 74 6f 20 61 6e 79 20 6d ...This.License.applies.to.any.m
422a0 61 6e 75 61 6c 20 6f 72 20 6f 74 68 65 72 20 77 6f 72 6b 2c 20 69 6e 20 61 6e 79 20 6d 65 64 69 anual.or.other.work,.in.any.medi
422c0 75 6d 2c 0a 20 20 20 20 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 um,......that.contains.a.notice.
422e0 70 6c 61 63 65 64 20 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 73 placed.by.the.copyright.holder.s
42300 61 79 69 6e 67 20 69 74 20 63 61 6e 0a 20 20 20 20 20 62 65 20 64 69 73 74 72 69 62 75 74 65 64 aying.it.can......be.distributed
42320 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 .under.the.terms.of.this.License
42340 2e 20 20 53 75 63 68 20 61 20 6e 6f 74 69 63 65 0a 20 20 20 20 20 67 72 61 6e 74 73 20 61 20 77 ...Such.a.notice......grants.a.w
42360 6f 72 6c 64 2d 77 69 64 65 2c 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 20 6c 69 63 65 6e 73 65 2c orld-wide,.royalty-free.license,
42380 20 75 6e 6c 69 6d 69 74 65 64 20 69 6e 20 64 75 72 61 74 69 6f 6e 2c 0a 20 20 20 20 20 74 6f 20 .unlimited.in.duration,......to.
423a0 75 73 65 20 74 68 61 74 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 64 69 74 69 6f use.that.work.under.the.conditio
423c0 6e 73 20 73 74 61 74 65 64 20 68 65 72 65 69 6e 2e 20 20 54 68 65 0a 20 20 20 20 20 e2 80 9c 44 ns.stated.herein...The.........D
423e0 6f 63 75 6d 65 6e 74 e2 80 9d 2c 20 62 65 6c 6f 77 2c 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 ocument...,.below,.refers.to.any
42400 20 73 75 63 68 20 6d 61 6e 75 61 6c 20 6f 72 20 77 6f 72 6b 2e 20 20 41 6e 79 20 6d 65 6d 62 65 .such.manual.or.work...Any.membe
42420 72 0a 20 20 20 20 20 6f 66 20 74 68 65 20 70 75 62 6c 69 63 20 69 73 20 61 20 6c 69 63 65 6e 73 r......of.the.public.is.a.licens
42440 65 65 2c 20 61 6e 64 20 69 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 e2 80 9c 79 6f 75 e2 80 ee,.and.is.addressed.as....you..
42460 9d 2e 20 20 59 6f 75 20 61 63 63 65 70 74 0a 20 20 20 20 20 74 68 65 20 6c 69 63 65 6e 73 65 20 ....You.accept......the.license.
42480 69 66 20 79 6f 75 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 20 6f 72 20 64 69 73 74 72 69 62 75 74 if.you.copy,.modify.or.distribut
424a0 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 20 77 61 79 0a 20 20 20 20 20 72 65 71 75 69 72 69 e.the.work.in.a.way......requiri
424c0 6e 67 20 70 65 72 6d 69 73 73 69 6f 6e 20 75 6e 64 65 72 20 63 6f 70 79 72 69 67 68 74 20 6c 61 ng.permission.under.copyright.la
424e0 77 2e 0a 0a 20 20 20 20 20 41 20 e2 80 9c 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e e2 80 w........A....Modified.Version..
42500 9d 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 65 61 6e 73 20 61 6e 79 20 77 6f 72 6b ..of.the.Document.means.any.work
42520 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 20 6f 72 .containing.the......Document.or
42540 20 61 20 70 6f 72 74 69 6f 6e 20 6f 66 20 69 74 2c 20 65 69 74 68 65 72 20 63 6f 70 69 65 64 20 .a.portion.of.it,.either.copied.
42560 76 65 72 62 61 74 69 6d 2c 20 6f 72 20 77 69 74 68 0a 20 20 20 20 20 6d 6f 64 69 66 69 63 61 74 verbatim,.or.with......modificat
42580 69 6f 6e 73 20 61 6e 64 2f 6f 72 20 74 72 61 6e 73 6c 61 74 65 64 20 69 6e 74 6f 20 61 6e 6f 74 ions.and/or.translated.into.anot
425a0 68 65 72 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 20 20 20 41 20 e2 80 9c 53 65 63 6f 6e 64 61 her.language........A....Seconda
425c0 72 79 20 53 65 63 74 69 6f 6e e2 80 9d 20 69 73 20 61 20 6e 61 6d 65 64 20 61 70 70 65 6e 64 69 ry.Section....is.a.named.appendi
425e0 78 20 6f 72 20 61 20 66 72 6f 6e 74 2d 6d 61 74 74 65 72 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 x.or.a.front-matter.section.....
42600 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 74 68 61 74 20 64 65 61 6c 73 20 65 78 63 6c .of.the.Document.that.deals.excl
42620 75 73 69 76 65 6c 79 20 77 69 74 68 20 74 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 6f 66 usively.with.the.relationship.of
42640 20 74 68 65 0a 20 20 20 20 20 70 75 62 6c 69 73 68 65 72 73 20 6f 72 20 61 75 74 68 6f 72 73 20 .the......publishers.or.authors.
42660 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 74 6f 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 e2 of.the.Document.to.the.Document.
42680 80 99 73 20 6f 76 65 72 61 6c 6c 0a 20 20 20 20 20 73 75 62 6a 65 63 74 20 28 6f 72 20 74 6f 20 ..s.overall......subject.(or.to.
426a0 72 65 6c 61 74 65 64 20 6d 61 74 74 65 72 73 29 20 61 6e 64 20 63 6f 6e 74 61 69 6e 73 20 6e 6f related.matters).and.contains.no
426c0 74 68 69 6e 67 20 74 68 61 74 20 63 6f 75 6c 64 0a 20 20 20 20 20 66 61 6c 6c 20 64 69 72 65 63 thing.that.could......fall.direc
426e0 74 6c 79 20 77 69 74 68 69 6e 20 74 68 61 74 20 6f 76 65 72 61 6c 6c 20 73 75 62 6a 65 63 74 2e tly.within.that.overall.subject.
42700 20 20 28 54 68 75 73 2c 20 69 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 69 73 ..(Thus,.if.the.Document......is
42720 20 69 6e 20 70 61 72 74 20 61 20 74 65 78 74 62 6f 6f 6b 20 6f 66 20 6d 61 74 68 65 6d 61 74 69 .in.part.a.textbook.of.mathemati
42740 63 73 2c 20 61 20 53 65 63 6f 6e 64 61 72 79 20 53 65 63 74 69 6f 6e 20 6d 61 79 20 6e 6f 74 0a cs,.a.Secondary.Section.may.not.
42760 20 20 20 20 20 65 78 70 6c 61 69 6e 20 61 6e 79 20 6d 61 74 68 65 6d 61 74 69 63 73 2e 29 20 20 .....explain.any.mathematics.)..
42780 54 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 63 6f 75 6c 64 20 62 65 20 61 20 6d 61 74 74 The.relationship.could.be.a.matt
427a0 65 72 20 6f 66 0a 20 20 20 20 20 68 69 73 74 6f 72 69 63 61 6c 20 63 6f 6e 6e 65 63 74 69 6f 6e er.of......historical.connection
427c0 20 77 69 74 68 20 74 68 65 20 73 75 62 6a 65 63 74 20 6f 72 20 77 69 74 68 20 72 65 6c 61 74 65 .with.the.subject.or.with.relate
427e0 64 20 6d 61 74 74 65 72 73 2c 20 6f 72 0a 20 20 20 20 20 6f 66 20 6c 65 67 61 6c 2c 20 63 6f 6d d.matters,.or......of.legal,.com
42800 6d 65 72 63 69 61 6c 2c 20 70 68 69 6c 6f 73 6f 70 68 69 63 61 6c 2c 20 65 74 68 69 63 61 6c 20 mercial,.philosophical,.ethical.
42820 6f 72 20 70 6f 6c 69 74 69 63 61 6c 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 72 65 67 61 72 or.political.position......regar
42840 64 69 6e 67 20 74 68 65 6d 2e 0a 0a 20 20 20 20 20 54 68 65 20 e2 80 9c 49 6e 76 61 72 69 61 6e ding.them........The....Invarian
42860 74 20 53 65 63 74 69 6f 6e 73 e2 80 9d 20 61 72 65 20 63 65 72 74 61 69 6e 20 53 65 63 6f 6e 64 t.Sections....are.certain.Second
42880 61 72 79 20 53 65 63 74 69 6f 6e 73 20 77 68 6f 73 65 0a 20 20 20 20 20 74 69 74 6c 65 73 20 61 ary.Sections.whose......titles.a
428a0 72 65 20 64 65 73 69 67 6e 61 74 65 64 2c 20 61 73 20 62 65 69 6e 67 20 74 68 6f 73 65 20 6f 66 re.designated,.as.being.those.of
428c0 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2c 20 69 6e 20 74 68 65 0a 20 20 20 20 .Invariant.Sections,.in.the.....
428e0 20 6e 6f 74 69 63 65 20 74 68 61 74 20 73 61 79 73 20 74 68 61 74 20 74 68 65 20 44 6f 63 75 6d .notice.that.says.that.the.Docum
42900 65 6e 74 20 69 73 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e ent.is.released.under.this.Licen
42920 73 65 2e 0a 20 20 20 20 20 49 66 20 61 20 73 65 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 66 se.......If.a.section.does.not.f
42940 69 74 20 74 68 65 20 61 62 6f 76 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 53 65 63 6f 6e it.the.above.definition.of.Secon
42960 64 61 72 79 20 74 68 65 6e 20 69 74 0a 20 20 20 20 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 dary.then.it......is.not.allowed
42980 20 74 6f 20 62 65 20 64 65 73 69 67 6e 61 74 65 64 20 61 73 20 49 6e 76 61 72 69 61 6e 74 2e 20 .to.be.designated.as.Invariant..
429a0 20 54 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 61 79 0a 20 20 20 20 20 63 6f 6e 74 61 69 6e 20 7a .The.Document.may......contain.z
429c0 65 72 6f 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 2e 20 20 49 66 20 74 68 65 20 ero.Invariant.Sections...If.the.
429e0 44 6f 63 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 69 64 65 6e 74 69 66 79 0a 20 20 20 20 20 Document.does.not.identify......
42a00 61 6e 79 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 74 68 65 6e 20 74 68 65 72 any.Invariant.Sections.then.ther
42a20 65 20 61 72 65 20 6e 6f 6e 65 2e 0a 0a 20 20 20 20 20 54 68 65 20 e2 80 9c 43 6f 76 65 72 20 54 e.are.none........The....Cover.T
42a40 65 78 74 73 e2 80 9d 20 61 72 65 20 63 65 72 74 61 69 6e 20 73 68 6f 72 74 20 70 61 73 73 61 67 exts....are.certain.short.passag
42a60 65 73 20 6f 66 20 74 65 78 74 20 74 68 61 74 20 61 72 65 0a 20 20 20 20 20 6c 69 73 74 65 64 2c es.of.text.that.are......listed,
42a80 20 61 73 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 20 6f 72 20 42 61 63 6b 2d 43 6f .as.Front-Cover.Texts.or.Back-Co
42aa0 76 65 72 20 54 65 78 74 73 2c 20 69 6e 20 74 68 65 20 6e 6f 74 69 63 65 0a 20 20 20 20 20 74 68 ver.Texts,.in.the.notice......th
42ac0 61 74 20 73 61 79 73 20 74 68 61 74 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 72 65 6c at.says.that.the.Document.is.rel
42ae0 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 41 0a 20 20 20 eased.under.this.License...A....
42b00 20 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 20 6d 61 79 20 62 65 20 61 74 20 6d 6f 73 ..Front-Cover.Text.may.be.at.mos
42b20 74 20 35 20 77 6f 72 64 73 2c 20 61 6e 64 20 61 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 t.5.words,.and.a.Back-Cover.Text
42b40 20 6d 61 79 0a 20 20 20 20 20 62 65 20 61 74 20 6d 6f 73 74 20 32 35 20 77 6f 72 64 73 2e 0a 0a .may......be.at.most.25.words...
42b60 20 20 20 20 20 41 20 e2 80 9c 54 72 61 6e 73 70 61 72 65 6e 74 e2 80 9d 20 63 6f 70 79 20 6f 66 .....A....Transparent....copy.of
42b80 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 6d 65 61 6e 73 20 61 20 6d 61 63 68 69 6e 65 2d 72 65 .the.Document.means.a.machine-re
42ba0 61 64 61 62 6c 65 20 63 6f 70 79 2c 0a 20 20 20 20 20 72 65 70 72 65 73 65 6e 74 65 64 20 69 6e adable.copy,......represented.in
42bc0 20 61 20 66 6f 72 6d 61 74 20 77 68 6f 73 65 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 73 .a.format.whose.specification.is
42be0 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 20 20 20 20 20 67 65 6e 65 72 61 6c 20 70 .available.to.the......general.p
42c00 75 62 6c 69 63 2c 20 74 68 61 74 20 69 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 72 65 76 69 ublic,.that.is.suitable.for.revi
42c20 73 69 6e 67 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 73 74 72 61 69 67 68 74 66 sing.the.document......straightf
42c40 6f 72 77 61 72 64 6c 79 20 77 69 74 68 20 67 65 6e 65 72 69 63 20 74 65 78 74 20 65 64 69 74 6f orwardly.with.generic.text.edito
42c60 72 73 20 6f 72 20 28 66 6f 72 20 69 6d 61 67 65 73 20 63 6f 6d 70 6f 73 65 64 0a 20 20 20 20 20 rs.or.(for.images.composed......
42c80 6f 66 20 70 69 78 65 6c 73 29 20 67 65 6e 65 72 69 63 20 70 61 69 6e 74 20 70 72 6f 67 72 61 6d of.pixels).generic.paint.program
42ca0 73 20 6f 72 20 28 66 6f 72 20 64 72 61 77 69 6e 67 73 29 20 73 6f 6d 65 20 77 69 64 65 6c 79 0a s.or.(for.drawings).some.widely.
42cc0 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 64 72 61 77 69 6e 67 20 65 64 69 74 6f 72 2c 20 61 .....available.drawing.editor,.a
42ce0 6e 64 20 74 68 61 74 20 69 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 69 6e 70 75 74 20 74 6f nd.that.is.suitable.for.input.to
42d00 20 74 65 78 74 0a 20 20 20 20 20 66 6f 72 6d 61 74 74 65 72 73 20 6f 72 20 66 6f 72 20 61 75 74 .text......formatters.or.for.aut
42d20 6f 6d 61 74 69 63 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 74 6f 20 61 20 76 61 72 69 65 74 79 20 omatic.translation.to.a.variety.
42d40 6f 66 20 66 6f 72 6d 61 74 73 0a 20 20 20 20 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 69 6e 70 of.formats......suitable.for.inp
42d60 75 74 20 74 6f 20 74 65 78 74 20 66 6f 72 6d 61 74 74 65 72 73 2e 20 20 41 20 63 6f 70 79 20 6d ut.to.text.formatters...A.copy.m
42d80 61 64 65 20 69 6e 20 61 6e 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 54 72 61 6e 73 70 61 ade.in.an.otherwise......Transpa
42da0 72 65 6e 74 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 77 68 6f 73 65 20 6d 61 72 6b 75 70 2c 20 6f rent.file.format.whose.markup,.o
42dc0 72 20 61 62 73 65 6e 63 65 20 6f 66 20 6d 61 72 6b 75 70 2c 20 68 61 73 0a 20 20 20 20 20 62 65 r.absence.of.markup,.has......be
42de0 65 6e 20 61 72 72 61 6e 67 65 64 20 74 6f 20 74 68 77 61 72 74 20 6f 72 20 64 69 73 63 6f 75 72 en.arranged.to.thwart.or.discour
42e00 61 67 65 20 73 75 62 73 65 71 75 65 6e 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 62 79 0a 20 age.subsequent.modification.by..
42e20 20 20 20 20 72 65 61 64 65 72 73 20 69 73 20 6e 6f 74 20 54 72 61 6e 73 70 61 72 65 6e 74 2e 20 ....readers.is.not.Transparent..
42e40 20 41 6e 20 69 6d 61 67 65 20 66 6f 72 6d 61 74 20 69 73 20 6e 6f 74 20 54 72 61 6e 73 70 61 72 .An.image.format.is.not.Transpar
42e60 65 6e 74 20 69 66 0a 20 20 20 20 20 75 73 65 64 20 66 6f 72 20 61 6e 79 20 73 75 62 73 74 61 6e ent.if......used.for.any.substan
42e80 74 69 61 6c 20 61 6d 6f 75 6e 74 20 6f 66 20 74 65 78 74 2e 20 20 41 20 63 6f 70 79 20 74 68 61 tial.amount.of.text...A.copy.tha
42ea0 74 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 e2 80 9c 54 72 61 6e 73 70 61 72 65 6e 74 e2 80 9d 20 t.is.not.........Transparent....
42ec0 69 73 20 63 61 6c 6c 65 64 20 e2 80 9c 4f 70 61 71 75 65 e2 80 9d 2e 0a 0a 20 20 20 20 20 45 78 is.called....Opaque...........Ex
42ee0 61 6d 70 6c 65 73 20 6f 66 20 73 75 69 74 61 62 6c 65 20 66 6f 72 6d 61 74 73 20 66 6f 72 20 54 amples.of.suitable.formats.for.T
42f00 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 69 65 73 20 69 6e 63 6c 75 64 65 20 70 6c 61 69 6e 0a ransparent.copies.include.plain.
42f20 20 20 20 20 20 41 53 43 49 49 20 77 69 74 68 6f 75 74 20 6d 61 72 6b 75 70 2c 20 54 65 78 69 6e .....ASCII.without.markup,.Texin
42f40 66 6f 20 69 6e 70 75 74 20 66 6f 72 6d 61 74 2c 20 4c 61 54 65 58 20 69 6e 70 75 74 20 66 6f 72 fo.input.format,.LaTeX.input.for
42f60 6d 61 74 2c 0a 20 20 20 20 20 53 47 4d 4c 20 6f 72 20 58 4d 4c 20 75 73 69 6e 67 20 61 20 70 75 mat,......SGML.or.XML.using.a.pu
42f80 62 6c 69 63 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 44 54 44 2c 20 61 6e 64 20 73 74 61 6e 64 61 blicly.available.DTD,.and.standa
42fa0 72 64 2d 63 6f 6e 66 6f 72 6d 69 6e 67 0a 20 20 20 20 20 73 69 6d 70 6c 65 20 48 54 4d 4c 2c 20 rd-conforming......simple.HTML,.
42fc0 50 6f 73 74 53 63 72 69 70 74 20 6f 72 20 50 44 46 20 64 65 73 69 67 6e 65 64 20 66 6f 72 20 68 PostScript.or.PDF.designed.for.h
42fe0 75 6d 61 6e 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2e 0a 20 20 20 20 20 45 78 61 6d 70 6c 65 73 uman.modification.......Examples
43000 20 6f 66 20 74 72 61 6e 73 70 61 72 65 6e 74 20 69 6d 61 67 65 20 66 6f 72 6d 61 74 73 20 69 6e .of.transparent.image.formats.in
43020 63 6c 75 64 65 20 50 4e 47 2c 20 58 43 46 20 61 6e 64 20 4a 50 47 2e 0a 20 20 20 20 20 4f 70 61 clude.PNG,.XCF.and.JPG.......Opa
43040 71 75 65 20 66 6f 72 6d 61 74 73 20 69 6e 63 6c 75 64 65 20 70 72 6f 70 72 69 65 74 61 72 79 20 que.formats.include.proprietary.
43060 66 6f 72 6d 61 74 73 20 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 61 64 20 61 6e 64 0a 20 20 20 formats.that.can.be.read.and....
43080 20 20 65 64 69 74 65 64 20 6f 6e 6c 79 20 62 79 20 70 72 6f 70 72 69 65 74 61 72 79 20 77 6f 72 ..edited.only.by.proprietary.wor
430a0 64 20 70 72 6f 63 65 73 73 6f 72 73 2c 20 53 47 4d 4c 20 6f 72 20 58 4d 4c 20 66 6f 72 20 77 68 d.processors,.SGML.or.XML.for.wh
430c0 69 63 68 0a 20 20 20 20 20 74 68 65 20 44 54 44 20 61 6e 64 2f 6f 72 20 70 72 6f 63 65 73 73 69 ich......the.DTD.and/or.processi
430e0 6e 67 20 74 6f 6f 6c 73 20 61 72 65 20 6e 6f 74 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c ng.tools.are.not.generally.avail
43100 61 62 6c 65 2c 20 61 6e 64 0a 20 20 20 20 20 74 68 65 20 6d 61 63 68 69 6e 65 2d 67 65 6e 65 72 able,.and......the.machine-gener
43120 61 74 65 64 20 48 54 4d 4c 2c 20 50 6f 73 74 53 63 72 69 70 74 20 6f 72 20 50 44 46 20 70 72 6f ated.HTML,.PostScript.or.PDF.pro
43140 64 75 63 65 64 20 62 79 20 73 6f 6d 65 20 77 6f 72 64 0a 20 20 20 20 20 70 72 6f 63 65 73 73 6f duced.by.some.word......processo
43160 72 73 20 66 6f 72 20 6f 75 74 70 75 74 20 70 75 72 70 6f 73 65 73 20 6f 6e 6c 79 2e 0a 0a 20 20 rs.for.output.purposes.only.....
43180 20 20 20 54 68 65 20 e2 80 9c 54 69 74 6c 65 20 50 61 67 65 e2 80 9d 20 6d 65 61 6e 73 2c 20 66 ...The....Title.Page....means,.f
431a0 6f 72 20 61 20 70 72 69 6e 74 65 64 20 62 6f 6f 6b 2c 20 74 68 65 20 74 69 74 6c 65 20 70 61 67 or.a.printed.book,.the.title.pag
431c0 65 20 69 74 73 65 6c 66 2c 0a 20 20 20 20 20 70 6c 75 73 20 73 75 63 68 20 66 6f 6c 6c 6f 77 69 e.itself,......plus.such.followi
431e0 6e 67 20 70 61 67 65 73 20 61 73 20 61 72 65 20 6e 65 65 64 65 64 20 74 6f 20 68 6f 6c 64 2c 20 ng.pages.as.are.needed.to.hold,.
43200 6c 65 67 69 62 6c 79 2c 20 74 68 65 0a 20 20 20 20 20 6d 61 74 65 72 69 61 6c 20 74 68 69 73 20 legibly,.the......material.this.
43220 4c 69 63 65 6e 73 65 20 72 65 71 75 69 72 65 73 20 74 6f 20 61 70 70 65 61 72 20 69 6e 20 74 68 License.requires.to.appear.in.th
43240 65 20 74 69 74 6c 65 20 70 61 67 65 2e 20 20 46 6f 72 0a 20 20 20 20 20 77 6f 72 6b 73 20 69 6e e.title.page...For......works.in
43260 20 66 6f 72 6d 61 74 73 20 77 68 69 63 68 20 64 6f 20 6e 6f 74 20 68 61 76 65 20 61 6e 79 20 74 .formats.which.do.not.have.any.t
43280 69 74 6c 65 20 70 61 67 65 20 61 73 20 73 75 63 68 2c 20 e2 80 9c 54 69 74 6c 65 0a 20 20 20 20 itle.page.as.such,....Title.....
432a0 20 50 61 67 65 e2 80 9d 20 6d 65 61 6e 73 20 74 68 65 20 74 65 78 74 20 6e 65 61 72 20 74 68 65 .Page....means.the.text.near.the
432c0 20 6d 6f 73 74 20 70 72 6f 6d 69 6e 65 6e 74 20 61 70 70 65 61 72 61 6e 63 65 20 6f 66 20 74 68 .most.prominent.appearance.of.th
432e0 65 0a 20 20 20 20 20 77 6f 72 6b e2 80 99 73 20 74 69 74 6c 65 2c 20 70 72 65 63 65 64 69 6e 67 e......work...s.title,.preceding
43300 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74 68 .the.beginning.of.the.body.of.th
43320 65 20 74 65 78 74 2e 0a 0a 20 20 20 20 20 54 68 65 20 e2 80 9c 70 75 62 6c 69 73 68 65 72 e2 80 e.text........The....publisher..
43340 9d 20 6d 65 61 6e 73 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 72 20 65 6e 74 69 74 79 20 74 68 61 ..means.any.person.or.entity.tha
43360 74 20 64 69 73 74 72 69 62 75 74 65 73 20 63 6f 70 69 65 73 0a 20 20 20 20 20 6f 66 20 74 68 65 t.distributes.copies......of.the
43380 20 44 6f 63 75 6d 65 6e 74 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2e 0a 0a 20 20 20 20 20 41 .Document.to.the.public........A
433a0 20 73 65 63 74 69 6f 6e 20 e2 80 9c 45 6e 74 69 74 6c 65 64 20 58 59 5a e2 80 9d 20 6d 65 61 6e .section....Entitled.XYZ....mean
433c0 73 20 61 20 6e 61 6d 65 64 20 73 75 62 75 6e 69 74 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e s.a.named.subunit.of.the.Documen
433e0 74 0a 20 20 20 20 20 77 68 6f 73 65 20 74 69 74 6c 65 20 65 69 74 68 65 72 20 69 73 20 70 72 65 t......whose.title.either.is.pre
43400 63 69 73 65 6c 79 20 58 59 5a 20 6f 72 20 63 6f 6e 74 61 69 6e 73 20 58 59 5a 20 69 6e 20 70 61 cisely.XYZ.or.contains.XYZ.in.pa
43420 72 65 6e 74 68 65 73 65 73 0a 20 20 20 20 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 78 74 20 74 68 rentheses......following.text.th
43440 61 74 20 74 72 61 6e 73 6c 61 74 65 73 20 58 59 5a 20 69 6e 20 61 6e 6f 74 68 65 72 20 6c 61 6e at.translates.XYZ.in.another.lan
43460 67 75 61 67 65 2e 20 20 28 48 65 72 65 20 58 59 5a 0a 20 20 20 20 20 73 74 61 6e 64 73 20 66 6f guage...(Here.XYZ......stands.fo
43480 72 20 61 20 73 70 65 63 69 66 69 63 20 73 65 63 74 69 6f 6e 20 6e 61 6d 65 20 6d 65 6e 74 69 6f r.a.specific.section.name.mentio
434a0 6e 65 64 20 62 65 6c 6f 77 2c 20 73 75 63 68 20 61 73 0a 20 20 20 20 20 e2 80 9c 41 63 6b 6e 6f ned.below,.such.as.........Ackno
434c0 77 6c 65 64 67 65 6d 65 6e 74 73 e2 80 9d 2c 20 e2 80 9c 44 65 64 69 63 61 74 69 6f 6e 73 e2 80 wledgements...,....Dedications..
434e0 9d 2c 20 e2 80 9c 45 6e 64 6f 72 73 65 6d 65 6e 74 73 e2 80 9d 2c 20 6f 72 20 e2 80 9c 48 69 73 .,....Endorsements...,.or....His
43500 74 6f 72 79 e2 80 9d 2e 29 0a 20 20 20 20 20 54 6f 20 e2 80 9c 50 72 65 73 65 72 76 65 20 74 68 tory....)......To....Preserve.th
43520 65 20 54 69 74 6c 65 e2 80 9d 20 6f 66 20 73 75 63 68 20 61 20 73 65 63 74 69 6f 6e 20 77 68 65 e.Title....of.such.a.section.whe
43540 6e 20 79 6f 75 20 6d 6f 64 69 66 79 20 74 68 65 0a 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 20 6d n.you.modify.the......Document.m
43560 65 61 6e 73 20 74 68 61 74 20 69 74 20 72 65 6d 61 69 6e 73 20 61 20 73 65 63 74 69 6f 6e 20 e2 eans.that.it.remains.a.section..
43580 80 9c 45 6e 74 69 74 6c 65 64 20 58 59 5a e2 80 9d 20 61 63 63 6f 72 64 69 6e 67 0a 20 20 20 20 ..Entitled.XYZ....according.....
435a0 20 74 6f 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 54 68 65 20 44 .to.this.definition........The.D
435c0 6f 63 75 6d 65 6e 74 20 6d 61 79 20 69 6e 63 6c 75 64 65 20 57 61 72 72 61 6e 74 79 20 44 69 73 ocument.may.include.Warranty.Dis
435e0 63 6c 61 69 6d 65 72 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6e 6f 74 69 63 65 0a 20 20 20 20 claimers.next.to.the.notice.....
43600 20 77 68 69 63 68 20 73 74 61 74 65 73 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 .which.states.that.this.License.
43620 61 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2e 20 20 54 68 65 73 65 0a applies.to.the.Document...These.
43640 20 20 20 20 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d 65 72 73 20 61 72 65 20 63 6f .....Warranty.Disclaimers.are.co
43660 6e 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 62 79 20 72 65 66 65 72 nsidered.to.be.included.by.refer
43680 65 6e 63 65 20 69 6e 0a 20 20 20 20 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 62 75 74 20 6f ence.in......this.License,.but.o
436a0 6e 6c 79 20 61 73 20 72 65 67 61 72 64 73 20 64 69 73 63 6c 61 69 6d 69 6e 67 20 77 61 72 72 61 nly.as.regards.disclaiming.warra
436c0 6e 74 69 65 73 3a 20 61 6e 79 20 6f 74 68 65 72 0a 20 20 20 20 20 69 6d 70 6c 69 63 61 74 69 6f nties:.any.other......implicatio
436e0 6e 20 74 68 61 74 20 74 68 65 73 65 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d 65 72 n.that.these.Warranty.Disclaimer
43700 73 20 6d 61 79 20 68 61 76 65 20 69 73 20 76 6f 69 64 20 61 6e 64 0a 20 20 20 20 20 68 61 73 20 s.may.have.is.void.and......has.
43720 6e 6f 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 74 68 69 73 no.effect.on.the.meaning.of.this
43740 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 32 2e 20 56 45 52 42 41 54 49 4d 20 43 4f 50 59 49 4e 47 .License.....2..VERBATIM.COPYING
43760 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 .......You.may.copy.and.distribu
43780 74 65 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 6e 20 61 6e 79 20 6d 65 64 69 75 6d 2c 20 65 te.the.Document.in.any.medium,.e
437a0 69 74 68 65 72 0a 20 20 20 20 20 63 6f 6d 6d 65 72 63 69 61 6c 6c 79 20 6f 72 20 6e 6f 6e 63 6f ither......commercially.or.nonco
437c0 6d 6d 65 72 63 69 61 6c 6c 79 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 69 73 20 4c mmercially,.provided.that.this.L
437e0 69 63 65 6e 73 65 2c 20 74 68 65 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 icense,.the......copyright.notic
43800 65 73 2c 20 61 6e 64 20 74 68 65 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 73 61 79 69 6e es,.and.the.license.notice.sayin
43820 67 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 20 20 20 20 20 61 70 70 6c 69 65 73 20 74 6f 20 74 g.this.License......applies.to.t
43840 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 72 65 20 72 65 70 72 6f 64 75 63 65 64 20 69 6e 20 61 6c he.Document.are.reproduced.in.al
43860 6c 20 63 6f 70 69 65 73 2c 20 61 6e 64 20 74 68 61 74 20 79 6f 75 0a 20 20 20 20 20 61 64 64 20 l.copies,.and.that.you......add.
43880 6e 6f 20 6f 74 68 65 72 20 63 6f 6e 64 69 74 69 6f 6e 73 20 77 68 61 74 73 6f 65 76 65 72 20 74 no.other.conditions.whatsoever.t
438a0 6f 20 74 68 6f 73 65 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 0a 20 20 o.those.of.this.License...You...
438c0 20 20 20 6d 61 79 20 6e 6f 74 20 75 73 65 20 74 65 63 68 6e 69 63 61 6c 20 6d 65 61 73 75 72 65 ...may.not.use.technical.measure
438e0 73 20 74 6f 20 6f 62 73 74 72 75 63 74 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 72 65 61 s.to.obstruct.or.control.the.rea
43900 64 69 6e 67 0a 20 20 20 20 20 6f 72 20 66 75 72 74 68 65 72 20 63 6f 70 79 69 6e 67 20 6f 66 20 ding......or.further.copying.of.
43920 74 68 65 20 63 6f 70 69 65 73 20 79 6f 75 20 6d 61 6b 65 20 6f 72 20 64 69 73 74 72 69 62 75 74 the.copies.you.make.or.distribut
43940 65 2e 20 20 48 6f 77 65 76 65 72 2c 0a 20 20 20 20 20 79 6f 75 20 6d 61 79 20 61 63 63 65 70 74 e...However,......you.may.accept
43960 20 63 6f 6d 70 65 6e 73 61 74 69 6f 6e 20 69 6e 20 65 78 63 68 61 6e 67 65 20 66 6f 72 20 63 6f .compensation.in.exchange.for.co
43980 70 69 65 73 2e 20 20 49 66 20 79 6f 75 0a 20 20 20 20 20 64 69 73 74 72 69 62 75 74 65 20 61 20 pies...If.you......distribute.a.
439a0 6c 61 72 67 65 20 65 6e 6f 75 67 68 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 70 69 65 73 20 79 6f large.enough.number.of.copies.yo
439c0 75 20 6d 75 73 74 20 61 6c 73 6f 20 66 6f 6c 6c 6f 77 20 74 68 65 0a 20 20 20 20 20 63 6f 6e 64 u.must.also.follow.the......cond
439e0 69 74 69 6f 6e 73 20 69 6e 20 73 65 63 74 69 6f 6e 20 33 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d itions.in.section.3........You.m
43a00 61 79 20 61 6c 73 6f 20 6c 65 6e 64 20 63 6f 70 69 65 73 2c 20 75 6e 64 65 72 20 74 68 65 20 73 ay.also.lend.copies,.under.the.s
43a20 61 6d 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 74 61 74 65 64 20 61 62 6f 76 65 2c 0a 20 20 20 ame.conditions.stated.above,....
43a40 20 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 70 75 62 6c 69 63 6c 79 20 64 69 73 70 6c 61 79 20 63 ..and.you.may.publicly.display.c
43a60 6f 70 69 65 73 2e 0a 0a 20 20 33 2e 20 43 4f 50 59 49 4e 47 20 49 4e 20 51 55 41 4e 54 49 54 59 opies.....3..COPYING.IN.QUANTITY
43a80 0a 0a 20 20 20 20 20 49 66 20 79 6f 75 20 70 75 62 6c 69 73 68 20 70 72 69 6e 74 65 64 20 63 6f .......If.you.publish.printed.co
43aa0 70 69 65 73 20 28 6f 72 20 63 6f 70 69 65 73 20 69 6e 20 6d 65 64 69 61 20 74 68 61 74 20 63 6f pies.(or.copies.in.media.that.co
43ac0 6d 6d 6f 6e 6c 79 0a 20 20 20 20 20 68 61 76 65 20 70 72 69 6e 74 65 64 20 63 6f 76 65 72 73 29 mmonly......have.printed.covers)
43ae0 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 6e 75 6d 62 65 72 69 6e 67 20 6d 6f 72 65 .of.the.Document,.numbering.more
43b00 20 74 68 61 6e 20 31 30 30 2c 20 61 6e 64 0a 20 20 20 20 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 .than.100,.and......the.Document
43b20 e2 80 99 73 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 72 65 71 75 69 72 65 73 20 43 6f 76 ...s.license.notice.requires.Cov
43b40 65 72 20 54 65 78 74 73 2c 20 79 6f 75 20 6d 75 73 74 0a 20 20 20 20 20 65 6e 63 6c 6f 73 65 20 er.Texts,.you.must......enclose.
43b60 74 68 65 20 63 6f 70 69 65 73 20 69 6e 20 63 6f 76 65 72 73 20 74 68 61 74 20 63 61 72 72 79 2c the.copies.in.covers.that.carry,
43b80 20 63 6c 65 61 72 6c 79 20 61 6e 64 20 6c 65 67 69 62 6c 79 2c 20 61 6c 6c 0a 20 20 20 20 20 74 .clearly.and.legibly,.all......t
43ba0 68 65 73 65 20 43 6f 76 65 72 20 54 65 78 74 73 3a 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 hese.Cover.Texts:.Front-Cover.Te
43bc0 78 74 73 20 6f 6e 20 74 68 65 20 66 72 6f 6e 74 20 63 6f 76 65 72 2c 20 61 6e 64 0a 20 20 20 20 xts.on.the.front.cover,.and.....
43be0 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 20 6f 6e 20 74 68 65 20 62 61 63 6b 20 63 6f .Back-Cover.Texts.on.the.back.co
43c00 76 65 72 2e 20 20 42 6f 74 68 20 63 6f 76 65 72 73 20 6d 75 73 74 20 61 6c 73 6f 20 63 6c 65 61 ver...Both.covers.must.also.clea
43c20 72 6c 79 0a 20 20 20 20 20 61 6e 64 20 6c 65 67 69 62 6c 79 20 69 64 65 6e 74 69 66 79 20 79 6f rly......and.legibly.identify.yo
43c40 75 20 61 73 20 74 68 65 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 73 65 20 63 6f 70 69 u.as.the.publisher.of.these.copi
43c60 65 73 2e 20 20 54 68 65 0a 20 20 20 20 20 66 72 6f 6e 74 20 63 6f 76 65 72 20 6d 75 73 74 20 70 es...The......front.cover.must.p
43c80 72 65 73 65 6e 74 20 74 68 65 20 66 75 6c 6c 20 74 69 74 6c 65 20 77 69 74 68 20 61 6c 6c 20 77 resent.the.full.title.with.all.w
43ca0 6f 72 64 73 20 6f 66 20 74 68 65 20 74 69 74 6c 65 0a 20 20 20 20 20 65 71 75 61 6c 6c 79 20 70 ords.of.the.title......equally.p
43cc0 72 6f 6d 69 6e 65 6e 74 20 61 6e 64 20 76 69 73 69 62 6c 65 2e 20 20 59 6f 75 20 6d 61 79 20 61 rominent.and.visible...You.may.a
43ce0 64 64 20 6f 74 68 65 72 20 6d 61 74 65 72 69 61 6c 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 63 6f dd.other.material.on.the......co
43d00 76 65 72 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 2e 20 20 43 6f 70 79 69 6e 67 20 77 69 74 68 20 vers.in.addition...Copying.with.
43d20 63 68 61 6e 67 65 73 20 6c 69 6d 69 74 65 64 20 74 6f 20 74 68 65 20 63 6f 76 65 72 73 2c 20 61 changes.limited.to.the.covers,.a
43d40 73 0a 20 20 20 20 20 6c 6f 6e 67 20 61 73 20 74 68 65 79 20 70 72 65 73 65 72 76 65 20 74 68 65 s......long.as.they.preserve.the
43d60 20 74 69 74 6c 65 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 6e 64 20 73 61 74 69 73 .title.of.the.Document.and.satis
43d80 66 79 20 74 68 65 73 65 0a 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 20 63 61 6e 20 62 65 fy.these......conditions,.can.be
43da0 20 74 72 65 61 74 65 64 20 61 73 20 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 20 69 6e 20 .treated.as.verbatim.copying.in.
43dc0 6f 74 68 65 72 20 72 65 73 70 65 63 74 73 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 72 65 71 other.respects........If.the.req
43de0 75 69 72 65 64 20 74 65 78 74 73 20 66 6f 72 20 65 69 74 68 65 72 20 63 6f 76 65 72 20 61 72 65 uired.texts.for.either.cover.are
43e00 20 74 6f 6f 20 76 6f 6c 75 6d 69 6e 6f 75 73 20 74 6f 20 66 69 74 0a 20 20 20 20 20 6c 65 67 69 .too.voluminous.to.fit......legi
43e20 62 6c 79 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 75 74 20 74 68 65 20 66 69 72 73 74 20 6f 6e bly,.you.should.put.the.first.on
43e40 65 73 20 6c 69 73 74 65 64 20 28 61 73 20 6d 61 6e 79 20 61 73 20 66 69 74 0a 20 20 20 20 20 72 es.listed.(as.many.as.fit......r
43e60 65 61 73 6f 6e 61 62 6c 79 29 20 6f 6e 20 74 68 65 20 61 63 74 75 61 6c 20 63 6f 76 65 72 2c 20 easonably).on.the.actual.cover,.
43e80 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 72 65 73 74 20 6f 6e 74 6f 0a 20 20 20 20 20 and.continue.the.rest.onto......
43ea0 61 64 6a 61 63 65 6e 74 20 70 61 67 65 73 2e 0a 0a 20 20 20 20 20 49 66 20 79 6f 75 20 70 75 62 adjacent.pages........If.you.pub
43ec0 6c 69 73 68 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 4f 70 61 71 75 65 20 63 6f 70 69 65 73 lish.or.distribute.Opaque.copies
43ee0 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 6e 75 6d 62 65 72 69 6e 67 20 .of.the.Document......numbering.
43f00 6d 6f 72 65 20 74 68 61 6e 20 31 30 30 2c 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 69 more.than.100,.you.must.either.i
43f20 6e 63 6c 75 64 65 20 61 20 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 0a 20 20 20 20 20 54 nclude.a.machine-readable......T
43f40 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 79 20 61 6c 6f 6e 67 20 77 69 74 68 20 65 61 63 68 20 ransparent.copy.along.with.each.
43f60 4f 70 61 71 75 65 20 63 6f 70 79 2c 20 6f 72 20 73 74 61 74 65 20 69 6e 20 6f 72 20 77 69 74 68 Opaque.copy,.or.state.in.or.with
43f80 0a 20 20 20 20 20 65 61 63 68 20 4f 70 61 71 75 65 20 63 6f 70 79 20 61 20 63 6f 6d 70 75 74 65 ......each.Opaque.copy.a.compute
43fa0 72 2d 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 r-network.location.from.which.th
43fc0 65 20 67 65 6e 65 72 61 6c 0a 20 20 20 20 20 6e 65 74 77 6f 72 6b 2d 75 73 69 6e 67 20 70 75 62 e.general......network-using.pub
43fe0 6c 69 63 20 68 61 73 20 61 63 63 65 73 73 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 75 73 69 6e 67 lic.has.access.to.download.using
44000 20 70 75 62 6c 69 63 2d 73 74 61 6e 64 61 72 64 0a 20 20 20 20 20 6e 65 74 77 6f 72 6b 20 70 72 .public-standard......network.pr
44020 6f 74 6f 63 6f 6c 73 20 61 20 63 6f 6d 70 6c 65 74 65 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 otocols.a.complete.Transparent.c
44040 6f 70 79 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 66 72 65 65 0a 20 20 20 20 20 6f opy.of.the.Document,.free......o
44060 66 20 61 64 64 65 64 20 6d 61 74 65 72 69 61 6c 2e 20 20 49 66 20 79 6f 75 20 75 73 65 20 74 68 f.added.material...If.you.use.th
44080 65 20 6c 61 74 74 65 72 20 6f 70 74 69 6f 6e 2c 20 79 6f 75 20 6d 75 73 74 20 74 61 6b 65 0a 20 e.latter.option,.you.must.take..
440a0 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 79 20 70 72 75 64 65 6e 74 20 73 74 65 70 73 2c 20 77 68 ....reasonably.prudent.steps,.wh
440c0 65 6e 20 79 6f 75 20 62 65 67 69 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 66 20 4f 70 61 en.you.begin.distribution.of.Opa
440e0 71 75 65 0a 20 20 20 20 20 63 6f 70 69 65 73 20 69 6e 20 71 75 61 6e 74 69 74 79 2c 20 74 6f 20 que......copies.in.quantity,.to.
44100 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 69 73 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 ensure.that.this.Transparent.cop
44120 79 20 77 69 6c 6c 0a 20 20 20 20 20 72 65 6d 61 69 6e 20 74 68 75 73 20 61 63 63 65 73 73 69 62 y.will......remain.thus.accessib
44140 6c 65 20 61 74 20 74 68 65 20 73 74 61 74 65 64 20 6c 6f 63 61 74 69 6f 6e 20 75 6e 74 69 6c 20 le.at.the.stated.location.until.
44160 61 74 20 6c 65 61 73 74 20 6f 6e 65 0a 20 20 20 20 20 79 65 61 72 20 61 66 74 65 72 20 74 68 65 at.least.one......year.after.the
44180 20 6c 61 73 74 20 74 69 6d 65 20 79 6f 75 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 20 4f 70 61 .last.time.you.distribute.an.Opa
441a0 71 75 65 20 63 6f 70 79 20 28 64 69 72 65 63 74 6c 79 20 6f 72 0a 20 20 20 20 20 74 68 72 6f 75 que.copy.(directly.or......throu
441c0 67 68 20 79 6f 75 72 20 61 67 65 6e 74 73 20 6f 72 20 72 65 74 61 69 6c 65 72 73 29 20 6f 66 20 gh.your.agents.or.retailers).of.
441e0 74 68 61 74 20 65 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2e 0a 0a 20 20 20 that.edition.to.the.public......
44200 20 20 49 74 20 69 73 20 72 65 71 75 65 73 74 65 64 2c 20 62 75 74 20 6e 6f 74 20 72 65 71 75 69 ..It.is.requested,.but.not.requi
44220 72 65 64 2c 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 74 61 63 74 20 74 68 65 20 61 75 74 68 6f 72 red,.that.you.contact.the.author
44240 73 20 6f 66 0a 20 20 20 20 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 77 65 6c 6c 20 62 65 66 6f s.of......the.Document.well.befo
44260 72 65 20 72 65 64 69 73 74 72 69 62 75 74 69 6e 67 20 61 6e 79 20 6c 61 72 67 65 20 6e 75 6d 62 re.redistributing.any.large.numb
44280 65 72 20 6f 66 20 63 6f 70 69 65 73 2c 0a 20 20 20 20 20 74 6f 20 67 69 76 65 20 74 68 65 6d 20 er.of.copies,......to.give.them.
442a0 61 20 63 68 61 6e 63 65 20 74 6f 20 70 72 6f 76 69 64 65 20 79 6f 75 20 77 69 74 68 20 61 6e 20 a.chance.to.provide.you.with.an.
442c0 75 70 64 61 74 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 0a 20 20 20 20 20 44 6f 63 75 updated.version.of.the......Docu
442e0 6d 65 6e 74 2e 0a 0a 20 20 34 2e 20 4d 4f 44 49 46 49 43 41 54 49 4f 4e 53 0a 0a 20 20 20 20 20 ment.....4..MODIFICATIONS.......
44300 59 6f 75 20 6d 61 79 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 61 20 4d 6f You.may.copy.and.distribute.a.Mo
44320 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 dified.Version.of.the.Document..
44340 20 20 20 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 73 65 63 74 ....under.the.conditions.of.sect
44360 69 6f 6e 73 20 32 20 61 6e 64 20 33 20 61 62 6f 76 65 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 ions.2.and.3.above,.provided.tha
44380 74 20 79 6f 75 0a 20 20 20 20 20 72 65 6c 65 61 73 65 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 t.you......release.the.Modified.
443a0 56 65 72 73 69 6f 6e 20 75 6e 64 65 72 20 70 72 65 63 69 73 65 6c 79 20 74 68 69 73 20 4c 69 63 Version.under.precisely.this.Lic
443c0 65 6e 73 65 2c 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 4d 6f 64 69 66 69 65 64 20 56 65 72 ense,.with.the......Modified.Ver
443e0 73 69 6f 6e 20 66 69 6c 6c 69 6e 67 20 74 68 65 20 72 6f 6c 65 20 6f 66 20 74 68 65 20 44 6f 63 sion.filling.the.role.of.the.Doc
44400 75 6d 65 6e 74 2c 20 74 68 75 73 20 6c 69 63 65 6e 73 69 6e 67 0a 20 20 20 20 20 64 69 73 74 72 ument,.thus.licensing......distr
44420 69 62 75 74 69 6f 6e 20 61 6e 64 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 ibution.and.modification.of.the.
44440 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 74 6f 20 77 68 6f 65 76 65 72 0a 20 20 20 20 Modified.Version.to.whoever.....
44460 20 70 6f 73 73 65 73 73 65 73 20 61 20 63 6f 70 79 20 6f 66 20 69 74 2e 20 20 49 6e 20 61 64 64 .possesses.a.copy.of.it...In.add
44480 69 74 69 6f 6e 2c 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 ition,.you.must.do.these.things.
444a0 69 6e 0a 20 20 20 20 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 3a 0a 0a 20 in......the.Modified.Version:...
444c0 20 20 20 20 20 20 41 2e 20 55 73 65 20 69 6e 20 74 68 65 20 54 69 74 6c 65 20 50 61 67 65 20 28 ......A..Use.in.the.Title.Page.(
444e0 61 6e 64 20 6f 6e 20 74 68 65 20 63 6f 76 65 72 73 2c 20 69 66 20 61 6e 79 29 20 61 20 74 69 74 and.on.the.covers,.if.any).a.tit
44500 6c 65 0a 20 20 20 20 20 20 20 20 20 20 64 69 73 74 69 6e 63 74 20 66 72 6f 6d 20 74 68 61 74 20 le...........distinct.from.that.
44520 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 66 72 6f 6d 20 74 68 6f 73 65 20 of.the.Document,.and.from.those.
44540 6f 66 20 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 20 20 20 20 20 76 65 72 73 69 6f 6e 73 20 28 of.previous...........versions.(
44560 77 68 69 63 68 20 73 68 6f 75 6c 64 2c 20 69 66 20 74 68 65 72 65 20 77 65 72 65 20 61 6e 79 2c which.should,.if.there.were.any,
44580 20 62 65 20 6c 69 73 74 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 48 69 73 74 .be.listed.in.the...........Hist
445a0 6f 72 79 20 73 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 29 2e 20 20 59 ory.section.of.the.Document)...Y
445c0 6f 75 20 6d 61 79 20 75 73 65 20 74 68 65 20 73 61 6d 65 20 74 69 74 6c 65 0a 20 20 20 20 20 20 ou.may.use.the.same.title.......
445e0 20 20 20 20 61 73 20 61 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 20 69 66 20 74 68 65 ....as.a.previous.version.if.the
44600 20 6f 72 69 67 69 6e 61 6c 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 61 74 0a 20 20 20 20 .original.publisher.of.that.....
44620 20 20 20 20 20 20 76 65 72 73 69 6f 6e 20 67 69 76 65 73 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a ......version.gives.permission..
44640 0a 20 20 20 20 20 20 20 42 2e 20 4c 69 73 74 20 6f 6e 20 74 68 65 20 54 69 74 6c 65 20 50 61 67 ........B..List.on.the.Title.Pag
44660 65 2c 20 61 73 20 61 75 74 68 6f 72 73 2c 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 70 65 72 73 6f e,.as.authors,.one.or.more.perso
44680 6e 73 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 65 6e 74 69 74 69 65 73 20 72 65 73 70 6f 6e 73 ns.or...........entities.respons
446a0 69 62 6c 65 20 66 6f 72 20 61 75 74 68 6f 72 73 68 69 70 20 6f 66 20 74 68 65 20 6d 6f 64 69 66 ible.for.authorship.of.the.modif
446c0 69 63 61 74 69 6f 6e 73 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 20 4d 6f 64 69 66 69 ications.in...........the.Modifi
446e0 65 64 20 56 65 72 73 69 6f 6e 2c 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 61 74 20 6c 65 61 ed.Version,.together.with.at.lea
44700 73 74 20 66 69 76 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 63 69 70 st.five.of.the...........princip
44720 61 6c 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 28 61 6c 6c 20 al.authors.of.the.Document.(all.
44740 6f 66 20 69 74 73 20 70 72 69 6e 63 69 70 61 6c 0a 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f of.its.principal...........autho
44760 72 73 2c 20 69 66 20 69 74 20 68 61 73 20 66 65 77 65 72 20 74 68 61 6e 20 66 69 76 65 29 2c 20 rs,.if.it.has.fewer.than.five),.
44780 75 6e 6c 65 73 73 20 74 68 65 79 20 72 65 6c 65 61 73 65 20 79 6f 75 0a 20 20 20 20 20 20 20 20 unless.they.release.you.........
447a0 20 20 66 72 6f 6d 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 0a 0a 20 20 20 20 20 20 ..from.this.requirement.........
447c0 20 43 2e 20 53 74 61 74 65 20 6f 6e 20 74 68 65 20 54 69 74 6c 65 20 70 61 67 65 20 74 68 65 20 .C..State.on.the.Title.page.the.
447e0 6e 61 6d 65 20 6f 66 20 74 68 65 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 0a 20 20 20 name.of.the.publisher.of.the....
44800 20 20 20 20 20 20 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2c 20 61 73 20 74 68 65 20 .......Modified.Version,.as.the.
44820 70 75 62 6c 69 73 68 65 72 2e 0a 0a 20 20 20 20 20 20 20 44 2e 20 50 72 65 73 65 72 76 65 20 61 publisher..........D..Preserve.a
44840 6c 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 20 6f 66 20 74 68 65 20 ll.the.copyright.notices.of.the.
44860 44 6f 63 75 6d 65 6e 74 2e 0a 0a 20 20 20 20 20 20 20 45 2e 20 41 64 64 20 61 6e 20 61 70 70 72 Document..........E..Add.an.appr
44880 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 66 6f 72 20 79 6f 75 opriate.copyright.notice.for.you
448a0 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 61 64 6a 61 63 65 r.modifications...........adjace
448c0 6e 74 20 74 6f 20 74 68 65 20 6f 74 68 65 72 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 nt.to.the.other.copyright.notice
448e0 73 2e 0a 0a 20 20 20 20 20 20 20 46 2e 20 49 6e 63 6c 75 64 65 2c 20 69 6d 6d 65 64 69 61 74 65 s..........F..Include,.immediate
44900 6c 79 20 61 66 74 65 72 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 73 2c 20 ly.after.the.copyright.notices,.
44920 61 20 6c 69 63 65 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 6e 6f 74 69 63 65 20 67 69 76 69 6e a.license...........notice.givin
44940 67 20 74 68 65 20 70 75 62 6c 69 63 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 75 73 65 20 74 g.the.public.permission.to.use.t
44960 68 65 20 4d 6f 64 69 66 69 65 64 0a 20 20 20 20 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 75 6e he.Modified...........Version.un
44980 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 69 der.the.terms.of.this.License,.i
449a0 6e 20 74 68 65 20 66 6f 72 6d 20 73 68 6f 77 6e 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 74 68 n.the.form.shown.in...........th
449c0 65 20 41 64 64 65 6e 64 75 6d 20 62 65 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 47 2e 20 50 72 65 e.Addendum.below..........G..Pre
449e0 73 65 72 76 65 20 69 6e 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 74 68 65 serve.in.that.license.notice.the
44a00 20 66 75 6c 6c 20 6c 69 73 74 73 20 6f 66 20 49 6e 76 61 72 69 61 6e 74 0a 20 20 20 20 20 20 20 .full.lists.of.Invariant........
44a20 20 20 20 53 65 63 74 69 6f 6e 73 20 61 6e 64 20 72 65 71 75 69 72 65 64 20 43 6f 76 65 72 20 54 ...Sections.and.required.Cover.T
44a40 65 78 74 73 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 e2 80 99 73 0a 20 exts.given.in.the.Document...s..
44a60 20 20 20 20 20 20 20 20 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 20 20 20 20 .........license.notice.........
44a80 20 48 2e 20 49 6e 63 6c 75 64 65 20 61 6e 20 75 6e 61 6c 74 65 72 65 64 20 63 6f 70 79 20 6f 66 .H..Include.an.unaltered.copy.of
44aa0 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 20 20 49 2e 20 50 72 65 73 65 72 .this.License..........I..Preser
44ac0 76 65 20 74 68 65 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 e2 80 9c 48 69 73 74 6f ve.the.section.Entitled....Histo
44ae0 72 79 e2 80 9d 2c 20 50 72 65 73 65 72 76 65 20 69 74 73 20 54 69 74 6c 65 2c 0a 20 20 20 20 20 ry...,.Preserve.its.Title,......
44b00 20 20 20 20 20 61 6e 64 20 61 64 64 20 74 6f 20 69 74 20 61 6e 20 69 74 65 6d 20 73 74 61 74 69 .....and.add.to.it.an.item.stati
44b20 6e 67 20 61 74 20 6c 65 61 73 74 20 74 68 65 20 74 69 74 6c 65 2c 20 79 65 61 72 2c 20 6e 65 77 ng.at.least.the.title,.year,.new
44b40 0a 20 20 20 20 20 20 20 20 20 20 61 75 74 68 6f 72 73 2c 20 61 6e 64 20 70 75 62 6c 69 73 68 65 ...........authors,.and.publishe
44b60 72 20 6f 66 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 61 73 20 67 69 76 r.of.the.Modified.Version.as.giv
44b80 65 6e 20 6f 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 54 69 74 6c 65 20 50 61 67 65 2e 20 en.on.the...........Title.Page..
44ba0 20 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 .If.there.is.no.section.Entitled
44bc0 20 e2 80 9c 48 69 73 74 6f 72 79 e2 80 9d 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 ....History....in.the...........
44be0 44 6f 63 75 6d 65 6e 74 2c 20 63 72 65 61 74 65 20 6f 6e 65 20 73 74 61 74 69 6e 67 20 74 68 65 Document,.create.one.stating.the
44c00 20 74 69 74 6c 65 2c 20 79 65 61 72 2c 20 61 75 74 68 6f 72 73 2c 20 61 6e 64 0a 20 20 20 20 20 .title,.year,.authors,.and......
44c20 20 20 20 20 20 70 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 .....publisher.of.the.Document.a
44c40 73 20 67 69 76 65 6e 20 6f 6e 20 69 74 73 20 54 69 74 6c 65 20 50 61 67 65 2c 20 74 68 65 6e 20 s.given.on.its.Title.Page,.then.
44c60 61 64 64 0a 20 20 20 20 20 20 20 20 20 20 61 6e 20 69 74 65 6d 20 64 65 73 63 72 69 62 69 6e 67 add...........an.item.describing
44c80 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 20 61 73 20 73 74 61 74 65 64 20 .the.Modified.Version.as.stated.
44ca0 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 70 72 65 76 69 6f 75 73 20 73 65 6e 74 65 6e in.the...........previous.senten
44cc0 63 65 2e 0a 0a 20 20 20 20 20 20 20 4a 2e 20 50 72 65 73 65 72 76 65 20 74 68 65 20 6e 65 74 77 ce..........J..Preserve.the.netw
44ce0 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 2c 20 69 66 20 61 6e 79 2c 20 67 69 76 65 6e 20 69 6e 20 74 ork.location,.if.any,.given.in.t
44d00 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 70 75 62 6c 69 63 he.Document...........for.public
44d20 20 61 63 63 65 73 73 20 74 6f 20 61 20 54 72 61 6e 73 70 61 72 65 6e 74 20 63 6f 70 79 20 6f 66 .access.to.a.Transparent.copy.of
44d40 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 6c 69 6b .the.Document,.and...........lik
44d60 65 77 69 73 65 20 74 68 65 20 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e 73 20 67 69 76 65 ewise.the.network.locations.give
44d80 6e 20 69 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 66 6f 72 0a 20 20 20 20 20 20 20 20 20 20 n.in.the.Document.for...........
44da0 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 20 69 74 20 77 61 73 20 62 61 73 65 64 20 6f previous.versions.it.was.based.o
44dc0 6e 2e 20 20 54 68 65 73 65 20 6d 61 79 20 62 65 20 70 6c 61 63 65 64 20 69 6e 20 74 68 65 0a 20 n...These.may.be.placed.in.the..
44de0 20 20 20 20 20 20 20 20 20 e2 80 9c 48 69 73 74 6f 72 79 e2 80 9d 20 73 65 63 74 69 6f 6e 2e 20 ............History....section..
44e00 20 59 6f 75 20 6d 61 79 20 6f 6d 69 74 20 61 20 6e 65 74 77 6f 72 6b 20 6c 6f 63 61 74 69 6f 6e .You.may.omit.a.network.location
44e20 20 66 6f 72 20 61 20 77 6f 72 6b 0a 20 20 20 20 20 20 20 20 20 20 74 68 61 74 20 77 61 73 20 70 .for.a.work...........that.was.p
44e40 75 62 6c 69 73 68 65 64 20 61 74 20 6c 65 61 73 74 20 66 6f 75 72 20 79 65 61 72 73 20 62 65 66 ublished.at.least.four.years.bef
44e60 6f 72 65 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 69 74 73 65 6c ore.the.Document...........itsel
44e80 66 2c 20 6f 72 20 69 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 70 75 62 6c 69 73 68 65 72 20 f,.or.if.the.original.publisher.
44ea0 6f 66 20 74 68 65 20 76 65 72 73 69 6f 6e 20 69 74 20 72 65 66 65 72 73 0a 20 20 20 20 20 20 20 of.the.version.it.refers........
44ec0 20 20 20 74 6f 20 67 69 76 65 73 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 20 20 ...to.gives.permission..........
44ee0 4b 2e 20 46 6f 72 20 61 6e 79 20 73 65 63 74 69 6f 6e 20 45 6e 74 69 74 6c 65 64 20 e2 80 9c 41 K..For.any.section.Entitled....A
44f00 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 73 e2 80 9d 20 6f 72 20 e2 80 9c 44 65 64 69 63 61 74 cknowledgements....or....Dedicat
44f20 69 6f 6e 73 e2 80 9d 2c 0a 20 20 20 20 20 20 20 20 20 20 50 72 65 73 65 72 76 65 20 74 68 65 20 ions...,...........Preserve.the.
44f40 54 69 74 6c 65 20 6f 66 20 74 68 65 20 73 65 63 74 69 6f 6e 2c 20 61 6e 64 20 70 72 65 73 65 72 Title.of.the.section,.and.preser
44f60 76 65 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 61 6c 6c 20 ve.in.the.section...........all.
44f80 74 68 65 20 73 75 62 73 74 61 6e 63 65 20 61 6e 64 20 74 6f 6e 65 20 6f 66 20 65 61 63 68 20 6f the.substance.and.tone.of.each.o
44fa0 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 61 63 6b 6e f.the.contributor...........ackn
44fc0 6f 77 6c 65 64 67 65 6d 65 6e 74 73 20 61 6e 64 2f 6f 72 20 64 65 64 69 63 61 74 69 6f 6e 73 20 owledgements.and/or.dedications.
44fe0 67 69 76 65 6e 20 74 68 65 72 65 69 6e 2e 0a 0a 20 20 20 20 20 20 20 4c 2e 20 50 72 65 73 65 72 given.therein..........L..Preser
45000 76 65 20 61 6c 6c 20 74 68 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 ve.all.the.Invariant.Sections.of
45020 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 75 6e 61 6c 74 65 72 65 64 0a 20 20 20 20 20 20 20 .the.Document,.unaltered........
45040 20 20 20 69 6e 20 74 68 65 69 72 20 74 65 78 74 20 61 6e 64 20 69 6e 20 74 68 65 69 72 20 74 69 ...in.their.text.and.in.their.ti
45060 74 6c 65 73 2e 20 20 53 65 63 74 69 6f 6e 20 6e 75 6d 62 65 72 73 20 6f 72 20 74 68 65 0a 20 20 tles...Section.numbers.or.the...
45080 20 20 20 20 20 20 20 20 65 71 75 69 76 61 6c 65 6e 74 20 61 72 65 20 6e 6f 74 20 63 6f 6e 73 69 ........equivalent.are.not.consi
450a0 64 65 72 65 64 20 70 61 72 74 20 6f 66 20 74 68 65 20 73 65 63 74 69 6f 6e 20 74 69 74 6c 65 73 dered.part.of.the.section.titles
450c0 2e 0a 0a 20 20 20 20 20 20 20 4d 2e 20 44 65 6c 65 74 65 20 61 6e 79 20 73 65 63 74 69 6f 6e 20 ..........M..Delete.any.section.
450e0 45 6e 74 69 74 6c 65 64 20 e2 80 9c 45 6e 64 6f 72 73 65 6d 65 6e 74 73 e2 80 9d 2e 20 20 53 75 Entitled....Endorsements......Su
45100 63 68 20 61 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 6d 61 79 20 6e 6f 74 20 62 ch.a.section...........may.not.b
45120 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 e.included.in.the.Modified.Versi
45140 6f 6e 2e 0a 0a 20 20 20 20 20 20 20 4e 2e 20 44 6f 20 6e 6f 74 20 72 65 74 69 74 6c 65 20 61 6e on..........N..Do.not.retitle.an
45160 79 20 65 78 69 73 74 69 6e 67 20 73 65 63 74 69 6f 6e 20 74 6f 20 62 65 20 45 6e 74 69 74 6c 65 y.existing.section.to.be.Entitle
45180 64 0a 20 20 20 20 20 20 20 20 20 20 e2 80 9c 45 6e 64 6f 72 73 65 6d 65 6e 74 73 e2 80 9d 20 6f d..............Endorsements....o
451a0 72 20 74 6f 20 63 6f 6e 66 6c 69 63 74 20 69 6e 20 74 69 74 6c 65 20 77 69 74 68 20 61 6e 79 20 r.to.conflict.in.title.with.any.
451c0 49 6e 76 61 72 69 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 53 65 63 74 69 6f 6e 2e 0a 0a 20 20 Invariant...........Section.....
451e0 20 20 20 20 20 4f 2e 20 50 72 65 73 65 72 76 65 20 61 6e 79 20 57 61 72 72 61 6e 74 79 20 44 69 .....O..Preserve.any.Warranty.Di
45200 73 63 6c 61 69 6d 65 72 73 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 4d 6f 64 69 66 69 65 64 sclaimers........If.the.Modified
45220 20 56 65 72 73 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 6e 65 77 20 66 72 6f 6e 74 2d 6d 61 74 74 .Version.includes.new.front-matt
45240 65 72 20 73 65 63 74 69 6f 6e 73 20 6f 72 0a 20 20 20 20 20 61 70 70 65 6e 64 69 63 65 73 20 74 er.sections.or......appendices.t
45260 68 61 74 20 71 75 61 6c 69 66 79 20 61 73 20 53 65 63 6f 6e 64 61 72 79 20 53 65 63 74 69 6f 6e hat.qualify.as.Secondary.Section
45280 73 20 61 6e 64 20 63 6f 6e 74 61 69 6e 20 6e 6f 0a 20 20 20 20 20 6d 61 74 65 72 69 61 6c 20 63 s.and.contain.no......material.c
452a0 6f 70 69 65 64 20 66 72 6f 6d 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2c 20 79 6f 75 20 6d 61 79 opied.from.the.Document,.you.may
452c0 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 20 64 65 73 69 67 6e 61 74 65 0a 20 20 20 20 20 73 .at.your.option.designate......s
452e0 6f 6d 65 20 6f 72 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 73 65 63 74 69 6f 6e 73 20 61 73 20 ome.or.all.of.these.sections.as.
45300 69 6e 76 61 72 69 61 6e 74 2e 20 20 54 6f 20 64 6f 20 74 68 69 73 2c 20 61 64 64 20 74 68 65 69 invariant...To.do.this,.add.thei
45320 72 0a 20 20 20 20 20 74 69 74 6c 65 73 20 74 6f 20 74 68 65 20 6c 69 73 74 20 6f 66 20 49 6e 76 r......titles.to.the.list.of.Inv
45340 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 ariant.Sections.in.the.Modified.
45360 56 65 72 73 69 6f 6e e2 80 99 73 0a 20 20 20 20 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 2e Version...s......license.notice.
45380 20 20 54 68 65 73 65 20 74 69 74 6c 65 73 20 6d 75 73 74 20 62 65 20 64 69 73 74 69 6e 63 74 20 ..These.titles.must.be.distinct.
453a0 66 72 6f 6d 20 61 6e 79 20 6f 74 68 65 72 0a 20 20 20 20 20 73 65 63 74 69 6f 6e 20 74 69 74 6c from.any.other......section.titl
453c0 65 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 61 64 64 20 61 20 73 65 63 74 69 6f 6e 20 es........You.may.add.a.section.
453e0 45 6e 74 69 74 6c 65 64 20 e2 80 9c 45 6e 64 6f 72 73 65 6d 65 6e 74 73 e2 80 9d 2c 20 70 72 6f Entitled....Endorsements...,.pro
45400 76 69 64 65 64 20 69 74 20 63 6f 6e 74 61 69 6e 73 0a 20 20 20 20 20 6e 6f 74 68 69 6e 67 20 62 vided.it.contains......nothing.b
45420 75 74 20 65 6e 64 6f 72 73 65 6d 65 6e 74 73 20 6f 66 20 79 6f 75 72 20 4d 6f 64 69 66 69 65 64 ut.endorsements.of.your.Modified
45440 20 56 65 72 73 69 6f 6e 20 62 79 20 76 61 72 69 6f 75 73 0a 20 20 20 20 20 70 61 72 74 69 65 73 .Version.by.various......parties
45460 e2 80 94 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 73 74 61 74 65 6d 65 6e 74 73 20 6f 66 20 70 65 ...for.example,.statements.of.pe
45480 65 72 20 72 65 76 69 65 77 20 6f 72 20 74 68 61 74 20 74 68 65 20 74 65 78 74 20 68 61 73 0a 20 er.review.or.that.the.text.has..
454a0 20 20 20 20 62 65 65 6e 20 61 70 70 72 6f 76 65 64 20 62 79 20 61 6e 20 6f 72 67 61 6e 69 7a 61 ....been.approved.by.an.organiza
454c0 74 69 6f 6e 20 61 73 20 74 68 65 20 61 75 74 68 6f 72 69 74 61 74 69 76 65 20 64 65 66 69 6e 69 tion.as.the.authoritative.defini
454e0 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 61 20 73 74 61 6e 64 61 72 64 2e 0a 0a 20 20 20 20 20 59 tion.of......a.standard........Y
45500 6f 75 20 6d 61 79 20 61 64 64 20 61 20 70 61 73 73 61 67 65 20 6f 66 20 75 70 20 74 6f 20 66 69 ou.may.add.a.passage.of.up.to.fi
45520 76 65 20 77 6f 72 64 73 20 61 73 20 61 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 2c 0a ve.words.as.a.Front-Cover.Text,.
45540 20 20 20 20 20 61 6e 64 20 61 20 70 61 73 73 61 67 65 20 6f 66 20 75 70 20 74 6f 20 32 35 20 77 .....and.a.passage.of.up.to.25.w
45560 6f 72 64 73 20 61 73 20 61 20 42 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 2c 20 74 6f 20 74 68 ords.as.a.Back-Cover.Text,.to.th
45580 65 20 65 6e 64 20 6f 66 0a 20 20 20 20 20 74 68 65 20 6c 69 73 74 20 6f 66 20 43 6f 76 65 72 20 e.end.of......the.list.of.Cover.
455a0 54 65 78 74 73 20 69 6e 20 74 68 65 20 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2e 20 20 Texts.in.the.Modified.Version...
455c0 4f 6e 6c 79 20 6f 6e 65 20 70 61 73 73 61 67 65 0a 20 20 20 20 20 6f 66 20 46 72 6f 6e 74 2d 43 Only.one.passage......of.Front-C
455e0 6f 76 65 72 20 54 65 78 74 20 61 6e 64 20 6f 6e 65 20 6f 66 20 42 61 63 6b 2d 43 6f 76 65 72 20 over.Text.and.one.of.Back-Cover.
45600 54 65 78 74 20 6d 61 79 20 62 65 20 61 64 64 65 64 20 62 79 20 28 6f 72 0a 20 20 20 20 20 74 68 Text.may.be.added.by.(or......th
45620 72 6f 75 67 68 20 61 72 72 61 6e 67 65 6d 65 6e 74 73 20 6d 61 64 65 20 62 79 29 20 61 6e 79 20 rough.arrangements.made.by).any.
45640 6f 6e 65 20 65 6e 74 69 74 79 2e 20 20 49 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 one.entity...If.the.Document....
45660 20 20 61 6c 72 65 61 64 79 20 69 6e 63 6c 75 64 65 73 20 61 20 63 6f 76 65 72 20 74 65 78 74 20 ..already.includes.a.cover.text.
45680 66 6f 72 20 74 68 65 20 73 61 6d 65 20 63 6f 76 65 72 2c 20 70 72 65 76 69 6f 75 73 6c 79 20 61 for.the.same.cover,.previously.a
456a0 64 64 65 64 0a 20 20 20 20 20 62 79 20 79 6f 75 20 6f 72 20 62 79 20 61 72 72 61 6e 67 65 6d 65 dded......by.you.or.by.arrangeme
456c0 6e 74 20 6d 61 64 65 20 62 79 20 74 68 65 20 73 61 6d 65 20 65 6e 74 69 74 79 20 79 6f 75 20 61 nt.made.by.the.same.entity.you.a
456e0 72 65 20 61 63 74 69 6e 67 20 6f 6e 0a 20 20 20 20 20 62 65 68 61 6c 66 20 6f 66 2c 20 79 6f 75 re.acting.on......behalf.of,.you
45700 20 6d 61 79 20 6e 6f 74 20 61 64 64 20 61 6e 6f 74 68 65 72 3b 20 62 75 74 20 79 6f 75 20 6d 61 .may.not.add.another;.but.you.ma
45720 79 20 72 65 70 6c 61 63 65 20 74 68 65 20 6f 6c 64 0a 20 20 20 20 20 6f 6e 65 2c 20 6f 6e 20 65 y.replace.the.old......one,.on.e
45740 78 70 6c 69 63 69 74 20 70 65 72 6d 69 73 73 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 xplicit.permission.from.the.prev
45760 69 6f 75 73 20 70 75 62 6c 69 73 68 65 72 20 74 68 61 74 20 61 64 64 65 64 0a 20 20 20 20 20 74 ious.publisher.that.added......t
45780 68 65 20 6f 6c 64 20 6f 6e 65 2e 0a 0a 20 20 20 20 20 54 68 65 20 61 75 74 68 6f 72 28 73 29 20 he.old.one........The.author(s).
457a0 61 6e 64 20 70 75 62 6c 69 73 68 65 72 28 73 29 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 and.publisher(s).of.the.Document
457c0 20 64 6f 20 6e 6f 74 20 62 79 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 20 67 69 76 .do.not.by.this......License.giv
457e0 65 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 75 73 65 20 74 68 65 69 72 20 6e 61 6d 65 73 20 e.permission.to.use.their.names.
45800 66 6f 72 20 70 75 62 6c 69 63 69 74 79 20 66 6f 72 20 6f 72 20 74 6f 0a 20 20 20 20 20 61 73 73 for.publicity.for.or.to......ass
45820 65 72 74 20 6f 72 20 69 6d 70 6c 79 20 65 6e 64 6f 72 73 65 6d 65 6e 74 20 6f 66 20 61 6e 79 20 ert.or.imply.endorsement.of.any.
45840 4d 6f 64 69 66 69 65 64 20 56 65 72 73 69 6f 6e 2e 0a 0a 20 20 35 2e 20 43 4f 4d 42 49 4e 49 4e Modified.Version.....5..COMBININ
45860 47 20 44 4f 43 55 4d 45 4e 54 53 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 6d 62 69 6e G.DOCUMENTS.......You.may.combin
45880 65 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 77 69 74 68 20 6f 74 68 65 72 20 64 6f 63 75 6d 65 e.the.Document.with.other.docume
458a0 6e 74 73 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 0a 20 20 20 20 20 74 68 69 73 20 4c 69 63 nts.released.under......this.Lic
458c0 65 6e 73 65 2c 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 64 65 66 69 6e 65 64 20 69 6e ense,.under.the.terms.defined.in
458e0 20 73 65 63 74 69 6f 6e 20 34 20 61 62 6f 76 65 20 66 6f 72 0a 20 20 20 20 20 6d 6f 64 69 66 69 .section.4.above.for......modifi
45900 65 64 20 76 65 72 73 69 6f 6e 73 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 69 ed.versions,.provided.that.you.i
45920 6e 63 6c 75 64 65 20 69 6e 20 74 68 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 61 6c 6c 0a 20 20 nclude.in.the.combination.all...
45940 20 20 20 6f 66 20 74 68 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 20 ...of.the.Invariant.Sections.of.
45960 61 6c 6c 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 64 6f 63 75 6d 65 6e 74 73 2c 0a 20 all.of.the.original.documents,..
45980 20 20 20 20 75 6e 6d 6f 64 69 66 69 65 64 2c 20 61 6e 64 20 6c 69 73 74 20 74 68 65 6d 20 61 6c ....unmodified,.and.list.them.al
459a0 6c 20 61 73 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6f 66 20 79 6f 75 72 0a l.as.Invariant.Sections.of.your.
459c0 20 20 20 20 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 20 69 6e 20 69 74 73 20 6c 69 63 65 6e 73 .....combined.work.in.its.licens
459e0 65 20 6e 6f 74 69 63 65 2c 20 61 6e 64 20 74 68 61 74 20 79 6f 75 20 70 72 65 73 65 72 76 65 20 e.notice,.and.that.you.preserve.
45a00 61 6c 6c 0a 20 20 20 20 20 74 68 65 69 72 20 57 61 72 72 61 6e 74 79 20 44 69 73 63 6c 61 69 6d all......their.Warranty.Disclaim
45a20 65 72 73 2e 0a 0a 20 20 20 20 20 54 68 65 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 20 6e 65 65 ers........The.combined.work.nee
45a40 64 20 6f 6e 6c 79 20 63 6f 6e 74 61 69 6e 20 6f 6e 65 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 d.only.contain.one.copy.of.this.
45a60 4c 69 63 65 6e 73 65 2c 20 61 6e 64 0a 20 20 20 20 20 6d 75 6c 74 69 70 6c 65 20 69 64 65 6e 74 License,.and......multiple.ident
45a80 69 63 61 6c 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 6d 61 79 20 62 65 20 72 ical.Invariant.Sections.may.be.r
45aa0 65 70 6c 61 63 65 64 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 0a 20 20 20 20 20 63 6f 70 79 2e eplaced.with.a.single......copy.
45ac0 20 20 49 66 20 74 68 65 72 65 20 61 72 65 20 6d 75 6c 74 69 70 6c 65 20 49 6e 76 61 72 69 61 6e ..If.there.are.multiple.Invarian
45ae0 74 20 53 65 63 74 69 6f 6e 73 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 0a 20 20 t.Sections.with.the.same.name...
45b00 20 20 20 62 75 74 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6e 74 65 6e 74 73 2c 20 6d 61 6b 65 20 ...but.different.contents,.make.
45b20 74 68 65 20 74 69 74 6c 65 20 6f 66 20 65 61 63 68 20 73 75 63 68 20 73 65 63 74 69 6f 6e 20 75 the.title.of.each.such.section.u
45b40 6e 69 71 75 65 0a 20 20 20 20 20 62 79 20 61 64 64 69 6e 67 20 61 74 20 74 68 65 20 65 6e 64 20 nique......by.adding.at.the.end.
45b60 6f 66 20 69 74 2c 20 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73 2c 20 74 68 65 20 6e 61 6d 65 20 of.it,.in.parentheses,.the.name.
45b80 6f 66 20 74 68 65 0a 20 20 20 20 20 6f 72 69 67 69 6e 61 6c 20 61 75 74 68 6f 72 20 6f 72 20 70 of.the......original.author.or.p
45ba0 75 62 6c 69 73 68 65 72 20 6f 66 20 74 68 61 74 20 73 65 63 74 69 6f 6e 20 69 66 20 6b 6e 6f 77 ublisher.of.that.section.if.know
45bc0 6e 2c 20 6f 72 20 65 6c 73 65 20 61 0a 20 20 20 20 20 75 6e 69 71 75 65 20 6e 75 6d 62 65 72 2e n,.or.else.a......unique.number.
45be0 20 20 4d 61 6b 65 20 74 68 65 20 73 61 6d 65 20 61 64 6a 75 73 74 6d 65 6e 74 20 74 6f 20 74 68 ..Make.the.same.adjustment.to.th
45c00 65 20 73 65 63 74 69 6f 6e 20 74 69 74 6c 65 73 20 69 6e 0a 20 20 20 20 20 74 68 65 20 6c 69 73 e.section.titles.in......the.lis
45c20 74 20 6f 66 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6c t.of.Invariant.Sections.in.the.l
45c40 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 63 6f 6d 62 69 6e icense.notice.of.the......combin
45c60 65 64 20 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 49 6e 20 74 68 65 20 63 6f 6d 62 69 6e 61 74 69 6f ed.work........In.the.combinatio
45c80 6e 2c 20 79 6f 75 20 6d 75 73 74 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 73 65 63 74 69 6f 6e 73 n,.you.must.combine.any.sections
45ca0 20 45 6e 74 69 74 6c 65 64 0a 20 20 20 20 20 e2 80 9c 48 69 73 74 6f 72 79 e2 80 9d 20 69 6e 20 .Entitled.........History....in.
45cc0 74 68 65 20 76 61 72 69 6f 75 73 20 6f 72 69 67 69 6e 61 6c 20 64 6f 63 75 6d 65 6e 74 73 2c 20 the.various.original.documents,.
45ce0 66 6f 72 6d 69 6e 67 20 6f 6e 65 20 73 65 63 74 69 6f 6e 0a 20 20 20 20 20 45 6e 74 69 74 6c 65 forming.one.section......Entitle
45d00 64 20 e2 80 9c 48 69 73 74 6f 72 79 e2 80 9d 3b 20 6c 69 6b 65 77 69 73 65 20 63 6f 6d 62 69 6e d....History...;.likewise.combin
45d20 65 20 61 6e 79 20 73 65 63 74 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 0a 20 20 20 20 20 e2 80 9c e.any.sections.Entitled.........
45d40 41 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 73 e2 80 9d 2c 20 61 6e 64 20 61 6e 79 20 73 65 63 Acknowledgements...,.and.any.sec
45d60 74 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 20 e2 80 9c 44 65 64 69 63 61 74 69 6f 6e 73 e2 80 9d tions.Entitled....Dedications...
45d80 2e 20 20 59 6f 75 0a 20 20 20 20 20 6d 75 73 74 20 64 65 6c 65 74 65 20 61 6c 6c 20 73 65 63 74 ...You......must.delete.all.sect
45da0 69 6f 6e 73 20 45 6e 74 69 74 6c 65 64 20 e2 80 9c 45 6e 64 6f 72 73 65 6d 65 6e 74 73 2e e2 80 ions.Entitled....Endorsements...
45dc0 9d 0a 0a 20 20 36 2e 20 43 4f 4c 4c 45 43 54 49 4f 4e 53 20 4f 46 20 44 4f 43 55 4d 45 4e 54 53 .....6..COLLECTIONS.OF.DOCUMENTS
45de0 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e .......You.may.make.a.collection
45e00 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 61 6e 64 20 .consisting.of.the.Document.and.
45e20 6f 74 68 65 72 0a 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 73 20 72 65 6c 65 61 73 65 64 20 75 6e other......documents.released.un
45e40 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 72 65 70 6c 61 63 65 20 74 68 der.this.License,.and.replace.th
45e60 65 20 69 6e 64 69 76 69 64 75 61 6c 0a 20 20 20 20 20 63 6f 70 69 65 73 20 6f 66 20 74 68 69 73 e.individual......copies.of.this
45e80 20 4c 69 63 65 6e 73 65 20 69 6e 20 74 68 65 20 76 61 72 69 6f 75 73 20 64 6f 63 75 6d 65 6e 74 .License.in.the.various.document
45ea0 73 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 63 6f 70 79 0a 20 20 20 20 20 74 68 61 74 20 69 s.with.a.single.copy......that.i
45ec0 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 2c 20 70 72 s.included.in.the.collection,.pr
45ee0 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 66 6f 6c 6c 6f 77 20 74 68 65 0a 20 20 20 20 20 ovided.that.you.follow.the......
45f00 72 75 6c 65 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 76 65 72 62 61 74 rules.of.this.License.for.verbat
45f20 69 6d 20 63 6f 70 79 69 6e 67 20 6f 66 20 65 61 63 68 20 6f 66 20 74 68 65 20 64 6f 63 75 6d 65 im.copying.of.each.of.the.docume
45f40 6e 74 73 0a 20 20 20 20 20 69 6e 20 61 6c 6c 20 6f 74 68 65 72 20 72 65 73 70 65 63 74 73 2e 0a nts......in.all.other.respects..
45f60 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 65 78 74 72 61 63 74 20 61 20 73 69 6e 67 6c 65 20 64 ......You.may.extract.a.single.d
45f80 6f 63 75 6d 65 6e 74 20 66 72 6f 6d 20 73 75 63 68 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 2c 20 ocument.from.such.a.collection,.
45fa0 61 6e 64 0a 20 20 20 20 20 64 69 73 74 72 69 62 75 74 65 20 69 74 20 69 6e 64 69 76 69 64 75 61 and......distribute.it.individua
45fc0 6c 6c 79 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 70 72 6f 76 69 64 65 64 lly.under.this.License,.provided
45fe0 20 79 6f 75 20 69 6e 73 65 72 74 0a 20 20 20 20 20 61 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 .you.insert......a.copy.of.this.
46000 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 65 78 74 72 61 63 74 65 64 20 64 6f 63 75 6d License.into.the.extracted.docum
46020 65 6e 74 2c 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 ent,.and.follow.this......Licens
46040 65 20 69 6e 20 61 6c 6c 20 6f 74 68 65 72 20 72 65 73 70 65 63 74 73 20 72 65 67 61 72 64 69 6e e.in.all.other.respects.regardin
46060 67 20 76 65 72 62 61 74 69 6d 20 63 6f 70 79 69 6e 67 20 6f 66 20 74 68 61 74 0a 20 20 20 20 20 g.verbatim.copying.of.that......
46080 64 6f 63 75 6d 65 6e 74 2e 0a 0a 20 20 37 2e 20 41 47 47 52 45 47 41 54 49 4f 4e 20 57 49 54 48 document.....7..AGGREGATION.WITH
460a0 20 49 4e 44 45 50 45 4e 44 45 4e 54 20 57 4f 52 4b 53 0a 0a 20 20 20 20 20 41 20 63 6f 6d 70 69 .INDEPENDENT.WORKS.......A.compi
460c0 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 6f 72 20 69 74 73 20 64 65 lation.of.the.Document.or.its.de
460e0 72 69 76 61 74 69 76 65 73 20 77 69 74 68 20 6f 74 68 65 72 0a 20 20 20 20 20 73 65 70 61 72 61 rivatives.with.other......separa
46100 74 65 20 61 6e 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 64 6f 63 75 6d 65 6e 74 73 20 6f 72 20 te.and.independent.documents.or.
46120 77 6f 72 6b 73 2c 20 69 6e 20 6f 72 20 6f 6e 20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 0a 20 20 works,.in.or.on.a.volume.of.a...
46140 20 20 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 ...storage.or.distribution.mediu
46160 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 20 e2 80 9c 61 67 67 72 65 67 61 74 65 e2 80 9d 20 m,.is.called.an....aggregate....
46180 69 66 20 74 68 65 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 72 65 73 75 6c 74 69 6e 67 20 if.the......copyright.resulting.
461a0 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 69 73 20 6e 6f 74 20 75 73 65 64 from.the.compilation.is.not.used
461c0 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 0a 20 20 20 20 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 .to.limit.the......legal.rights.
461e0 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e e2 80 99 73 20 75 73 65 72 73 20 62 65 79 of.the.compilation...s.users.bey
46200 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 0a 20 20 20 20 20 77 6f 72 ond.what.the.individual......wor
46220 6b 73 20 70 65 72 6d 69 74 2e 20 20 57 68 65 6e 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 ks.permit...When.the.Document.is
46240 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 2c 20 74 68 69 73 0a .included.in.an.aggregate,.this.
46260 20 20 20 20 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 20 74 6f 20 74 .....License.does.not.apply.to.t
46280 68 65 20 6f 74 68 65 72 20 77 6f 72 6b 73 20 69 6e 20 74 68 65 20 61 67 67 72 65 67 61 74 65 20 he.other.works.in.the.aggregate.
462a0 77 68 69 63 68 0a 20 20 20 20 20 61 72 65 20 6e 6f 74 20 74 68 65 6d 73 65 6c 76 65 73 20 64 65 which......are.not.themselves.de
462c0 72 69 76 61 74 69 76 65 20 77 6f 72 6b 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 2e 0a rivative.works.of.the.Document..
462e0 0a 20 20 20 20 20 49 66 20 74 68 65 20 43 6f 76 65 72 20 54 65 78 74 20 72 65 71 75 69 72 65 6d ......If.the.Cover.Text.requirem
46300 65 6e 74 20 6f 66 20 73 65 63 74 69 6f 6e 20 33 20 69 73 20 61 70 70 6c 69 63 61 62 6c 65 20 74 ent.of.section.3.is.applicable.t
46320 6f 20 74 68 65 73 65 0a 20 20 20 20 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 44 6f 63 75 6d o.these......copies.of.the.Docum
46340 65 6e 74 2c 20 74 68 65 6e 20 69 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 6c 65 73 ent,.then.if.the.Document.is.les
46360 73 20 74 68 61 6e 20 6f 6e 65 20 68 61 6c 66 0a 20 20 20 20 20 6f 66 20 74 68 65 20 65 6e 74 69 s.than.one.half......of.the.enti
46380 72 65 20 61 67 67 72 65 67 61 74 65 2c 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 e2 80 99 73 20 43 re.aggregate,.the.Document...s.C
463a0 6f 76 65 72 20 54 65 78 74 73 20 6d 61 79 20 62 65 20 70 6c 61 63 65 64 0a 20 20 20 20 20 6f 6e over.Texts.may.be.placed......on
463c0 20 63 6f 76 65 72 73 20 74 68 61 74 20 62 72 61 63 6b 65 74 20 74 68 65 20 44 6f 63 75 6d 65 6e .covers.that.bracket.the.Documen
463e0 74 20 77 69 74 68 69 6e 20 74 68 65 20 61 67 67 72 65 67 61 74 65 2c 20 6f 72 20 74 68 65 0a 20 t.within.the.aggregate,.or.the..
46400 20 20 20 20 65 6c 65 63 74 72 6f 6e 69 63 20 65 71 75 69 76 61 6c 65 6e 74 20 6f 66 20 63 6f 76 ....electronic.equivalent.of.cov
46420 65 72 73 20 69 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 69 6e 20 65 6c 65 63 74 72 ers.if.the.Document.is.in.electr
46440 6f 6e 69 63 0a 20 20 20 20 20 66 6f 72 6d 2e 20 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 79 20 onic......form...Otherwise.they.
46460 6d 75 73 74 20 61 70 70 65 61 72 20 6f 6e 20 70 72 69 6e 74 65 64 20 63 6f 76 65 72 73 20 74 68 must.appear.on.printed.covers.th
46480 61 74 20 62 72 61 63 6b 65 74 0a 20 20 20 20 20 74 68 65 20 77 68 6f 6c 65 20 61 67 67 72 65 67 at.bracket......the.whole.aggreg
464a0 61 74 65 2e 0a 0a 20 20 38 2e 20 54 52 41 4e 53 4c 41 54 49 4f 4e 0a 0a 20 20 20 20 20 54 72 61 ate.....8..TRANSLATION.......Tra
464c0 6e 73 6c 61 74 69 6f 6e 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 61 20 6b 69 6e 64 20 6f 66 nslation.is.considered.a.kind.of
464e0 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 73 6f 20 79 6f 75 20 6d 61 79 0a 20 20 20 20 20 64 .modification,.so.you.may......d
46500 69 73 74 72 69 62 75 74 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 44 6f istribute.translations.of.the.Do
46520 63 75 6d 65 6e 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f cument.under.the.terms.of.sectio
46540 6e 0a 20 20 20 20 20 34 2e 20 20 52 65 70 6c 61 63 69 6e 67 20 49 6e 76 61 72 69 61 6e 74 20 53 n......4...Replacing.Invariant.S
46560 65 63 74 69 6f 6e 73 20 77 69 74 68 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 72 65 71 75 69 72 ections.with.translations.requir
46580 65 73 20 73 70 65 63 69 61 6c 0a 20 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 66 72 6f 6d 20 es.special......permission.from.
465a0 74 68 65 69 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 73 2c 20 62 75 74 20 79 6f 75 their.copyright.holders,.but.you
465c0 20 6d 61 79 20 69 6e 63 6c 75 64 65 0a 20 20 20 20 20 74 72 61 6e 73 6c 61 74 69 6f 6e 73 20 6f .may.include......translations.o
465e0 66 20 73 6f 6d 65 20 6f 72 20 61 6c 6c 20 49 6e 76 61 72 69 61 6e 74 20 53 65 63 74 69 6f 6e 73 f.some.or.all.Invariant.Sections
46600 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 65 0a 20 20 20 20 20 6f 72 69 67 69 6e 61 .in.addition.to.the......origina
46620 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 73 65 20 49 6e 76 61 72 69 61 6e 74 20 53 65 l.versions.of.these.Invariant.Se
46640 63 74 69 6f 6e 73 2e 20 20 59 6f 75 20 6d 61 79 20 69 6e 63 6c 75 64 65 20 61 0a 20 20 20 20 20 ctions...You.may.include.a......
46660 74 72 61 6e 73 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 translation.of.this.License,.and
46680 20 61 6c 6c 20 74 68 65 20 6c 69 63 65 6e 73 65 20 6e 6f 74 69 63 65 73 20 69 6e 20 74 68 65 0a .all.the.license.notices.in.the.
466a0 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 2c 20 61 6e 64 20 61 6e 79 20 57 61 72 72 61 6e 74 79 20 .....Document,.and.any.Warranty.
466c0 44 69 73 63 6c 61 69 6d 65 72 73 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 Disclaimers,.provided.that.you.a
466e0 6c 73 6f 0a 20 20 20 20 20 69 6e 63 6c 75 64 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 45 6e lso......include.the.original.En
46700 67 6c 69 73 68 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e glish.version.of.this.License.an
46720 64 20 74 68 65 0a 20 20 20 20 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 d.the......original.versions.of.
46740 74 68 6f 73 65 20 6e 6f 74 69 63 65 73 20 61 6e 64 20 64 69 73 63 6c 61 69 6d 65 72 73 2e 20 20 those.notices.and.disclaimers...
46760 49 6e 20 63 61 73 65 20 6f 66 20 61 0a 20 20 20 20 20 64 69 73 61 67 72 65 65 6d 65 6e 74 20 62 In.case.of.a......disagreement.b
46780 65 74 77 65 65 6e 20 74 68 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 6f etween.the.translation.and.the.o
467a0 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 20 6f 66 0a 20 20 20 20 20 74 68 69 73 20 4c 69 63 riginal.version.of......this.Lic
467c0 65 6e 73 65 20 6f 72 20 61 20 6e 6f 74 69 63 65 20 6f 72 20 64 69 73 63 6c 61 69 6d 65 72 2c 20 ense.or.a.notice.or.disclaimer,.
467e0 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 20 77 69 6c 6c 0a 20 20 20 20 20 70 the.original.version.will......p
46800 72 65 76 61 69 6c 2e 0a 0a 20 20 20 20 20 49 66 20 61 20 73 65 63 74 69 6f 6e 20 69 6e 20 74 68 revail........If.a.section.in.th
46820 65 20 44 6f 63 75 6d 65 6e 74 20 69 73 20 45 6e 74 69 74 6c 65 64 20 e2 80 9c 41 63 6b 6e 6f 77 e.Document.is.Entitled....Acknow
46840 6c 65 64 67 65 6d 65 6e 74 73 e2 80 9d 2c 0a 20 20 20 20 20 e2 80 9c 44 65 64 69 63 61 74 69 6f ledgements...,.........Dedicatio
46860 6e 73 e2 80 9d 2c 20 6f 72 20 e2 80 9c 48 69 73 74 6f 72 79 e2 80 9d 2c 20 74 68 65 20 72 65 71 ns...,.or....History...,.the.req
46880 75 69 72 65 6d 65 6e 74 20 28 73 65 63 74 69 6f 6e 20 34 29 20 74 6f 0a 20 20 20 20 20 50 72 65 uirement.(section.4).to......Pre
468a0 73 65 72 76 65 20 69 74 73 20 54 69 74 6c 65 20 28 73 65 63 74 69 6f 6e 20 31 29 20 77 69 6c 6c serve.its.Title.(section.1).will
468c0 20 74 79 70 69 63 61 6c 6c 79 20 72 65 71 75 69 72 65 20 63 68 61 6e 67 69 6e 67 20 74 68 65 0a .typically.require.changing.the.
468e0 20 20 20 20 20 61 63 74 75 61 6c 20 74 69 74 6c 65 2e 0a 0a 20 20 39 2e 20 54 45 52 4d 49 4e 41 .....actual.title.....9..TERMINA
46900 54 49 4f 4e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 70 79 2c 20 6d 6f 64 TION.......You.may.not.copy,.mod
46920 69 66 79 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 6f 72 20 64 69 73 74 72 69 62 75 74 65 20 74 ify,.sublicense,.or.distribute.t
46940 68 65 20 44 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 he.Document......except.as.expre
46960 73 73 6c 79 20 70 72 6f 76 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 ssly.provided.under.this.License
46980 2e 20 20 41 6e 79 20 61 74 74 65 6d 70 74 0a 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 74 6f ...Any.attempt......otherwise.to
469a0 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 6f 72 20 64 69 .copy,.modify,.sublicense,.or.di
469c0 73 74 72 69 62 75 74 65 20 69 74 20 69 73 20 76 6f 69 64 2c 0a 20 20 20 20 20 61 6e 64 20 77 69 stribute.it.is.void,......and.wi
469e0 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 20 ll.automatically.terminate.your.
46a00 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 rights.under.this.License.......
46a20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 65 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 .However,.if.you.cease.all.viola
46a40 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a tion.of.this.License,.then.your.
46a60 20 20 20 20 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 .....license.from.a.particular.c
46a80 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e 73 74 61 74 65 64 20 28 61 opyright.holder.is.reinstated.(a
46aa0 29 0a 20 20 20 20 20 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 20 61 6e 64 )......provisionally,.unless.and
46ac0 20 75 6e 74 69 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 65 78 70 6c .until.the.copyright.holder.expl
46ae0 69 63 69 74 6c 79 20 61 6e 64 0a 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 icitly.and......finally.terminat
46b00 65 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 es.your.license,.and.(b).permane
46b20 6e 74 6c 79 2c 20 69 66 20 74 68 65 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 ntly,.if.the......copyright.hold
46b40 65 72 20 66 61 69 6c 73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 er.fails.to.notify.you.of.the.vi
46b60 6f 6c 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 0a 20 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 olation.by.some......reasonable.
46b80 6d 65 61 6e 73 20 70 72 69 6f 72 20 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 means.prior.to.60.days.after.the
46ba0 20 63 65 73 73 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 .cessation........Moreover,.your
46bc0 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 .license.from.a.particular.copyr
46be0 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 0a 20 20 20 20 20 72 65 69 6e 73 74 61 74 65 64 20 70 ight.holder.is......reinstated.p
46c00 65 72 6d 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 ermanently.if.the.copyright.hold
46c20 65 72 20 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 74 68 65 0a 20 20 20 20 20 76 69 6f 6c er.notifies.you.of.the......viol
46c40 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 2c 20 ation.by.some.reasonable.means,.
46c60 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f 75 20 68 61 76 65 0a this.is.the.first.time.you.have.
46c80 20 20 20 20 20 72 65 63 65 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 74 69 6f .....received.notice.of.violatio
46ca0 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f 72 6b 29 n.of.this.License.(for.any.work)
46cc0 20 66 72 6f 6d 0a 20 20 20 20 20 74 68 61 74 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 .from......that.copyright.holder
46ce0 2c 20 61 6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 ,.and.you.cure.the.violation.pri
46d00 6f 72 20 74 6f 20 33 30 20 64 61 79 73 0a 20 20 20 20 20 61 66 74 65 72 20 79 6f 75 72 20 72 65 or.to.30.days......after.your.re
46d20 63 65 69 70 74 20 6f 66 20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 20 20 20 54 65 72 6d 69 ceipt.of.the.notice........Termi
46d40 6e 61 74 69 6f 6e 20 6f 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 nation.of.your.rights.under.this
46d60 20 73 65 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 0a 20 20 20 20 .section.does.not.terminate.....
46d80 20 74 68 65 20 6c 69 63 65 6e 73 65 73 20 6f 66 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 .the.licenses.of.parties.who.hav
46da0 65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 65 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d e.received.copies.or.rights.from
46dc0 20 79 6f 75 0a 20 20 20 20 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 .you......under.this.License...I
46de0 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 65 65 6e 20 74 65 72 6d 69 6e 61 74 f.your.rights.have.been.terminat
46e00 65 64 20 61 6e 64 20 6e 6f 74 0a 20 20 20 20 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 72 65 69 6e ed.and.not......permanently.rein
46e20 73 74 61 74 65 64 2c 20 72 65 63 65 69 70 74 20 6f 66 20 61 20 63 6f 70 79 20 6f 66 20 73 6f 6d stated,.receipt.of.a.copy.of.som
46e40 65 20 6f 72 20 61 6c 6c 20 6f 66 20 74 68 65 0a 20 20 20 20 20 73 61 6d 65 20 6d 61 74 65 72 69 e.or.all.of.the......same.materi
46e60 61 6c 20 64 6f 65 73 20 6e 6f 74 20 67 69 76 65 20 79 6f 75 20 61 6e 79 20 72 69 67 68 74 73 20 al.does.not.give.you.any.rights.
46e80 74 6f 20 75 73 65 20 69 74 2e 0a 0a 20 20 31 30 2e 20 46 55 54 55 52 45 20 52 45 56 49 53 49 4f to.use.it.....10..FUTURE.REVISIO
46ea0 4e 53 20 4f 46 20 54 48 49 53 20 4c 49 43 45 4e 53 45 0a 0a 20 20 20 20 20 54 68 65 20 46 72 65 NS.OF.THIS.LICENSE.......The.Fre
46ec0 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 e.Software.Foundation.may.publis
46ee0 68 20 6e 65 77 2c 20 72 65 76 69 73 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 20 20 20 20 20 h.new,.revised.versions.of......
46f00 74 68 65 20 47 4e 55 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e the.GNU.Free.Documentation.Licen
46f20 73 65 20 66 72 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 77 0a se.from.time.to.time...Such.new.
46f40 20 20 20 20 20 76 65 72 73 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 73 69 6d 69 6c 61 72 20 69 6e .....versions.will.be.similar.in
46f60 20 73 70 69 72 69 74 20 74 6f 20 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 .spirit.to.the.present.version,.
46f80 62 75 74 20 6d 61 79 0a 20 20 20 20 20 64 69 66 66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f but.may......differ.in.detail.to
46fa0 20 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e .address.new.problems.or.concern
46fc0 73 2e 20 20 53 65 65 0a 20 20 20 20 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 s...See......<https://www.gnu.or
46fe0 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 20 20 20 45 61 63 68 20 76 65 72 73 69 6f 6e g/licenses/>........Each.version
47000 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 .of.the.License.is.given.a.disti
47020 6e 67 75 69 73 68 69 6e 67 20 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 6e 75 6d 62 65 72 2e 20 20 nguishing.version......number...
47040 49 66 20 74 68 65 20 44 6f 63 75 6d 65 6e 74 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 If.the.Document.specifies.that.a
47060 20 70 61 72 74 69 63 75 6c 61 72 20 6e 75 6d 62 65 72 65 64 0a 20 20 20 20 20 76 65 72 73 69 6f .particular.numbered......versio
47080 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 e2 80 9c 6f 72 20 61 6e 79 20 6c 61 74 65 n.of.this.License....or.any.late
470a0 72 20 76 65 72 73 69 6f 6e e2 80 9d 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 0a r.version....applies.to.it,.you.
470c0 20 20 20 20 20 68 61 76 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e .....have.the.option.of.followin
470e0 67 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 g.the.terms.and.conditions.eithe
47100 72 20 6f 66 0a 20 20 20 20 20 74 68 61 74 20 73 70 65 63 69 66 69 65 64 20 76 65 72 73 69 6f 6e r.of......that.specified.version
47120 20 6f 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 74 68 61 74 20 68 61 .or.of.any.later.version.that.ha
47140 73 20 62 65 65 6e 0a 20 20 20 20 20 70 75 62 6c 69 73 68 65 64 20 28 6e 6f 74 20 61 73 20 61 20 s.been......published.(not.as.a.
47160 64 72 61 66 74 29 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e draft).by.the.Free.Software.Foun
47180 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 0a 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 20 64 6f dation...If.the......Document.do
471a0 65 73 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 es.not.specify.a.version.number.
471c0 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 6d 61 79 0a 20 20 20 20 20 63 68 of.this.License,.you.may......ch
471e0 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 72 20 70 75 62 6c 69 73 68 65 64 20 oose.any.version.ever.published.
47200 28 6e 6f 74 20 61 73 20 61 20 64 72 61 66 74 29 20 62 79 20 74 68 65 20 46 72 65 65 0a 20 20 20 (not.as.a.draft).by.the.Free....
47220 20 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 44 ..Software.Foundation...If.the.D
47240 6f 63 75 6d 65 6e 74 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 ocument.specifies.that.a.proxy.c
47260 61 6e 0a 20 20 20 20 20 64 65 63 69 64 65 20 77 68 69 63 68 20 66 75 74 75 72 65 20 76 65 72 73 an......decide.which.future.vers
47280 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 63 61 6e 20 62 65 20 75 73 65 64 ions.of.this.License.can.be.used
472a0 2c 20 74 68 61 74 0a 20 20 20 20 20 70 72 6f 78 79 e2 80 99 73 20 70 75 62 6c 69 63 20 73 74 61 ,.that......proxy...s.public.sta
472c0 74 65 6d 65 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 61 20 76 65 72 73 69 6f tement.of.acceptance.of.a.versio
472e0 6e 20 70 65 72 6d 61 6e 65 6e 74 6c 79 0a 20 20 20 20 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f n.permanently......authorizes.yo
47300 75 20 74 6f 20 63 68 6f 6f 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 u.to.choose.that.version.for.the
47320 20 44 6f 63 75 6d 65 6e 74 2e 0a 0a 20 20 31 31 2e 20 52 45 4c 49 43 45 4e 53 49 4e 47 0a 0a 20 .Document.....11..RELICENSING...
47340 20 20 20 20 e2 80 9c 4d 61 73 73 69 76 65 20 4d 75 6c 74 69 61 75 74 68 6f 72 20 43 6f 6c 6c 61 .......Massive.Multiauthor.Colla
47360 62 6f 72 61 74 69 6f 6e 20 53 69 74 65 e2 80 9d 20 28 6f 72 20 e2 80 9c 4d 4d 43 20 53 69 74 65 boration.Site....(or....MMC.Site
47380 e2 80 9d 29 20 6d 65 61 6e 73 20 61 6e 79 0a 20 20 20 20 20 57 6f 72 6c 64 20 57 69 64 65 20 57 ...).means.any......World.Wide.W
473a0 65 62 20 73 65 72 76 65 72 20 74 68 61 74 20 70 75 62 6c 69 73 68 65 73 20 63 6f 70 79 72 69 67 eb.server.that.publishes.copyrig
473c0 68 74 61 62 6c 65 20 77 6f 72 6b 73 20 61 6e 64 20 61 6c 73 6f 0a 20 20 20 20 20 70 72 6f 76 69 htable.works.and.also......provi
473e0 64 65 73 20 70 72 6f 6d 69 6e 65 6e 74 20 66 61 63 69 6c 69 74 69 65 73 20 66 6f 72 20 61 6e 79 des.prominent.facilities.for.any
47400 62 6f 64 79 20 74 6f 20 65 64 69 74 20 74 68 6f 73 65 20 77 6f 72 6b 73 2e 20 20 41 0a 20 20 20 body.to.edit.those.works...A....
47420 20 20 70 75 62 6c 69 63 20 77 69 6b 69 20 74 68 61 74 20 61 6e 79 62 6f 64 79 20 63 61 6e 20 65 ..public.wiki.that.anybody.can.e
47440 64 69 74 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 73 75 63 68 20 61 20 73 65 72 76 dit.is.an.example.of.such.a.serv
47460 65 72 2e 0a 20 20 20 20 20 41 20 e2 80 9c 4d 61 73 73 69 76 65 20 4d 75 6c 74 69 61 75 74 68 6f er.......A....Massive.Multiautho
47480 72 20 43 6f 6c 6c 61 62 6f 72 61 74 69 6f 6e e2 80 9d 20 28 6f 72 20 e2 80 9c 4d 4d 43 e2 80 9d r.Collaboration....(or....MMC...
474a0 29 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 20 73 69 74 65 20 6d 65 61 ).contained.in.the......site.mea
474c0 6e 73 20 61 6e 79 20 73 65 74 20 6f 66 20 63 6f 70 79 72 69 67 68 74 61 62 6c 65 20 77 6f 72 6b ns.any.set.of.copyrightable.work
474e0 73 20 74 68 75 73 20 70 75 62 6c 69 73 68 65 64 20 6f 6e 20 74 68 65 20 4d 4d 43 0a 20 20 20 20 s.thus.published.on.the.MMC.....
47500 20 73 69 74 65 2e 0a 0a 20 20 20 20 20 e2 80 9c 43 43 2d 42 59 2d 53 41 e2 80 9d 20 6d 65 61 6e .site...........CC-BY-SA....mean
47520 73 20 74 68 65 20 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 41 74 74 72 69 62 75 74 69 s.the.Creative.Commons.Attributi
47540 6f 6e 2d 53 68 61 72 65 20 41 6c 69 6b 65 20 33 2e 30 0a 20 20 20 20 20 6c 69 63 65 6e 73 65 20 on-Share.Alike.3.0......license.
47560 70 75 62 6c 69 73 68 65 64 20 62 79 20 43 72 65 61 74 69 76 65 20 43 6f 6d 6d 6f 6e 73 20 43 6f published.by.Creative.Commons.Co
47580 72 70 6f 72 61 74 69 6f 6e 2c 20 61 20 6e 6f 74 2d 66 6f 72 2d 70 72 6f 66 69 74 0a 20 20 20 20 rporation,.a.not-for-profit.....
475a0 20 63 6f 72 70 6f 72 61 74 69 6f 6e 20 77 69 74 68 20 61 20 70 72 69 6e 63 69 70 61 6c 20 70 6c .corporation.with.a.principal.pl
475c0 61 63 65 20 6f 66 20 62 75 73 69 6e 65 73 73 20 69 6e 20 53 61 6e 20 46 72 61 6e 63 69 73 63 6f ace.of.business.in.San.Francisco
475e0 2c 0a 20 20 20 20 20 43 61 6c 69 66 6f 72 6e 69 61 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 66 75 ,......California,.as.well.as.fu
47600 74 75 72 65 20 63 6f 70 79 6c 65 66 74 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 61 74 20 6c ture.copyleft.versions.of.that.l
47620 69 63 65 6e 73 65 0a 20 20 20 20 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 61 74 20 73 61 icense......published.by.that.sa
47640 6d 65 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 e2 80 9c 49 6e 63 6f 72 70 me.organization...........Incorp
47660 6f 72 61 74 65 e2 80 9d 20 6d 65 61 6e 73 20 74 6f 20 70 75 62 6c 69 73 68 20 6f 72 20 72 65 70 orate....means.to.publish.or.rep
47680 75 62 6c 69 73 68 20 61 20 44 6f 63 75 6d 65 6e 74 2c 20 69 6e 20 77 68 6f 6c 65 20 6f 72 0a 20 ublish.a.Document,.in.whole.or..
476a0 20 20 20 20 69 6e 20 70 61 72 74 2c 20 61 73 20 70 61 72 74 20 6f 66 20 61 6e 6f 74 68 65 72 20 ....in.part,.as.part.of.another.
476c0 44 6f 63 75 6d 65 6e 74 2e 0a 0a 20 20 20 20 20 41 6e 20 4d 4d 43 20 69 73 20 e2 80 9c 65 6c 69 Document........An.MMC.is....eli
476e0 67 69 62 6c 65 20 66 6f 72 20 72 65 6c 69 63 65 6e 73 69 6e 67 e2 80 9d 20 69 66 20 69 74 20 69 gible.for.relicensing....if.it.i
47700 73 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e s.licensed.under.this......Licen
47720 73 65 2c 20 61 6e 64 20 69 66 20 61 6c 6c 20 77 6f 72 6b 73 20 74 68 61 74 20 77 65 72 65 20 66 se,.and.if.all.works.that.were.f
47740 69 72 73 74 20 70 75 62 6c 69 73 68 65 64 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 4c irst.published.under.this......L
47760 69 63 65 6e 73 65 20 73 6f 6d 65 77 68 65 72 65 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 69 73 icense.somewhere.other.than.this
47780 20 4d 4d 43 2c 20 61 6e 64 20 73 75 62 73 65 71 75 65 6e 74 6c 79 0a 20 20 20 20 20 69 6e 63 6f .MMC,.and.subsequently......inco
477a0 72 70 6f 72 61 74 65 64 20 69 6e 20 77 68 6f 6c 65 20 6f 72 20 69 6e 20 70 61 72 74 20 69 6e 74 rporated.in.whole.or.in.part.int
477c0 6f 20 74 68 65 20 4d 4d 43 2c 20 28 31 29 20 68 61 64 20 6e 6f 20 63 6f 76 65 72 0a 20 20 20 20 o.the.MMC,.(1).had.no.cover.....
477e0 20 74 65 78 74 73 20 6f 72 20 69 6e 76 61 72 69 61 6e 74 20 73 65 63 74 69 6f 6e 73 2c 20 61 6e .texts.or.invariant.sections,.an
47800 64 20 28 32 29 20 77 65 72 65 20 74 68 75 73 20 69 6e 63 6f 72 70 6f 72 61 74 65 64 20 70 72 69 d.(2).were.thus.incorporated.pri
47820 6f 72 0a 20 20 20 20 20 74 6f 20 4e 6f 76 65 6d 62 65 72 20 31 2c 20 32 30 30 38 2e 0a 0a 20 20 or......to.November.1,.2008.....
47840 20 20 20 54 68 65 20 6f 70 65 72 61 74 6f 72 20 6f 66 20 61 6e 20 4d 4d 43 20 53 69 74 65 20 6d ...The.operator.of.an.MMC.Site.m
47860 61 79 20 72 65 70 75 62 6c 69 73 68 20 61 6e 20 4d 4d 43 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e ay.republish.an.MMC.contained.in
47880 20 74 68 65 0a 20 20 20 20 20 73 69 74 65 20 75 6e 64 65 72 20 43 43 2d 42 59 2d 53 41 20 6f 6e .the......site.under.CC-BY-SA.on
478a0 20 74 68 65 20 73 61 6d 65 20 73 69 74 65 20 61 74 20 61 6e 79 20 74 69 6d 65 20 62 65 66 6f 72 .the.same.site.at.any.time.befor
478c0 65 20 41 75 67 75 73 74 20 31 2c 0a 20 20 20 20 20 32 30 30 39 2c 20 70 72 6f 76 69 64 65 64 20 e.August.1,......2009,.provided.
478e0 74 68 65 20 4d 4d 43 20 69 73 20 65 6c 69 67 69 62 6c 65 20 66 6f 72 20 72 65 6c 69 63 65 6e 73 the.MMC.is.eligible.for.relicens
47900 69 6e 67 2e 0a 0a 41 44 44 45 4e 44 55 4d 3a 20 48 6f 77 20 74 6f 20 75 73 65 20 74 68 69 73 20 ing...ADDENDUM:.How.to.use.this.
47920 4c 69 63 65 6e 73 65 20 66 6f 72 20 79 6f 75 72 20 64 6f 63 75 6d 65 6e 74 73 0a 3d 3d 3d 3d 3d License.for.your.documents.=====
47940 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================================
47960 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 6f 20 75 73 65 20 74 68 69 73 20 4c 69 63 ===============..To.use.this.Lic
47980 65 6e 73 65 20 69 6e 20 61 20 64 6f 63 75 6d 65 6e 74 20 79 6f 75 20 68 61 76 65 20 77 72 69 74 ense.in.a.document.you.have.writ
479a0 74 65 6e 2c 20 69 6e 63 6c 75 64 65 20 61 20 63 6f 70 79 20 6f 66 0a 74 68 65 20 4c 69 63 65 6e ten,.include.a.copy.of.the.Licen
479c0 73 65 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 61 6e 64 20 70 75 74 20 74 68 65 20 66 se.in.the.document.and.put.the.f
479e0 6f 6c 6c 6f 77 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 0a 6e ollowing.copyright.and.license.n
47a00 6f 74 69 63 65 73 20 6a 75 73 74 20 61 66 74 65 72 20 74 68 65 20 74 69 74 6c 65 20 70 61 67 65 otices.just.after.the.title.page
47a20 3a 0a 0a 20 20 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 20 59 45 41 52 20 20 59 :.........Copyright.(C)..YEAR..Y
47a40 4f 55 52 20 4e 41 4d 45 2e 0a 20 20 20 20 20 20 20 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 67 OUR.NAME.........Permission.is.g
47a60 72 61 6e 74 65 64 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 2f 6f ranted.to.copy,.distribute.and/o
47a80 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 20 20 75 6e r.modify.this.document........un
47aa0 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 46 72 65 65 20 44 6f der.the.terms.of.the.GNU.Free.Do
47ac0 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 6e 73 65 2c 20 56 65 72 73 69 6f 6e 20 31 2e 33 cumentation.License,.Version.1.3
47ae0 0a 20 20 20 20 20 20 20 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 70 75 62 ........or.any.later.version.pub
47b00 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e lished.by.the.Free.Software.Foun
47b20 64 61 74 69 6f 6e 3b 0a 20 20 20 20 20 20 20 77 69 74 68 20 6e 6f 20 49 6e 76 61 72 69 61 6e 74 dation;........with.no.Invariant
47b40 20 53 65 63 74 69 6f 6e 73 2c 20 6e 6f 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 2c .Sections,.no.Front-Cover.Texts,
47b60 20 61 6e 64 20 6e 6f 20 42 61 63 6b 2d 43 6f 76 65 72 0a 20 20 20 20 20 20 20 54 65 78 74 73 2e .and.no.Back-Cover........Texts.
47b80 20 20 41 20 63 6f 70 79 20 6f 66 20 74 68 65 20 6c 69 63 65 6e 73 65 20 69 73 20 69 6e 63 6c 75 ..A.copy.of.the.license.is.inclu
47ba0 64 65 64 20 69 6e 20 74 68 65 20 73 65 63 74 69 6f 6e 20 65 6e 74 69 74 6c 65 64 20 60 60 47 4e ded.in.the.section.entitled.``GN
47bc0 55 0a 20 20 20 20 20 20 20 46 72 65 65 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 4c 69 63 65 U........Free.Documentation.Lice
47be0 6e 73 65 27 27 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 49 6e 76 61 72 69 61 6e 74 nse''......If.you.have.Invariant
47c00 20 53 65 63 74 69 6f 6e 73 2c 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 54 65 78 74 73 20 61 6e 64 .Sections,.Front-Cover.Texts.and
47c20 20 42 61 63 6b 2d 43 6f 76 65 72 0a 54 65 78 74 73 2c 20 72 65 70 6c 61 63 65 20 74 68 65 20 e2 .Back-Cover.Texts,.replace.the..
47c40 80 9c 77 69 74 68 2e 2e 2e 54 65 78 74 73 2e e2 80 9d 20 6c 69 6e 65 20 77 69 74 68 20 74 68 69 ..with...Texts.....line.with.thi
47c60 73 3a 0a 0a 20 20 20 20 20 20 20 20 20 77 69 74 68 20 74 68 65 20 49 6e 76 61 72 69 61 6e 74 20 s:...........with.the.Invariant.
47c80 53 65 63 74 69 6f 6e 73 20 62 65 69 6e 67 20 4c 49 53 54 20 54 48 45 49 52 20 54 49 54 4c 45 53 Sections.being.LIST.THEIR.TITLES
47ca0 2c 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 74 68 65 20 46 72 6f 6e 74 2d 43 6f 76 65 72 20 ,.with..........the.Front-Cover.
47cc0 54 65 78 74 73 20 62 65 69 6e 67 20 4c 49 53 54 2c 20 61 6e 64 20 77 69 74 68 20 74 68 65 20 42 Texts.being.LIST,.and.with.the.B
47ce0 61 63 6b 2d 43 6f 76 65 72 20 54 65 78 74 73 0a 20 20 20 20 20 20 20 20 20 62 65 69 6e 67 20 4c ack-Cover.Texts..........being.L
47d00 49 53 54 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 68 61 76 65 20 49 6e 76 61 72 69 61 6e 74 20 53 IST......If.you.have.Invariant.S
47d20 65 63 74 69 6f 6e 73 20 77 69 74 68 6f 75 74 20 43 6f 76 65 72 20 54 65 78 74 73 2c 20 6f 72 20 ections.without.Cover.Texts,.or.
47d40 73 6f 6d 65 20 6f 74 68 65 72 0a 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 68 some.other.combination.of.the.th
47d60 72 65 65 2c 20 6d 65 72 67 65 20 74 68 6f 73 65 20 74 77 6f 20 61 6c 74 65 72 6e 61 74 69 76 65 ree,.merge.those.two.alternative
47d80 73 20 74 6f 20 73 75 69 74 20 74 68 65 0a 73 69 74 75 61 74 69 6f 6e 2e 0a 0a 20 20 20 49 66 20 s.to.suit.the.situation......If.
47da0 79 6f 75 72 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 20 6e 6f 6e 74 72 69 76 69 61 your.document.contains.nontrivia
47dc0 6c 20 65 78 61 6d 70 6c 65 73 20 6f 66 20 70 72 6f 67 72 61 6d 20 63 6f 64 65 2c 20 77 65 0a 72 l.examples.of.program.code,.we.r
47de0 65 63 6f 6d 6d 65 6e 64 20 72 65 6c 65 61 73 69 6e 67 20 74 68 65 73 65 20 65 78 61 6d 70 6c 65 ecommend.releasing.these.example
47e00 73 20 69 6e 20 70 61 72 61 6c 6c 65 6c 20 75 6e 64 65 72 20 79 6f 75 72 20 63 68 6f 69 63 65 20 s.in.parallel.under.your.choice.
47e20 6f 66 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 6c 69 63 65 6e 73 65 2c 20 73 75 63 68 20 61 of.free.software.license,.such.a
47e40 73 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 s.the.GNU.General.Public.License
47e60 2c 20 74 6f 20 70 65 72 6d 69 74 0a 74 68 65 69 72 20 75 73 65 20 69 6e 20 66 72 65 65 20 73 6f ,.to.permit.their.use.in.free.so
47e80 66 74 77 61 72 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 ftware.....File:.dash.info,..Nod
47ea0 65 3a 20 47 50 4c 2c 20 20 4e 65 78 74 3a 20 49 6e 64 65 78 2c 20 20 50 72 65 76 3a 20 46 44 4c e:.GPL,..Next:.Index,..Prev:.FDL
47ec0 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 41 70 70 65 6e 64 69 78 20 42 20 47 4e 55 20 47 65 6e 65 72 ,..Up:.Top..Appendix.B.GNU.Gener
47ee0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a al.Public.License.**************
47f00 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 20 20 20 20 20 20 20 ***********************.........
47f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a .................Version.3,.29.J
47f40 75 6e 65 20 32 30 30 37 0a 0a 20 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 32 30 30 37 une.2007.......Copyright....2007
47f60 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 .Free.Software.Foundation,.Inc..
47f80 3c 68 74 74 70 73 3a 2f 2f 66 73 66 2e 6f 72 67 2f 3e 0a 0a 20 20 20 20 20 45 76 65 72 79 6f 6e <https://fsf.org/>.......Everyon
47fa0 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 6f 70 79 20 61 6e 64 20 64 69 73 74 72 e.is.permitted.to.copy.and.distr
47fc0 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 73 20 6f 66 20 74 68 69 73 0a 20 20 ibute.verbatim.copies.of.this...
47fe0 20 20 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 74 20 63 68 61 6e 67 69 6e ...license.document,.but.changin
48000 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 50 72 65 61 6d 62 6c 65 0a 3d g.it.is.not.allowed...Preamble.=
48020 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 =======..The.GNU.General.Public.
48040 4c 69 63 65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c 69 63 65 License.is.a.free,.copyleft.lice
48060 6e 73 65 20 66 6f 72 20 73 6f 66 74 77 61 72 65 0a 61 6e 64 20 6f 74 68 65 72 20 6b 69 6e 64 73 nse.for.software.and.other.kinds
48080 20 6f 66 20 77 6f 72 6b 73 2e 0a 0a 20 20 20 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 .of.works......The.licenses.for.
480a0 6d 6f 73 74 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 most.software.and.other.practica
480c0 6c 20 77 6f 72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 l.works.are.designed.to.take.awa
480e0 79 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e y.your.freedom.to.share.and.chan
48100 67 65 20 74 68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 ge.the.works...By.contrast,.the.
48120 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e GNU.General.Public.License.is.in
48140 74 65 6e 64 65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d tended.to.guarantee.your.freedom
48160 20 74 6f 0a 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e .to.share.and.change.all.version
48180 73 20 6f 66 20 61 20 70 72 6f 67 72 61 6d e2 80 94 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 s.of.a.program...to.make.sure.it
481a0 20 72 65 6d 61 69 6e 73 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 .remains.free.software.for.all.i
481c0 74 73 20 75 73 65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 ts.users...We,.the.Free.Software
481e0 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c .Foundation,.use.the.GNU.General
48200 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 .Public.License.for.most.of.our.
48220 73 6f 66 74 77 61 72 65 3b 20 69 74 20 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 0a 61 6e 79 software;.it.applies.also.to.any
48240 20 6f 74 68 65 72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 .other.work.released.this.way.by
48260 20 69 74 73 20 61 75 74 68 6f 72 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 69 74 20 .its.authors...You.can.apply.it.
48280 74 6f 0a 79 6f 75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 20 20 20 57 68 65 6e 20 to.your.programs,.too......When.
482a0 77 65 20 73 70 65 61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 we.speak.of.free.software,.we.ar
482c0 65 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 e.referring.to.freedom,.not.pric
482e0 65 2e 20 20 4f 75 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 e...Our.General.Public.Licenses.
48300 61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 are.designed.to.make.sure.that.y
48320 6f 75 0a 68 61 76 65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 ou.have.the.freedom.to.distribut
48340 65 20 63 6f 70 69 65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 e.copies.of.free.software.(and.c
48360 68 61 72 67 65 20 66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 harge.for.them.if.you.wish),.tha
48380 74 20 79 6f 75 20 72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e t.you.receive.source.code.or.can
483a0 20 67 65 74 20 69 74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 .get.it.if.you.want.it,.that.you
483c0 20 63 61 6e 20 63 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 .can.change.the.software.or.use.
483e0 70 69 65 63 65 73 20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d pieces.of.it.in.new.free.program
48400 73 2c 20 61 6e 64 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 s,.and.that.you.know.you.can.do.
48420 74 68 65 73 65 20 74 68 69 6e 67 73 2e 0a 0a 20 20 20 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 these.things......To.protect.you
48440 72 20 72 69 67 68 74 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 r.rights,.we.need.to.prevent.oth
48460 65 72 73 20 66 72 6f 6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 ers.from.denying.you.these.right
48480 73 20 6f 72 20 61 73 6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 s.or.asking.you.to.surrender.the
484a0 20 72 69 67 68 74 73 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 20 68 61 76 65 0a 63 65 .rights...Therefore,.you.have.ce
484c0 72 74 61 69 6e 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 rtain.responsibilities.if.you.di
484e0 73 74 72 69 62 75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c stribute.copies.of.the.software,
48500 20 6f 72 20 69 66 0a 79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 .or.if.you.modify.it:.responsibi
48520 6c 69 74 69 65 73 20 74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 lities.to.respect.the.freedom.of
48540 20 6f 74 68 65 72 73 2e 0a 0a 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 .others......For.example,.if.you
48560 20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f .distribute.copies.of.such.a.pro
48580 67 72 61 6d 2c 20 77 68 65 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 gram,.whether.gratis.or.for.a.fe
485a0 65 2c 20 79 6f 75 20 6d 75 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 e,.you.must.pass.on.to.the.recip
485c0 69 65 6e 74 73 20 74 68 65 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 ients.the.same.freedoms.that.you
485e0 20 72 65 63 65 69 76 65 64 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 .received...You.must.make.sure.t
48600 68 61 74 20 74 68 65 79 2c 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f 72 20 63 61 6e 20 67 65 hat.they,.too,.receive.or.can.ge
48620 74 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 t.the.source.code...And.you.must
48640 20 73 68 6f 77 20 74 68 65 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73 6f 20 74 68 65 79 0a 6b .show.them.these.terms.so.they.k
48660 6e 6f 77 20 74 68 65 69 72 20 72 69 67 68 74 73 2e 0a 0a 20 20 20 44 65 76 65 6c 6f 70 65 72 73 now.their.rights......Developers
48680 20 74 68 61 74 20 75 73 65 20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f .that.use.the.GNU.GPL.protect.yo
486a0 75 72 20 72 69 67 68 74 73 20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 ur.rights.with.two.steps:.(1).as
486c0 73 65 72 74 20 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 sert.copyright.on.the.software,.
486e0 61 6e 64 20 28 32 29 20 6f 66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 and.(2).offer.you.this.License.g
48700 69 76 69 6e 67 20 79 6f 75 20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f iving.you.legal.permission.to.co
48720 70 79 2c 20 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e py,.distribute.and/or.modify.it.
48740 0a 0a 20 20 20 46 6f 72 20 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 e2 80 99 20 61 6e 64 20 61 .....For.the.developers....and.a
48760 75 74 68 6f 72 73 e2 80 99 20 70 72 6f 74 65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20 63 6c uthors....protection,.the.GPL.cl
48780 65 61 72 6c 79 20 65 78 70 6c 61 69 6e 73 0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 early.explains.that.there.is.no.
487a0 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e warranty.for.this.free.software.
487c0 20 20 46 6f 72 20 62 6f 74 68 20 75 73 65 72 73 e2 80 99 20 61 6e 64 0a 61 75 74 68 6f 72 73 e2 ..For.both.users....and.authors.
487e0 80 99 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 6d ...sake,.the.GPL.requires.that.m
48800 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 62 65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 odified.versions.be.marked.as.ch
48820 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 65 69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 anged,.so.that.their.problems.wi
48840 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 74 65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 ll.not.be.attributed.erroneously
48860 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 .to.authors.of.previous.versions
48880 2e 0a 0a 20 20 20 53 6f 6d 65 20 64 65 76 69 63 65 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 20 ......Some.devices.are.designed.
488a0 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 73 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 to.deny.users.access.to.install.
488c0 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 or.run.modified.versions.of.the.
488e0 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 65 6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 software.inside.them,.although.t
48900 68 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 61 6e 20 64 6f 20 73 6f 2e 20 20 54 68 69 73 he.manufacturer.can.do.so...This
48920 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 .is.fundamentally.incompatible.w
48940 69 74 68 20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 6f 74 65 63 74 69 6e 67 20 75 73 65 72 73 e2 ith.the.aim.of.protecting.users.
48960 80 99 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 ...freedom.to.change.the.softwar
48980 65 2e 20 20 54 68 65 20 73 79 73 74 65 6d 61 74 69 63 0a 70 61 74 74 65 72 6e 20 6f 66 20 73 75 e...The.systematic.pattern.of.su
489a0 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 68 65 20 61 72 65 61 20 6f 66 20 70 ch.abuse.occurs.in.the.area.of.p
489c0 72 6f 64 75 63 74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 61 6c 73 20 74 6f 0a 75 73 65 2c 20 roducts.for.individuals.to.use,.
489e0 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 68 65 72 65 20 69 74 20 69 73 20 6d which.is.precisely.where.it.is.m
48a00 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 77 65 ost.unacceptable...Therefore,.we
48a20 0a 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 .have.designed.this.version.of.t
48a40 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 68 65 20 70 72 61 63 74 69 63 65 20 he.GPL.to.prohibit.the.practice.
48a60 66 6f 72 20 74 68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e 20 20 49 66 20 73 75 63 68 20 70 72 6f for.those.products...If.such.pro
48a80 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 69 6e 20 6f 74 68 blems.arise.substantially.in.oth
48aa0 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e 64 20 72 65 61 64 79 20 74 6f 20 65 78 er.domains,.we.stand.ready.to.ex
48ac0 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 74 6f 20 74 68 6f 73 65 20 64 6f 6d tend.this.provision.to.those.dom
48ae0 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 6f 6e 73 0a 6f 66 20 74 68 65 20 47 ains.in.future.versions.of.the.G
48b00 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 74 65 63 74 20 74 68 65 20 66 72 65 PL,.as.needed.to.protect.the.fre
48b20 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 20 46 69 6e 61 6c 6c 79 2c 20 65 76 65 72 edom.of.users......Finally,.ever
48b40 79 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e 65 64 20 63 6f 6e 73 74 61 6e 74 y.program.is.threatened.constant
48b60 6c 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 73 2e 0a 53 74 61 74 65 73 20 73 ly.by.software.patents..States.s
48b80 68 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e 74 73 20 74 6f 20 72 65 73 74 72 hould.not.allow.patents.to.restr
48ba0 69 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 73 65 20 6f 66 0a 73 6f 66 74 77 ict.development.and.use.of.softw
48bc0 61 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 63 6f 6d 70 75 74 65 72 73 are.on.general-purpose.computers
48be0 2c 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 6f 2c 20 77 65 20 77 69 73 68 20 ,.but.in.those.that.do,.we.wish.
48c00 74 6f 0a 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 64 61 6e 67 65 72 20 74 68 61 74 to.avoid.the.special.danger.that
48c20 20 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 20 66 72 65 65 20 70 72 6f 67 72 .patents.applied.to.a.free.progr
48c40 61 6d 20 63 6f 75 6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 66 65 63 74 69 76 65 6c 79 20 70 72 6f am.could.make.it.effectively.pro
48c60 70 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 20 74 68 69 73 2c 20 74 68 65 20 prietary...To.prevent.this,.the.
48c80 47 50 4c 20 61 73 73 75 72 65 73 20 74 68 61 74 0a 70 61 74 65 6e 74 73 20 63 61 6e 6e 6f 74 20 GPL.assures.that.patents.cannot.
48ca0 62 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 20 70 72 6f 67 72 61 6d 20 6e 6f be.used.to.render.the.program.no
48cc0 6e 2d 66 72 65 65 2e 0a 0a 20 20 20 54 68 65 20 70 72 65 63 69 73 65 20 74 65 72 6d 73 20 61 6e n-free......The.precise.terms.an
48ce0 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 6e 67 2c 20 64 69 73 74 72 69 d.conditions.for.copying,.distri
48d00 62 75 74 69 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 66 6f 6c 6c 6f 77 2e 0a bution.and.modification.follow..
48d20 0a 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .TERMS.AND.CONDITIONS.==========
48d40 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 20 20 30 2e 20 44 65 66 69 6e 69 74 69 6f 6e 73 2e 0a 0a 20 ==========....0..Definitions....
48d60 20 20 20 20 e2 80 9c 54 68 69 73 20 4c 69 63 65 6e 73 65 e2 80 9d 20 72 65 66 65 72 73 20 74 6f .......This.License....refers.to
48d80 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .version.3.of.the.GNU.General.Pu
48da0 62 6c 69 63 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 e2 80 9c 43 6f 70 79 blic......License...........Copy
48dc0 72 69 67 68 74 e2 80 9d 20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 79 72 69 67 68 74 2d 6c 69 right....also.means.copyright-li
48de0 6b 65 20 6c 61 77 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f 74 68 65 72 0a 20 20 20 20 ke.laws.that.apply.to.other.....
48e00 20 6b 69 6e 64 73 20 6f 66 20 77 6f 72 6b 73 2c 20 73 75 63 68 20 61 73 20 73 65 6d 69 63 6f 6e .kinds.of.works,.such.as.semicon
48e20 64 75 63 74 6f 72 20 6d 61 73 6b 73 2e 0a 0a 20 20 20 20 20 e2 80 9c 54 68 65 20 50 72 6f 67 72 ductor.masks...........The.Progr
48e40 61 6d e2 80 9d 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 20 63 6f 70 79 72 69 67 68 74 61 62 6c am....refers.to.any.copyrightabl
48e60 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 e.work.licensed.under.this......
48e80 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 69 73 20 61 64 64 72 65 License...Each.licensee.is.addre
48ea0 73 73 65 64 20 61 73 20 e2 80 9c 79 6f 75 e2 80 9d 2e 20 20 e2 80 9c 4c 69 63 65 6e 73 65 65 73 ssed.as....you.........Licensees
48ec0 e2 80 9d 20 61 6e 64 0a 20 20 20 20 20 e2 80 9c 72 65 63 69 70 69 65 6e 74 73 e2 80 9d 20 6d 61 ....and.........recipients....ma
48ee0 79 20 62 65 20 69 6e 64 69 76 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e y.be.individuals.or.organization
48f00 73 2e 0a 0a 20 20 20 20 20 54 6f 20 e2 80 9c 6d 6f 64 69 66 79 e2 80 9d 20 61 20 77 6f 72 6b 20 s........To....modify....a.work.
48f20 6d 65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 72 6f 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 means.to.copy.from.or.adapt.all.
48f40 6f 72 20 70 61 72 74 20 6f 66 20 74 68 65 0a 20 20 20 20 20 77 6f 72 6b 20 69 6e 20 61 20 66 61 or.part.of.the......work.in.a.fa
48f60 73 68 69 6f 6e 20 72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 6d 69 73 shion.requiring.copyright.permis
48f80 73 69 6f 6e 2c 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 0a 20 20 20 20 20 6d 61 6b 69 6e 67 sion,.other.than.the......making
48fa0 20 6f 66 20 61 6e 20 65 78 61 63 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 73 75 6c 74 69 6e .of.an.exact.copy...The.resultin
48fc0 67 20 77 6f 72 6b 20 69 73 20 63 61 6c 6c 65 64 20 61 20 e2 80 9c 6d 6f 64 69 66 69 65 64 0a 20 g.work.is.called.a....modified..
48fe0 20 20 20 20 76 65 72 73 69 6f 6e e2 80 9d 20 6f 66 20 74 68 65 20 65 61 72 6c 69 65 72 20 77 6f ....version....of.the.earlier.wo
49000 72 6b 20 6f 72 20 61 20 77 6f 72 6b 20 e2 80 9c 62 61 73 65 64 20 6f 6e e2 80 9d 20 74 68 65 20 rk.or.a.work....based.on....the.
49020 65 61 72 6c 69 65 72 20 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 41 20 e2 80 9c 63 6f 76 65 72 65 64 earlier.work........A....covered
49040 20 77 6f 72 6b e2 80 9d 20 6d 65 61 6e 73 20 65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64 69 .work....means.either.the.unmodi
49060 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b 0a 20 20 20 20 20 62 61 73 65 fied.Program.or.a.work......base
49080 64 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 20 20 20 54 6f 20 e2 80 9c 70 72 d.on.the.Program........To....pr
490a0 6f 70 61 67 61 74 65 e2 80 9d 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 64 6f 20 61 6e opagate....a.work.means.to.do.an
490c0 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f 75 74 0a 20 20 20 ything.with.it.that,.without....
490e0 20 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 6f 75 20 64 69 72 ..permission,.would.make.you.dir
49100 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c 65 20 66 6f 72 0a ectly.or.secondarily.liable.for.
49120 20 20 20 20 20 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 .....infringement.under.applicab
49140 6c 65 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 65 63 75 74 69 le.copyright.law,.except.executi
49160 6e 67 20 69 74 20 6f 6e 0a 20 20 20 20 20 61 20 63 6f 6d 70 75 74 65 72 20 6f 72 20 6d 6f 64 69 ng.it.on......a.computer.or.modi
49180 66 79 69 6e 67 20 61 20 70 72 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 61 67 61 74 69 fying.a.private.copy...Propagati
491a0 6f 6e 20 69 6e 63 6c 75 64 65 73 0a 20 20 20 20 20 63 6f 70 79 69 6e 67 2c 20 64 69 73 74 72 69 on.includes......copying,.distri
491c0 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 bution.(with.or.without.modifica
491e0 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 0a 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 tion),.making......available.to.
49200 74 68 65 20 70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 73 6f 6d 65 20 63 6f 75 6e 74 72 69 65 the.public,.and.in.some.countrie
49220 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 61 73 0a 20 20 20 20 20 77 65 6c 6c 2e s.other.activities.as......well.
49240 0a 0a 20 20 20 20 20 54 6f 20 e2 80 9c 63 6f 6e 76 65 79 e2 80 9d 20 61 20 77 6f 72 6b 20 6d 65 .......To....convey....a.work.me
49260 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 74 ans.any.kind.of.propagation.that
49280 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 20 20 20 20 20 70 61 72 74 69 65 73 20 74 6f 20 6d .enables.other......parties.to.m
492a0 61 6b 65 20 6f 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e 74 ake.or.receive.copies...Mere.int
492c0 65 72 61 63 74 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 0a 20 20 20 20 20 74 68 72 6f 75 67 eraction.with.a.user......throug
492e0 68 20 61 20 63 6f 6d 70 75 74 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 72 h.a.computer.network,.with.no.tr
49300 61 6e 73 66 65 72 20 6f 66 20 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 0a 20 20 20 20 20 63 6f ansfer.of.a.copy,.is.not......co
49320 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 20 20 20 41 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 nveying........An.interactive.us
49340 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 6c 61 79 73 20 e2 80 9c 41 70 70 72 6f 70 72 er.interface.displays....Appropr
49360 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 e2 80 9d 0a 20 20 20 20 20 74 6f 20 74 68 iate.Legal.Notices.........to.th
49380 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 61 20 63 6f 6e 76 e.extent.that.it.includes.a.conv
493a0 65 6e 69 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 69 62 6c 65 0a 20 enient.and.prominently.visible..
493c0 20 20 20 20 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 6e ....feature.that.(1).displays.an
493e0 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 61 .appropriate.copyright.notice,.a
49400 6e 64 20 28 32 29 0a 20 20 20 20 20 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 nd.(2)......tells.the.user.that.
49420 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f 72 there.is.no.warranty.for.the.wor
49440 6b 20 28 65 78 63 65 70 74 20 74 6f 0a 20 20 20 20 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 k.(except.to......the.extent.tha
49460 74 20 77 61 72 72 61 6e 74 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 t.warranties.are.provided),.that
49480 20 6c 69 63 65 6e 73 65 65 73 20 6d 61 79 20 63 6f 6e 76 65 79 0a 20 20 20 20 20 74 68 65 20 77 .licensees.may.convey......the.w
494a0 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 ork.under.this.License,.and.how.
494c0 74 6f 20 76 69 65 77 20 61 20 63 6f 70 79 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 to.view.a.copy.of.this......Lice
494e0 6e 73 65 2e 20 20 49 66 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 70 72 65 73 65 6e 74 73 20 nse...If.the.interface.presents.
49500 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d 61 6e 64 73 20 6f 72 0a 20 20 20 20 20 a.list.of.user.commands.or......
49520 6f 70 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 20 6d 65 6e 75 2c 20 61 20 70 72 6f 6d 69 options,.such.as.a.menu,.a.promi
49540 6e 65 6e 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 65 74 73 20 74 68 69 73 nent.item.in.the.list.meets.this
49560 0a 20 20 20 20 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 20 43 6f ......criterion.....1..Source.Co
49580 64 65 2e 0a 0a 20 20 20 20 20 54 68 65 20 e2 80 9c 73 6f 75 72 63 65 20 63 6f 64 65 e2 80 9d 20 de........The....source.code....
495a0 66 6f 72 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 66 for.a.work.means.the.preferred.f
495c0 6f 72 6d 20 6f 66 20 74 68 65 20 77 6f 72 6b 0a 20 20 20 20 20 66 6f 72 20 6d 61 6b 69 6e 67 20 orm.of.the.work......for.making.
495e0 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 20 69 74 2e 20 20 e2 80 9c 4f 62 6a 65 63 74 20 modifications.to.it......Object.
49600 63 6f 64 65 e2 80 9d 20 6d 65 61 6e 73 20 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 20 20 20 code....means.any.non-source....
49620 20 20 66 6f 72 6d 20 6f 66 20 61 20 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 41 20 e2 80 9c 53 74 61 ..form.of.a.work........A....Sta
49640 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 e2 80 9d 20 6d 65 61 6e 73 20 61 6e 20 69 6e 74 65 ndard.Interface....means.an.inte
49660 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 65 72 20 69 73 20 61 6e 0a 20 20 20 20 20 6f 66 66 rface.that.either.is.an......off
49680 69 63 69 61 6c 20 73 74 61 6e 64 61 72 64 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 63 6f icial.standard.defined.by.a.reco
496a0 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 0a 20 20 gnized.standards.body,.or,.in...
496c0 20 20 20 74 68 65 20 63 61 73 65 20 6f 66 20 69 6e 74 65 72 66 61 63 65 73 20 73 70 65 63 69 66 ...the.case.of.interfaces.specif
496e0 69 65 64 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 ied.for.a.particular.programming
49700 0a 20 20 20 20 20 6c 61 6e 67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 20 69 73 20 77 69 64 65 ......language,.one.that.is.wide
49720 6c 79 20 75 73 65 64 20 61 6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 ly.used.among.developers.working
49740 20 69 6e 20 74 68 61 74 0a 20 20 20 20 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 20 20 20 54 68 .in.that......language........Th
49760 65 20 e2 80 9c 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 e2 80 9d 20 6f 66 20 61 6e 20 65 e....System.Libraries....of.an.e
49780 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 69 6e 67 2c xecutable.work.include.anything,
497a0 0a 20 20 20 20 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 77 ......other.than.the.work.as.a.w
497c0 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 hole,.that.(a).is.included.in.th
497e0 65 20 6e 6f 72 6d 61 6c 0a 20 20 20 20 20 66 6f 72 6d 20 6f 66 20 70 61 63 6b 61 67 69 6e 67 20 e.normal......form.of.packaging.
49800 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 62 75 74 20 77 68 69 63 68 20 69 73 20 a.Major.Component,.but.which.is.
49820 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 0a 20 20 20 20 20 4d 61 6a 6f 72 20 43 6f 6d 70 not.part.of.that......Major.Comp
49840 6f 6e 65 6e 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65 73 20 6f 6e 6c 79 20 74 6f 20 65 6e onent,.and.(b).serves.only.to.en
49860 61 62 6c 65 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 77 69 74 68 0a 20 20 20 20 20 74 able.use.of.the.work.with......t
49880 68 61 74 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 hat.Major.Component,.or.to.imple
498a0 6d 65 6e 74 20 61 20 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 20 66 6f 72 0a 20 20 ment.a.Standard.Interface.for...
498c0 20 20 20 77 68 69 63 68 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 ...which.an.implementation.is.av
498e0 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 ailable.to.the.public.in.source.
49900 63 6f 64 65 0a 20 20 20 20 20 66 6f 72 6d 2e 20 20 41 20 e2 80 9c 4d 61 6a 6f 72 20 43 6f 6d 70 code......form...A....Major.Comp
49920 6f 6e 65 6e 74 e2 80 9d 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 65 78 74 2c 20 6d 65 61 6e 73 onent...,.in.this.context,.means
49940 20 61 20 6d 61 6a 6f 72 0a 20 20 20 20 20 65 73 73 65 6e 74 69 61 6c 20 63 6f 6d 70 6f 6e 65 6e .a.major......essential.componen
49960 74 20 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 20 73 79 73 74 65 6d 2c 20 61 6e 64 20 73 6f t.(kernel,.window.system,.and.so
49980 20 6f 6e 29 20 6f 66 20 74 68 65 0a 20 20 20 20 20 73 70 65 63 69 66 69 63 20 6f 70 65 72 61 74 .on).of.the......specific.operat
499a0 69 6e 67 20 73 79 73 74 65 6d 20 28 69 66 20 61 6e 79 29 20 6f 6e 20 77 68 69 63 68 20 74 68 65 ing.system.(if.any).on.which.the
499c0 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 0a 20 20 20 20 20 72 75 6e 73 2c 20 6f 72 20 61 .executable.work......runs,.or.a
499e0 20 63 6f 6d 70 69 6c 65 72 20 75 73 65 64 20 74 6f 20 70 72 6f 64 75 63 65 20 74 68 65 20 77 6f .compiler.used.to.produce.the.wo
49a00 72 6b 2c 20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 0a 20 20 20 20 20 69 6e 74 65 72 rk,.or.an.object.code......inter
49a20 70 72 65 74 65 72 20 75 73 65 64 20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 20 20 20 20 20 54 68 65 preter.used.to.run.it........The
49a40 20 e2 80 9c 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 e2 80 9d 20 66 6f 72 20 ....Corresponding.Source....for.
49a60 61 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 a.work.in.object.code.form.means
49a80 20 61 6c 6c 0a 20 20 20 20 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6e 65 65 64 65 64 .all......the.source.code.needed
49aa0 20 74 6f 20 67 65 6e 65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c 20 61 6e 64 20 28 66 6f 72 20 .to.generate,.install,.and.(for.
49ac0 61 6e 20 65 78 65 63 75 74 61 62 6c 65 0a 20 20 20 20 20 77 6f 72 6b 29 20 72 75 6e 20 74 68 65 an.executable......work).run.the
49ae0 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 77 .object.code.and.to.modify.the.w
49b00 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 72 69 70 74 73 0a 20 20 20 20 20 74 6f 20 63 ork,.including.scripts......to.c
49b20 6f 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 2e 20 20 48 6f 77 65 76 65 ontrol.those.activities...Howeve
49b40 72 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 74 68 65 0a 20 20 20 20 20 r,.it.does.not.include.the......
49b60 77 6f 72 6b e2 80 99 73 20 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 20 67 65 work...s.System.Libraries,.or.ge
49b80 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 6c 6c 79 neral-purpose.tools.or.generally
49ba0 0a 20 20 20 20 20 61 76 61 69 6c 61 62 6c 65 20 66 72 65 65 20 70 72 6f 67 72 61 6d 73 20 77 68 ......available.free.programs.wh
49bc0 69 63 68 20 61 72 65 20 75 73 65 64 20 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 72 66 6f ich.are.used.unmodified.in.perfo
49be0 72 6d 69 6e 67 0a 20 20 20 20 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 20 62 75 74 20 rming......those.activities.but.
49c00 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 which.are.not.part.of.the.work..
49c20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 .For.example,......Corresponding
49c40 20 53 6f 75 72 63 65 20 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 66 61 63 65 20 64 65 66 69 6e .Source.includes.interface.defin
49c60 69 74 69 6f 6e 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 0a 20 20 20 20 20 77 69 74 68 ition.files.associated......with
49c80 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 .source.files.for.the.work,.and.
49ca0 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 0a 20 20 20 20 20 the.source.code.for.shared......
49cc0 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 6c 69 6e 6b 65 64 libraries.and.dynamically.linked
49ce0 20 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 77 6f 72 6b 20 69 73 0a 20 20 .subprograms.that.the.work.is...
49d00 20 20 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f 20 72 65 71 75 ...specifically.designed.to.requ
49d20 69 72 65 2c 20 73 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 74 61 0a 20 20 ire,.such.as.by.intimate.data...
49d40 20 20 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 ...communication.or.control.flow
49d60 20 62 65 74 77 65 65 6e 20 74 68 6f 73 65 20 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 6f .between.those.subprograms.and.o
49d80 74 68 65 72 0a 20 20 20 20 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 20 20 ther......parts.of.the.work.....
49da0 20 20 20 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6e 65 65 64 ...The.Corresponding.Source.need
49dc0 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 69 6e 67 20 74 68 61 74 20 75 73 65 72 73 .not.include.anything.that.users
49de0 20 63 61 6e 0a 20 20 20 20 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 74 6f 6d 61 74 69 63 61 6c .can......regenerate.automatical
49e00 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 43 6f 72 72 65 ly.from.other.parts.of.the.Corre
49e20 73 70 6f 6e 64 69 6e 67 0a 20 20 20 20 20 53 6f 75 72 63 65 2e 0a 0a 20 20 20 20 20 54 68 65 20 sponding......Source........The.
49e40 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 20 77 6f 72 6b 20 Corresponding.Source.for.a.work.
49e60 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 61 74 0a 20 20 20 20 in.source.code.form.is.that.....
49e80 20 73 61 6d 65 20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73 69 63 20 50 65 72 6d 69 73 73 69 .same.work.....2..Basic.Permissi
49ea0 6f 6e 73 2e 0a 0a 20 20 20 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e ons........All.rights.granted.un
49ec0 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 66 6f 72 der.this.License.are.granted.for
49ee0 20 74 68 65 20 74 65 72 6d 20 6f 66 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 .the.term.of......copyright.on.t
49f00 68 65 20 50 72 6f 67 72 61 6d 2c 20 61 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 6c 65 20 he.Program,.and.are.irrevocable.
49f20 70 72 6f 76 69 64 65 64 20 74 68 65 20 73 74 61 74 65 64 0a 20 20 20 20 20 63 6f 6e 64 69 74 69 provided.the.stated......conditi
49f40 6f 6e 73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 73 20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 ons.are.met...This.License.expli
49f60 63 69 74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 72 20 75 6e 6c 69 6d 69 74 65 64 0a 20 20 20 citly.affirms.your.unlimited....
49f80 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 ..permission.to.run.the.unmodifi
49fa0 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 74 20 66 72 6f 6d 20 72 75 6e ed.Program...The.output.from.run
49fc0 6e 69 6e 67 0a 20 20 20 20 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 20 63 6f 76 65 ning......a.covered.work.is.cove
49fe0 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 20 74 68 65 20 red.by.this.License.only.if.the.
4a000 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 0a 20 20 20 20 20 69 74 73 20 63 6f 6e 74 65 6e 74 2c 20 output,.given......its.content,.
4a020 63 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 69 constitutes.a.covered.work...Thi
4a040 73 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 0a 20 20 20 20 20 79 6f 75 72 s.License.acknowledges......your
4a060 20 72 69 67 68 74 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 65 71 75 .rights.of.fair.use.or.other.equ
4a080 69 76 61 6c 65 6e 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 0a 20 20 20 20 20 63 6f 70 ivalent,.as.provided.by......cop
4a0a0 79 72 69 67 68 74 20 6c 61 77 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 2c 20 yright.law........You.may.make,.
4a0c0 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 67 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 run.and.propagate.covered.works.
4a0e0 74 68 61 74 20 79 6f 75 20 64 6f 20 6e 6f 74 0a 20 20 20 20 20 63 6f 6e 76 65 79 2c 20 77 69 74 that.you.do.not......convey,.wit
4a100 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f 20 6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 hout.conditions.so.long.as.your.
4a120 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 72 65 6d 61 69 6e 73 20 69 license.otherwise......remains.i
4a140 6e 20 66 6f 72 63 65 2e 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 63 6f 76 65 72 65 64 n.force...You.may.convey.covered
4a160 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 65 0a 20 20 20 20 20 73 6f .works.to.others.for.the......so
4a180 6c 65 20 70 75 72 70 6f 73 65 20 6f 66 20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 6b 65 20 6d le.purpose.of.having.them.make.m
4a1a0 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 20 79 6f 75 odifications.exclusively.for.you
4a1c0 2c 0a 20 20 20 20 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 20 77 69 74 68 20 66 61 63 69 6c ,......or.provide.you.with.facil
4a1e0 69 74 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 70 ities.for.running.those.works,.p
4a200 72 6f 76 69 64 65 64 0a 20 20 20 20 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 77 69 74 rovided......that.you.comply.wit
4a220 68 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 63 h.the.terms.of.this.License.in.c
4a240 6f 6e 76 65 79 69 6e 67 20 61 6c 6c 0a 20 20 20 20 20 6d 61 74 65 72 69 61 6c 20 66 6f 72 20 77 onveying.all......material.for.w
4a260 68 69 63 68 20 79 6f 75 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 69 67 68 hich.you.do.not.control.copyrigh
4a280 74 2e 20 20 54 68 6f 73 65 20 74 68 75 73 20 6d 61 6b 69 6e 67 0a 20 20 20 20 20 6f 72 20 72 75 t...Those.thus.making......or.ru
4a2a0 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 66 6f 72 20 79 6f 75 20 nning.the.covered.works.for.you.
4a2c0 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 73 69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 0a 20 must.do.so.exclusively.on.your..
4a2e0 20 20 20 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 72 20 64 69 72 65 63 74 69 6f 6e ....behalf,.under.your.direction
4a300 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d 73 20 74 68 61 74 20 70 72 6f 68 .and.control,.on.terms.that.proh
4a320 69 62 69 74 0a 20 20 20 20 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 20 61 6e 79 20 63 ibit......them.from.making.any.c
4a340 6f 70 69 65 73 20 6f 66 20 79 6f 75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 6d 61 74 65 72 69 opies.of.your.copyrighted.materi
4a360 61 6c 20 6f 75 74 73 69 64 65 0a 20 20 20 20 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f 6e 73 68 al.outside......their.relationsh
4a380 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20 20 20 20 43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 ip.with.you........Conveying.und
4a3a0 65 72 20 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 20 70 65 er.any.other.circumstances.is.pe
4a3c0 72 6d 69 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 0a 20 20 20 20 20 74 68 65 20 63 6f rmitted.solely.under......the.co
4a3e0 6e 64 69 74 69 6f 6e 73 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 63 65 6e nditions.stated.below...Sublicen
4a400 73 69 6e 67 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 0a 20 20 20 sing.is.not.allowed;.section....
4a420 20 20 31 30 20 6d 61 6b 65 73 20 69 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20 20 33 2e ..10.makes.it.unnecessary.....3.
4a440 20 50 72 6f 74 65 63 74 69 6e 67 20 55 73 65 72 73 e2 80 99 20 4c 65 67 61 6c 20 52 69 67 68 74 .Protecting.Users....Legal.Right
4a460 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a 0a s.From.Anti-Circumvention.Law...
4a480 20 20 20 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 .....No.covered.work.shall.be.de
4a4a0 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 66 66 65 63 74 69 76 65 20 74 65 63 68 6e 6f emed.part.of.an.effective.techno
4a4c0 6c 6f 67 69 63 61 6c 0a 20 20 20 20 20 6d 65 61 73 75 72 65 20 75 6e 64 65 72 20 61 6e 79 20 61 logical......measure.under.any.a
4a4e0 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 6e 67 20 6f 62 6c 69 67 61 74 pplicable.law.fulfilling.obligat
4a500 69 6f 6e 73 20 75 6e 64 65 72 0a 20 20 20 20 20 61 72 74 69 63 6c 65 20 31 31 20 6f 66 20 74 68 ions.under......article.11.of.th
4a520 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f 70 74 65 64 20 e.WIPO.copyright.treaty.adopted.
4a540 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 0a 20 20 20 20 20 31 39 39 36 2c 20 6f 72 20 73 69 6d on.20.December......1996,.or.sim
4a560 69 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 ilar.laws.prohibiting.or.restric
4a580 74 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 0a 20 20 20 20 20 73 75 63 68 20 ting.circumvention.of......such.
4a5a0 6d 65 61 73 75 72 65 73 2e 0a 0a 20 20 20 20 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 measures........When.you.convey.
4a5c0 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c 65 a.covered.work,.you.waive.any.le
4a5e0 67 61 6c 20 70 6f 77 65 72 20 74 6f 20 66 6f 72 62 69 64 0a 20 20 20 20 20 63 69 72 63 75 6d 76 gal.power.to.forbid......circumv
4a600 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 ention.of.technological.measures
4a620 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 73 75 63 68 0a 20 20 20 20 20 63 69 72 63 75 6d 76 .to.the.extent.such......circumv
4a640 65 6e 74 69 6f 6e 20 69 73 20 65 66 66 65 63 74 65 64 20 62 79 20 65 78 65 72 63 69 73 69 6e 67 ention.is.effected.by.exercising
4a660 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 20 20 20 20 20 .rights.under.this.License......
4a680 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b with.respect.to.the.covered.work
4a6a0 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 69 6e 74 65 6e 74 69 6f 6e ,.and.you.disclaim.any.intention
4a6c0 20 74 6f 0a 20 20 20 20 20 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 20 6d 6f 64 69 .to......limit.operation.or.modi
4a6e0 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 61 6e 73 20 fication.of.the.work.as.a.means.
4a700 6f 66 0a 20 20 20 20 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 20 74 68 65 20 77 of......enforcing,.against.the.w
4a720 6f 72 6b e2 80 99 73 20 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 ork...s.users,.your.or.third.par
4a740 74 69 65 73 e2 80 99 20 6c 65 67 61 6c 0a 20 20 20 20 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 ties....legal......rights.to.for
4a760 62 69 64 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68 6e 6f 6c 6f 67 69 63 bid.circumvention.of.technologic
4a780 61 6c 20 6d 65 61 73 75 72 65 73 2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 al.measures.....4..Conveying.Ver
4a7a0 62 61 74 69 6d 20 43 6f 70 69 65 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 batim.Copies........You.may.conv
4a7c0 65 79 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 ey.verbatim.copies.of.the.Progra
4a7e0 6d e2 80 99 73 20 73 6f 75 72 63 65 20 63 6f 64 65 20 61 73 20 79 6f 75 0a 20 20 20 20 20 72 65 m...s.source.code.as.you......re
4a800 63 65 69 76 65 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 69 75 6d 2c 20 70 72 6f 76 69 64 65 ceive.it,.in.any.medium,.provide
4a820 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f 75 73 6c 79 20 61 6e 64 0a 20 20 20 d.that.you.conspicuously.and....
4a840 20 20 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f 6e 20 65 61 63 68 20 ..appropriately.publish.on.each.
4a860 63 6f 70 79 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f copy.an.appropriate.copyright.no
4a880 74 69 63 65 3b 0a 20 20 20 20 20 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 tice;......keep.intact.all.notic
4a8a0 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 es.stating.that.this.License.and
4a8c0 20 61 6e 79 0a 20 20 20 20 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 .any......non-permissive.terms.a
4a8e0 64 64 65 64 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 dded.in.accord.with.section.7.ap
4a900 70 6c 79 20 74 6f 20 74 68 65 0a 20 20 20 20 20 63 6f 64 65 3b 20 6b 65 65 70 20 69 6e 74 61 63 ply.to.the......code;.keep.intac
4a920 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 t.all.notices.of.the.absence.of.
4a940 61 6e 79 20 77 61 72 72 61 6e 74 79 3b 20 61 6e 64 0a 20 20 20 20 20 67 69 76 65 20 61 6c 6c 20 any.warranty;.and......give.all.
4a960 72 65 63 69 70 69 65 6e 74 73 20 61 20 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 recipients.a.copy.of.this.Licens
4a980 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 20 20 20 e.along.with.the.Program........
4a9a0 59 6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 6e 79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 You.may.charge.any.price.or.no.p
4a9c0 72 69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f 70 79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 rice.for.each.copy.that.you.conv
4a9e0 65 79 2c 0a 20 20 20 20 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6f 66 66 65 72 20 73 75 70 70 6f ey,......and.you.may.offer.suppo
4aa00 72 74 20 6f 72 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 74 69 6f 6e 20 66 6f 72 20 61 20 rt.or.warranty.protection.for.a.
4aa20 66 65 65 2e 0a 0a 20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4d 6f 64 69 66 69 65 64 20 53 6f fee.....5..Conveying.Modified.So
4aa40 75 72 63 65 20 56 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e urce.Versions........You.may.con
4aa60 76 65 79 20 61 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c vey.a.work.based.on.the.Program,
4aa80 20 6f 72 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 0a 20 20 20 20 20 70 72 .or.the.modifications.to......pr
4aaa0 6f 64 75 63 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e 20 74 68 oduce.it.from.the.Program,.in.th
4aac0 65 20 66 6f 72 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 68 65 0a e.form.of.source.code.under.the.
4aae0 20 20 20 20 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 .....terms.of.section.4,.provide
4ab00 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 d.that.you.also.meet.all.of.thes
4ab20 65 0a 20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 20 20 20 61 2e 20 54 68 e......conditions:.........a..Th
4ab40 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 e.work.must.carry.prominent.noti
4ab60 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 79 6f 75 0a 20 20 20 20 20 20 20 20 20 20 6d ces.stating.that.you...........m
4ab80 6f 64 69 66 69 65 64 20 69 74 2c 20 61 6e 64 20 67 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e odified.it,.and.giving.a.relevan
4aba0 74 20 64 61 74 65 2e 0a 0a 20 20 20 20 20 20 20 62 2e 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 t.date..........b..The.work.must
4abc0 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e 67 .carry.prominent.notices.stating
4abe0 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 20 20 20 20 20 20 20 20 72 65 6c 65 61 73 65 64 20 75 .that.it.is...........released.u
4ac00 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20 63 6f 6e 64 69 74 nder.this.License.and.any.condit
4ac20 69 6f 6e 73 20 61 64 64 65 64 20 75 6e 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 73 65 63 74 69 ions.added.under...........secti
4ac40 6f 6e 20 37 2e 20 20 54 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 73 on.7...This.requirement.modifies
4ac60 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 73 65 .the.requirement.in...........se
4ac80 63 74 69 6f 6e 20 34 20 74 6f 20 e2 80 9c 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f ction.4.to....keep.intact.all.no
4aca0 74 69 63 65 73 e2 80 9d 2e 0a 0a 20 20 20 20 20 20 20 63 2e 20 59 6f 75 20 6d 75 73 74 20 6c 69 tices.............c..You.must.li
4acc0 63 65 6e 73 65 20 74 68 65 20 65 6e 74 69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77 68 6f 6c cense.the.entire.work,.as.a.whol
4ace0 65 2c 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 4c 69 63 65 6e 73 65 20 e,.under.this...........License.
4ad00 74 6f 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 73 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 to.anyone.who.comes.into.possess
4ad20 69 6f 6e 20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 4c ion.of.a.copy...This...........L
4ad40 69 63 65 6e 73 65 20 77 69 6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 70 6c 79 2c 20 61 6c 6f icense.will.therefore.apply,.alo
4ad60 6e 67 20 77 69 74 68 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 ng.with.any.applicable..........
4ad80 20 73 65 63 74 69 6f 6e 20 37 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 6f 20 .section.7.additional.terms,.to.
4ada0 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c 0a 20 the.whole.of.the.work,.and.all..
4adc0 20 20 20 20 20 20 20 20 20 69 74 73 20 70 61 72 74 73 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f .........its.parts,.regardless.o
4ade0 66 20 68 6f 77 20 74 68 65 79 20 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 4c f.how.they.are.packaged...This.L
4ae00 69 63 65 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 67 69 76 65 73 20 6e 6f 20 70 65 72 6d 69 73 icense...........gives.no.permis
4ae20 73 69 6f 6e 20 74 6f 20 6c 69 63 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 6e 79 20 sion.to.license.the.work.in.any.
4ae40 6f 74 68 65 72 20 77 61 79 2c 20 62 75 74 0a 20 20 20 20 20 20 20 20 20 20 69 74 20 64 6f 65 73 other.way,.but...........it.does
4ae60 20 6e 6f 74 20 69 6e 76 61 6c 69 64 61 74 65 20 73 75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 .not.invalidate.such.permission.
4ae80 69 66 20 79 6f 75 20 68 61 76 65 20 73 65 70 61 72 61 74 65 6c 79 0a 20 20 20 20 20 20 20 20 20 if.you.have.separately..........
4aea0 20 72 65 63 65 69 76 65 64 20 69 74 2e 0a 0a 20 20 20 20 20 20 20 64 2e 20 49 66 20 74 68 65 20 .received.it..........d..If.the.
4aec0 77 6f 72 6b 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 work.has.interactive.user.interf
4aee0 61 63 65 73 2c 20 65 61 63 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 aces,.each.must.display.........
4af00 20 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 ..Appropriate.Legal.Notices;.how
4af20 65 76 65 72 2c 20 69 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 68 61 73 0a 20 20 20 20 20 20 20 ever,.if.the.Program.has........
4af40 20 20 20 69 6e 74 65 72 61 63 74 69 76 65 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20 64 ...interactive.interfaces.that.d
4af60 6f 20 6e 6f 74 20 64 69 73 70 6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 0a o.not.display.Appropriate.Legal.
4af80 20 20 20 20 20 20 20 20 20 20 4e 6f 74 69 63 65 73 2c 20 79 6f 75 72 20 77 6f 72 6b 20 6e 65 65 ..........Notices,.your.work.nee
4afa0 64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d 20 64 6f 20 73 6f 2e 0a 0a 20 20 20 20 20 41 20 63 d.not.make.them.do.so........A.c
4afc0 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 77 69 74 ompilation.of.a.covered.work.wit
4afe0 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 6e 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 h.other.separate.and.independent
4b000 0a 20 20 20 20 20 77 6f 72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 62 79 20 74 68 ......works,.which.are.not.by.th
4b020 65 69 72 20 6e 61 74 75 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 63 6f 76 eir.nature.extensions.of.the.cov
4b040 65 72 65 64 0a 20 20 20 20 20 77 6f 72 6b 2c 20 61 6e 64 20 77 68 69 63 68 20 61 72 65 20 6e 6f ered......work,.and.which.are.no
4b060 74 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 6f 20 66 6f t.combined.with.it.such.as.to.fo
4b080 72 6d 20 61 20 6c 61 72 67 65 72 0a 20 20 20 20 20 70 72 6f 67 72 61 6d 2c 20 69 6e 20 6f 72 20 rm.a.larger......program,.in.or.
4b0a0 6f 6e 20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 on.a.volume.of.a.storage.or.dist
4b0c0 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 0a 20 20 20 20 20 63 61 6c 6c 65 64 20 ribution.medium,.is......called.
4b0e0 61 6e 20 e2 80 9c 61 67 67 72 65 67 61 74 65 e2 80 9d 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c an....aggregate....if.the.compil
4b100 61 74 69 6f 6e 20 61 6e 64 20 69 74 73 20 72 65 73 75 6c 74 69 6e 67 0a 20 20 20 20 20 63 6f 70 ation.and.its.resulting......cop
4b120 79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 20 75 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 yright.are.not.used.to.limit.the
4b140 20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 0a 20 .access.or.legal.rights.of.the..
4b160 20 20 20 20 63 6f 6d 70 69 6c 61 74 69 6f 6e e2 80 99 73 20 75 73 65 72 73 20 62 65 79 6f 6e 64 ....compilation...s.users.beyond
4b180 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 6f 72 6b 73 20 70 65 72 6d 69 .what.the.individual.works.permi
4b1a0 74 2e 0a 20 20 20 20 20 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 t.......Inclusion.of.a.covered.w
4b1c0 6f 72 6b 20 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e 6f 74 20 63 61 75 ork.in.an.aggregate.does.not.cau
4b1e0 73 65 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 6f se.this......License.to.apply.to
4b200 20 74 68 65 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 74 .the.other.parts.of.the.aggregat
4b220 65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 6f e.....6..Conveying.Non-Source.Fo
4b240 72 6d 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 rms........You.may.convey.a.cove
4b260 72 65 64 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 red.work.in.object.code.form.und
4b280 65 72 20 74 68 65 20 74 65 72 6d 73 0a 20 20 20 20 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 34 20 er.the.terms......of.sections.4.
4b2a0 61 6e 64 20 35 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f and.5,.provided.that.you.also.co
4b2c0 6e 76 65 79 20 74 68 65 0a 20 20 20 20 20 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 43 nvey.the......machine-readable.C
4b2e0 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 orresponding.Source.under.the.te
4b300 72 6d 73 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 2c 20 69 6e 20 6f 6e 65 rms.of.this......License,.in.one
4b320 20 6f 66 20 74 68 65 73 65 20 77 61 79 73 3a 0a 0a 20 20 20 20 20 20 20 61 2e 20 43 6f 6e 76 65 .of.these.ways:.........a..Conve
4b340 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 y.the.object.code.in,.or.embodie
4b360 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 20 20 20 d.in,.a.physical.product........
4b380 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 ...(including.a.physical.distrib
4b3a0 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 74 68 ution.medium),.accompanied.by.th
4b3c0 65 0a 20 20 20 20 20 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 e...........Corresponding.Source
4b3e0 20 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 .fixed.on.a.durable.physical.med
4b400 69 75 6d 0a 20 20 20 20 20 20 20 20 20 20 63 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 ium...........customarily.used.f
4b420 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 2e 0a 0a 20 20 20 20 20 20 or.software.interchange.........
4b440 20 62 2e 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f .b..Convey.the.object.code.in,.o
4b460 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 r.embodied.in,.a.physical.produc
4b480 74 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 t...........(including.a.physica
4b4a0 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e l.distribution.medium),.accompan
4b4c0 69 65 64 20 62 79 20 61 0a 20 20 20 20 20 20 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 ied.by.a...........written.offer
4b4e0 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 74 68 72 65 65 20 79 65 61 72 73 ,.valid.for.at.least.three.years
4b500 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 6c 6f 6e 67 .and.valid.for.as...........long
4b520 20 61 73 20 79 6f 75 20 6f 66 66 65 72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f 72 20 63 75 73 .as.you.offer.spare.parts.or.cus
4b540 74 6f 6d 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 tomer.support.for.that..........
4b560 20 70 72 6f 64 75 63 74 20 6d 6f 64 65 6c 2c 20 74 6f 20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 .product.model,.to.give.anyone.w
4b580 68 6f 20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 0a 20 20 20 ho.possesses.the.object.code....
4b5a0 20 20 20 20 20 20 20 65 69 74 68 65 72 20 28 31 29 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 .......either.(1).a.copy.of.the.
4b5c0 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 74 68 65 Corresponding.Source.for.all.the
4b5e0 0a 20 20 20 20 20 20 20 20 20 20 73 6f 66 74 77 61 72 65 20 69 6e 20 74 68 65 20 70 72 6f 64 75 ...........software.in.the.produ
4b600 63 74 20 74 68 61 74 20 69 73 20 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e ct.that.is.covered.by.this.Licen
4b620 73 65 2c 20 6f 6e 20 61 0a 20 20 20 20 20 20 20 20 20 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 se,.on.a...........durable.physi
4b640 63 61 6c 20 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 cal.medium.customarily.used.for.
4b660 73 6f 66 74 77 61 72 65 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 63 68 61 6e 67 65 2c 20 software...........interchange,.
4b680 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 79 6f 75 72 20 72 65 for.a.price.no.more.than.your.re
4b6a0 61 73 6f 6e 61 62 6c 65 20 63 6f 73 74 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 70 68 79 73 69 asonable.cost.of...........physi
4b6c0 63 61 6c 6c 79 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69 73 20 63 6f 6e 76 65 79 69 6e 67 20 cally.performing.this.conveying.
4b6e0 6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 32 29 20 61 63 63 65 73 73 0a 20 20 20 20 20 20 20 of.source,.or.(2).access........
4b700 20 20 20 74 6f 20 63 6f 70 79 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 ...to.copy.the.Corresponding.Sou
4b720 72 63 65 20 66 72 6f 6d 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 0a rce.from.a.network.server.at.no.
4b740 20 20 20 20 20 20 20 20 20 20 63 68 61 72 67 65 2e 0a 0a 20 20 20 20 20 20 20 63 2e 20 43 6f 6e ..........charge..........c..Con
4b760 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 6f 62 6a vey.individual.copies.of.the.obj
4b780 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 0a 20 20 20 20 ect.code.with.a.copy.of.the.....
4b7a0 20 20 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 20 74 6f 20 70 72 6f 76 69 64 65 20 74 ......written.offer.to.provide.t
4b7c0 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 69 73 0a 20 he.Corresponding.Source...This..
4b7e0 20 20 20 20 20 20 20 20 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 64 20 .........alternative.is.allowed.
4b800 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 72 63 only.occasionally.and.noncommerc
4b820 69 61 6c 6c 79 2c 0a 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 6f 6e 6c 79 20 69 66 20 79 6f 75 ially,...........and.only.if.you
4b840 20 72 65 63 65 69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 73 .received.the.object.code.with.s
4b860 75 63 68 20 61 6e 20 6f 66 66 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20 69 6e 20 61 63 63 6f 72 uch.an.offer,...........in.accor
4b880 64 20 77 69 74 68 20 73 75 62 73 65 63 74 69 6f 6e 20 36 62 2e 0a 0a 20 20 20 20 20 20 20 64 2e d.with.subsection.6b..........d.
4b8a0 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 .Convey.the.object.code.by.offer
4b8c0 69 6e 67 20 61 63 63 65 73 73 20 66 72 6f 6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20 20 20 ing.access.from.a.designated....
4b8e0 20 20 20 20 20 20 20 70 6c 61 63 65 20 28 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 63 68 .......place.(gratis.or.for.a.ch
4b900 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 75 69 76 61 6c 65 6e 74 20 61 63 63 65 arge),.and.offer.equivalent.acce
4b920 73 73 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e ss.to...........the.Correspondin
4b940 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 72 6f 75 67 68 g.Source.in.the.same.way.through
4b960 20 74 68 65 20 73 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 70 6c 61 63 65 20 61 74 20 6e 6f 20 .the.same...........place.at.no.
4b980 66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 65 further.charge...You.need.not.re
4b9a0 71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 74 6f 20 63 6f quire.recipients...........to.co
4b9c0 70 79 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e py.the.Corresponding.Source.alon
4b9e0 67 20 77 69 74 68 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2e 0a 20 20 20 20 20 20 20 20 g.with.the.object.code..........
4ba00 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 20 74 6f 20 63 6f 70 79 20 74 68 65 20 6f 62 6a 65 63 ..If.the.place.to.copy.the.objec
4ba20 74 20 63 6f 64 65 20 69 73 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 2c 20 74 68 65 0a t.code.is.a.network.server,.the.
4ba40 20 20 20 20 20 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6d ..........Corresponding.Source.m
4ba60 61 79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 65 72 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 ay.be.on.a.different.server.(ope
4ba80 72 61 74 65 64 20 62 79 0a 20 20 20 20 20 20 20 20 20 20 79 6f 75 20 6f 72 20 61 20 74 68 69 72 rated.by...........you.or.a.thir
4baa0 64 20 70 61 72 74 79 29 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20 65 71 75 69 76 61 6c 65 6e d.party).that.supports.equivalen
4bac0 74 20 63 6f 70 79 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 66 61 63 69 6c 69 74 69 65 73 2c 20 t.copying...........facilities,.
4bae0 70 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e 74 61 69 6e 20 63 6c 65 61 72 20 64 69 72 65 provided.you.maintain.clear.dire
4bb00 63 74 69 6f 6e 73 20 6e 65 78 74 20 74 6f 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 6f 62 6a ctions.next.to.the...........obj
4bb20 65 63 74 20 63 6f 64 65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 ect.code.saying.where.to.find.th
4bb40 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 0a 20 20 20 20 20 20 20 20 e.Corresponding.Source..........
4bb60 20 20 52 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 ..Regardless.of.what.server.host
4bb80 73 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 0a s.the.Corresponding.Source,.you.
4bba0 20 20 20 20 20 20 20 20 20 20 72 65 6d 61 69 6e 20 6f 62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e ..........remain.obligated.to.en
4bbc0 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 73 sure.that.it.is.available.for.as
4bbe0 20 6c 6f 6e 67 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 6e 65 65 64 65 64 20 74 6f 20 73 61 74 .long.as...........needed.to.sat
4bc00 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e 0a 0a 20 20 20 20 20 20 isfy.these.requirements.........
4bc20 20 65 2e 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 75 73 69 6e 67 .e..Convey.the.object.code.using
4bc40 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e 2c 0a 20 20 20 20 .peer-to-peer.transmission,.....
4bc60 20 20 20 20 20 20 70 72 6f 76 69 64 65 64 20 79 6f 75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 ......provided.you.inform.other.
4bc80 70 65 65 72 73 20 77 68 65 72 65 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 0a peers.where.the.object.code.and.
4bca0 20 20 20 20 20 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f ..........Corresponding.Source.o
4bcc0 66 20 74 68 65 20 77 6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66 66 65 72 65 64 20 74 6f 20 f.the.work.are.being.offered.to.
4bce0 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 67 65 6e 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 the...........general.public.at.
4bd00 6e 6f 20 63 68 61 72 67 65 20 75 6e 64 65 72 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a no.charge.under.subsection.6d...
4bd20 20 20 20 20 20 41 20 73 65 70 61 72 61 62 6c 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 .....A.separable.portion.of.the.
4bd40 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 6f 73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 object.code,.whose.source.code.i
4bd60 73 0a 20 20 20 20 20 65 78 63 6c 75 64 65 64 20 66 72 6f 6d 20 74 68 65 20 43 6f 72 72 65 73 70 s......excluded.from.the.Corresp
4bd80 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 79 73 74 65 6d 20 4c 69 62 72 61 72 onding.Source.as.a.System.Librar
4bda0 79 2c 20 6e 65 65 64 0a 20 20 20 20 20 6e 6f 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 y,.need......not.be.included.in.
4bdc0 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 2e 0a conveying.the.object.code.work..
4bde0 0a 20 20 20 20 20 41 20 e2 80 9c 55 73 65 72 20 50 72 6f 64 75 63 74 e2 80 9d 20 69 73 20 65 69 ......A....User.Product....is.ei
4be00 74 68 65 72 20 28 31 29 20 61 20 e2 80 9c 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 e2 80 ther.(1).a....consumer.product..
4be20 9d 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 0a 20 20 20 20 20 61 6e 79 20 74 61 6e 67 69 62 6c 65 .,.which.means......any.tangible
4be40 20 70 65 72 73 6f 6e 61 6c 20 70 72 6f 70 65 72 74 79 20 77 68 69 63 68 20 69 73 20 6e 6f 72 6d .personal.property.which.is.norm
4be60 61 6c 6c 79 20 75 73 65 64 20 66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c 0a 20 20 20 20 20 66 61 6d ally.used.for.personal,......fam
4be80 69 6c 79 2c 20 6f 72 20 68 6f 75 73 65 68 6f 6c 64 20 70 75 72 70 6f 73 65 73 2c 20 6f 72 20 28 ily,.or.household.purposes,.or.(
4bea0 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 73 69 67 6e 65 64 20 6f 72 20 73 6f 6c 64 20 66 6f 72 2).anything.designed.or.sold.for
4bec0 0a 20 20 20 20 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e 20 69 6e 74 6f 20 61 20 64 77 65 6c 6c ......incorporation.into.a.dwell
4bee0 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e 67 20 77 68 65 74 68 65 72 20 61 20 70 ing...In.determining.whether.a.p
4bf00 72 6f 64 75 63 74 20 69 73 0a 20 20 20 20 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 roduct.is......a.consumer.produc
4bf20 74 2c 20 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 62 65 20 72 65 73 6f 6c t,.doubtful.cases.shall.be.resol
4bf40 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 0a 20 20 20 20 20 63 6f 76 65 72 61 67 65 2e 20 20 ved.in.favor.of......coverage...
4bf60 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 64 75 63 74 20 72 65 63 65 69 76 65 For.a.particular.product.receive
4bf80 64 20 62 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c 0a 20 20 20 20 20 e2 80 9c d.by.a.particular.user,.........
4bfa0 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 e2 80 9d 20 72 65 66 65 72 73 20 74 6f 20 61 20 74 79 70 normally.used....refers.to.a.typ
4bfc0 69 63 61 6c 20 6f 72 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 63 6c 61 73 73 ical.or.common.use.of.that.class
4bfe0 20 6f 66 0a 20 20 20 20 20 70 72 6f 64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 .of......product,.regardless.of.
4c000 74 68 65 20 73 74 61 74 75 73 20 6f 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 the.status.of.the.particular.use
4c020 72 20 6f 72 20 6f 66 20 74 68 65 0a 20 20 20 20 20 77 61 79 20 69 6e 20 77 68 69 63 68 20 74 68 r.or.of.the......way.in.which.th
4c040 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 61 63 74 75 61 6c 6c 79 20 75 73 65 73 2c e.particular.user.actually.uses,
4c060 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 73 0a 20 20 20 20 20 65 78 70 65 63 74 65 64 20 .or.expects.or.is......expected.
4c080 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 20 41 20 70 72 6f 64 75 63 74 20 to.use,.the.product...A.product.
4c0a0 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 0a 20 20 20 20 20 72 65 67 61 72 is.a.consumer.product......regar
4c0c0 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 63 74 20 68 61 73 dless.of.whether.the.product.has
4c0e0 20 73 75 62 73 74 61 6e 74 69 61 6c 20 63 6f 6d 6d 65 72 63 69 61 6c 2c 0a 20 20 20 20 20 69 6e .substantial.commercial,......in
4c100 64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 75 dustrial.or.non-consumer.uses,.u
4c120 6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 0a 20 20 nless.such.uses.represent.the...
4c140 20 20 20 6f 6e 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d 6f 64 65 20 6f 66 20 75 73 65 20 ...only.significant.mode.of.use.
4c160 6f 66 20 74 68 65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 20 20 20 e2 80 9c 49 6e 73 74 61 6c 6c of.the.product...........Install
4c180 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e e2 80 9d 20 66 6f 72 20 61 20 55 73 65 72 20 ation.Information....for.a.User.
4c1a0 50 72 6f 64 75 63 74 20 6d 65 61 6e 73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 20 20 20 20 20 Product.means.any.methods,......
4c1c0 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c 20 procedures,.authorization.keys,.
4c1e0 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 6f or.other.information.required.to
4c200 0a 20 20 20 20 20 69 6e 73 74 61 6c 6c 20 61 6e 64 20 65 78 65 63 75 74 65 20 6d 6f 64 69 66 69 ......install.and.execute.modifi
4c220 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e ed.versions.of.a.covered.work.in
4c240 20 74 68 61 74 0a 20 20 20 20 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 6f 6d 20 61 20 6d .that......User.Product.from.a.m
4c260 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 72 65 73 70 6f 6e odified.version.of.its.Correspon
4c280 64 69 6e 67 20 53 6f 75 72 63 65 2e 0a 20 20 20 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f ding.Source.......The.informatio
4c2a0 6e 20 6d 75 73 74 20 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 n.must.suffice.to.ensure.that.th
4c2c0 65 20 63 6f 6e 74 69 6e 75 65 64 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 20 e.continued......functioning.of.
4c2e0 74 68 65 20 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 69 6e 20 6e the.modified.object.code.is.in.n
4c300 6f 20 63 61 73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 0a 20 20 20 20 20 69 6e 74 65 72 66 65 o.case.prevented.or......interfe
4c320 72 65 64 20 77 69 74 68 20 73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 20 6d 6f 64 69 66 69 63 61 red.with.solely.because.modifica
4c340 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 20 20 20 49 66 20 79 6f 75 tion.has.been.made........If.you
4c360 20 63 6f 6e 76 65 79 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 65 .convey.an.object.code.work.unde
4c380 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 0a 20 20 20 20 r.this.section.in,.or.with,.....
4c3a0 20 6f 72 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 55 .or.specifically.for.use.in,.a.U
4c3c0 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 20 74 68 65 20 63 6f 6e 76 65 79 69 6e 67 0a 20 ser.Product,.and.the.conveying..
4c3e0 20 20 20 20 6f 63 63 75 72 73 20 61 73 20 70 61 72 74 20 6f 66 20 61 20 74 72 61 6e 73 61 63 74 ....occurs.as.part.of.a.transact
4c400 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 70 6f 73 73 65 73 ion.in.which.the.right.of.posses
4c420 73 69 6f 6e 0a 20 20 20 20 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 20 55 73 65 72 20 50 72 sion......and.use.of.the.User.Pr
4c440 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65 20 72 65 63 69 oduct.is.transferred.to.the.reci
4c460 70 69 65 6e 74 20 69 6e 0a 20 20 20 20 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 20 pient.in......perpetuity.or.for.
4c480 61 20 66 69 78 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 20 a.fixed.term.(regardless.of.how.
4c4a0 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a 20 20 20 20 20 69 73 20 63 68 61 72 61 63 74 65 the.transaction......is.characte
4c4c0 72 69 7a 65 64 29 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 rized),.the.Corresponding.Source
4c4e0 20 63 6f 6e 76 65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 0a 20 20 20 20 20 73 65 63 74 69 6f .conveyed.under.this......sectio
4c500 6e 20 6d 75 73 74 20 62 65 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 74 68 65 20 49 6e 73 n.must.be.accompanied.by.the.Ins
4c520 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75 74 0a 20 20 20 20 tallation.Information...But.....
4c540 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 .this.requirement.does.not.apply
4c560 20 69 66 20 6e 65 69 74 68 65 72 20 79 6f 75 20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70 61 .if.neither.you.nor.any.third.pa
4c580 72 74 79 0a 20 20 20 20 20 72 65 74 61 69 6e 73 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 rty......retains.the.ability.to.
4c5a0 69 6e 73 74 61 6c 6c 20 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 6f 6e 20 install.modified.object.code.on.
4c5c0 74 68 65 20 55 73 65 72 0a 20 20 20 20 20 50 72 6f 64 75 63 74 20 28 66 6f 72 20 65 78 61 6d 70 the.User......Product.(for.examp
4c5e0 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 20 62 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 20 le,.the.work.has.been.installed.
4c600 69 6e 20 52 4f 4d 29 2e 0a 0a 20 20 20 20 20 54 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 in.ROM)........The.requirement.t
4c620 6f 20 70 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 o.provide.Installation.Informati
4c640 6f 6e 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 20 69 6e 63 6c 75 64 65 20 61 20 72 65 71 75 69 on.does.not......include.a.requi
4c660 72 65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 rement.to.continue.to.provide.su
4c680 70 70 6f 72 74 20 73 65 72 76 69 63 65 2c 0a 20 20 20 20 20 77 61 72 72 61 6e 74 79 2c 20 6f 72 pport.service,......warranty,.or
4c6a0 20 75 70 64 61 74 65 73 20 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 .updates.for.a.work.that.has.bee
4c6c0 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 0a 20 20 20 20 20 62 79 20 n.modified.or.installed......by.
4c6e0 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 6f 72 20 66 6f 72 20 74 68 65 20 55 73 65 72 20 50 the.recipient,.or.for.the.User.P
4c700 72 6f 64 75 63 74 20 69 6e 20 77 68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e 0a 20 20 20 20 roduct.in.which.it.has.been.....
4c720 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 20 .modified.or.installed...Access.
4c740 74 6f 20 61 20 6e 65 74 77 6f 72 6b 20 6d 61 79 20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e 20 to.a.network.may.be.denied.when.
4c760 74 68 65 0a 20 20 20 20 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 69 74 73 65 6c 66 20 6d 61 74 the......modification.itself.mat
4c780 65 72 69 61 6c 6c 79 20 61 6e 64 20 61 64 76 65 72 73 65 6c 79 20 61 66 66 65 63 74 73 20 74 68 erially.and.adversely.affects.th
4c7a0 65 20 6f 70 65 72 61 74 69 6f 6e 0a 20 20 20 20 20 6f 66 20 74 68 65 20 6e 65 74 77 6f 72 6b 20 e.operation......of.the.network.
4c7c0 6f 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 20 70 72 6f 74 6f 63 or.violates.the.rules.and.protoc
4c7e0 6f 6c 73 20 66 6f 72 0a 20 20 20 20 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 6f 73 ols.for......communication.acros
4c800 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a 0a 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 s.the.network........Correspondi
4c820 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 ng.Source.conveyed,.and.Installa
4c840 74 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 70 72 6f 76 69 64 65 64 2c 20 tion.Information......provided,.
4c860 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 in.accord.with.this.section.must
4c880 20 62 65 20 69 6e 20 61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 0a 20 20 20 20 20 70 75 62 .be.in.a.format.that.is......pub
4c8a0 6c 69 63 6c 79 20 64 6f 63 75 6d 65 6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61 6e 20 69 6d licly.documented.(and.with.an.im
4c8c0 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 20 20 plementation.available.to.the...
4c8e0 20 20 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c 20 ...public.in.source.code.form),.
4c900 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 20 6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 73 and.must.require.no.special.pass
4c920 77 6f 72 64 0a 20 20 20 20 20 6f 72 20 6b 65 79 20 66 6f 72 20 75 6e 70 61 63 6b 69 6e 67 2c 20 word......or.key.for.unpacking,.
4c940 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a 20 20 37 2e 20 41 64 64 69 74 69 reading.or.copying.....7..Additi
4c960 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 20 20 20 20 20 e2 80 9c 41 64 64 69 74 69 6f 6e 61 6c 20 onal.Terms...........Additional.
4c980 70 65 72 6d 69 73 73 69 6f 6e 73 e2 80 9d 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 74 20 73 75 permissions....are.terms.that.su
4c9a0 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 0a 20 20 20 20 20 74 68 69 73 20 pplement.the.terms.of......this.
4c9c0 4c 69 63 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f License.by.making.exceptions.fro
4c9e0 6d 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69 74 73 0a 20 20 20 20 20 63 6f 6e 64 69 74 m.one.or.more.of.its......condit
4ca00 69 6f 6e 73 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 ions...Additional.permissions.th
4ca20 61 74 20 61 72 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65 0a 20 20 20 20 20 65 6e at.are.applicable.to.the......en
4ca40 74 69 72 65 20 50 72 6f 67 72 61 6d 20 73 68 61 6c 6c 20 62 65 20 74 72 65 61 74 65 64 20 61 73 tire.Program.shall.be.treated.as
4ca60 20 74 68 6f 75 67 68 20 74 68 65 79 20 77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 0a 20 20 .though.they.were.included.in...
4ca80 20 20 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 ...this.License,.to.the.extent.t
4caa0 68 61 74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 64 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 hat.they.are.valid.under.applica
4cac0 62 6c 65 0a 20 20 20 20 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 ble......law...If.additional.per
4cae0 6d 69 73 73 69 6f 6e 73 20 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f 20 70 61 72 74 20 6f 66 20 74 missions.apply.only.to.part.of.t
4cb00 68 65 20 50 72 6f 67 72 61 6d 2c 0a 20 20 20 20 20 74 68 61 74 20 70 61 72 74 20 6d 61 79 20 62 he.Program,......that.part.may.b
4cb20 65 20 75 73 65 64 20 73 65 70 61 72 61 74 65 6c 79 20 75 6e 64 65 72 20 74 68 6f 73 65 20 70 65 e.used.separately.under.those.pe
4cb40 72 6d 69 73 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 0a 20 20 20 20 20 65 6e 74 69 72 65 20 50 rmissions,.but.the......entire.P
4cb60 72 6f 67 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20 rogram.remains.governed.by.this.
4cb80 4c 69 63 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 0a 20 20 20 20 20 74 License.without.regard.to......t
4cba0 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 20 20 20 20 he.additional.permissions.......
4cbc0 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 .When.you.convey.a.copy.of.a.cov
4cbe0 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f ered.work,.you.may.at.your.optio
4cc00 6e 0a 20 20 20 20 20 72 65 6d 6f 76 65 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 n......remove.any.additional.per
4cc20 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d 20 74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72 6f 6d missions.from.that.copy,.or.from
4cc40 20 61 6e 79 20 70 61 72 74 0a 20 20 20 20 20 6f 66 20 69 74 2e 20 20 28 41 64 64 69 74 69 6f 6e .any.part......of.it...(Addition
4cc60 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f al.permissions.may.be.written.to
4cc80 20 72 65 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e 0a 20 20 20 20 20 72 65 6d 6f 76 61 6c 20 .require.their.own......removal.
4cca0 69 6e 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 6f 75 20 6d 6f 64 69 66 79 in.certain.cases.when.you.modify
4ccc0 20 74 68 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c 61 63 65 0a 20 20 20 20 20 .the.work.)..You.may.place......
4cce0 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 74 65 72 69 additional.permissions.on.materi
4cd00 61 6c 2c 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f al,.added.by.you.to.a.covered.wo
4cd20 72 6b 2c 0a 20 20 20 20 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 rk,......for.which.you.have.or.c
4cd40 61 6e 20 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 an.give.appropriate.copyright.pe
4cd60 72 6d 69 73 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 rmission........Notwithstanding.
4cd80 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 any.other.provision.of.this.Lice
4cda0 6e 73 65 2c 20 66 6f 72 20 6d 61 74 65 72 69 61 6c 0a 20 20 20 20 20 79 6f 75 20 61 64 64 20 74 nse,.for.material......you.add.t
4cdc0 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 28 69 66 20 61 75 o.a.covered.work,.you.may.(if.au
4cde0 74 68 6f 72 69 7a 65 64 20 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 20 20 20 20 20 68 thorized.by.the.copyright......h
4ce00 6f 6c 64 65 72 73 20 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65 6d olders.of.that.material).supplem
4ce20 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 ent.the.terms.of.this.License.wi
4ce40 74 68 0a 20 20 20 20 20 74 65 72 6d 73 3a 0a 0a 20 20 20 20 20 20 20 61 2e 20 44 69 73 63 6c 61 th......terms:.........a..Discla
4ce60 69 6d 69 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 74 69 6e 67 20 6c 69 61 62 69 iming.warranty.or.limiting.liabi
4ce80 6c 69 74 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 20 20 lity.differently.from...........
4cea0 74 68 65 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 20 31 36 20 the.terms.of.sections.15.and.16.
4cec0 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 20 20 20 20 20 20 20 62 2e 20 52 of.this.License;.or.........b..R
4cee0 65 71 75 69 72 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 69 equiring.preservation.of.specifi
4cf00 65 64 20 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 0a 20 20 20 20 ed.reasonable.legal.notices.....
4cf20 20 20 20 20 20 20 6f 72 20 61 75 74 68 6f 72 20 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 ......or.author.attributions.in.
4cf40 74 68 61 74 20 6d 61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 that.material.or.in.the.Appropri
4cf60 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 20 64 69 73 70 ate...........Legal.Notices.disp
4cf80 6c 61 79 65 64 20 62 79 20 77 6f 72 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 3b 20 6f 72 layed.by.works.containing.it;.or
4cfa0 0a 0a 20 20 20 20 20 20 20 63 2e 20 50 72 6f 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72 65 .........c..Prohibiting.misrepre
4cfc0 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74 20 sentation.of.the.origin.of.that.
4cfe0 6d 61 74 65 72 69 61 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 6f 72 20 72 65 71 75 69 72 69 6e 67 material,...........or.requiring
4d000 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 73 75 63 68 20 .that.modified.versions.of.such.
4d020 6d 61 74 65 72 69 61 6c 20 62 65 20 6d 61 72 6b 65 64 0a 20 20 20 20 20 20 20 20 20 20 69 6e 20 material.be.marked...........in.
4d040 72 65 61 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f reasonable.ways.as.different.fro
4d060 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 0a 0a 20 20 20 20 m.the.original.version;.or......
4d080 20 20 20 64 2e 20 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 62 6c 69 ...d..Limiting.the.use.for.publi
4d0a0 63 69 74 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 65 6e 73 city.purposes.of.names.of.licens
4d0c0 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 6f 72 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 ors...........or.authors.of.the.
4d0e0 6d 61 74 65 72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 20 20 20 65 2e 20 44 65 63 6c 69 6e 69 6e material;.or.........e..Declinin
4d100 67 20 74 6f 20 67 72 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 g.to.grant.rights.under.trademar
4d120 6b 20 6c 61 77 20 66 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20 20 20 20 20 20 20 20 20 20 k.law.for.use.of.some...........
4d140 74 72 61 64 65 20 6e 61 6d 65 73 2c 20 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 trade.names,.trademarks,.or.serv
4d160 69 63 65 20 6d 61 72 6b 73 3b 20 6f 72 0a 0a 20 20 20 20 20 20 20 66 2e 20 52 65 71 75 69 72 69 ice.marks;.or.........f..Requiri
4d180 6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 ng.indemnification.of.licensors.
4d1a0 61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 6d 61 and.authors.of.that...........ma
4d1c0 74 65 72 69 61 6c 20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6e 76 65 79 73 20 74 68 65 terial.by.anyone.who.conveys.the
4d1e0 20 6d 61 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 20 20 20 20 20 .material.(or.modified..........
4d200 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 61 63 74 75 61 .versions.of.it).with.contractua
4d220 6c 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 74 6f 0a 20 20 l.assumptions.of.liability.to...
4d240 20 20 20 20 20 20 20 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 66 6f 72 20 61 6e 79 20 6c ........the.recipient,.for.any.l
4d260 69 61 62 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 0a iability.that.these.contractual.
4d280 20 20 20 20 20 20 20 20 20 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 20 69 ..........assumptions.directly.i
4d2a0 6d 70 6f 73 65 20 6f 6e 20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 mpose.on.those.licensors.and.aut
4d2c0 68 6f 72 73 2e 0a 0a 20 20 20 20 20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 hors........All.other.non-permis
4d2e0 73 69 76 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 sive.additional.terms.are.consid
4d300 65 72 65 64 20 e2 80 9c 66 75 72 74 68 65 72 0a 20 20 20 20 20 72 65 73 74 72 69 63 74 69 6f 6e ered....further......restriction
4d320 73 e2 80 9d 20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 73 65 63 74 69 s....within.the.meaning.of.secti
4d340 6f 6e 20 31 30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 61 73 0a 20 20 20 20 20 79 on.10...If.the.Program.as......y
4d360 6f 75 20 72 65 63 65 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 61 72 74 20 6f 66 20 69 ou.received.it,.or.any.part.of.i
4d380 74 2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 74 69 6e 67 20 74 68 61 t,.contains.a.notice.stating.tha
4d3a0 74 0a 20 20 20 20 20 69 74 20 69 73 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20 4c 69 t......it.is.governed.by.this.Li
4d3c0 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 69 73 20 cense.along.with.a.term.that.is.
4d3e0 61 20 66 75 72 74 68 65 72 0a 20 20 20 20 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 a.further......restriction,.you.
4d400 6d 61 79 20 72 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 may.remove.that.term...If.a.lice
4d420 6e 73 65 20 64 6f 63 75 6d 65 6e 74 0a 20 20 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 20 66 75 72 nse.document......contains.a.fur
4d440 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c ther.restriction.but.permits.rel
4d460 69 63 65 6e 73 69 6e 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 0a 20 20 20 20 20 75 6e 64 65 72 icensing.or.conveying......under
4d480 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 .this.License,.you.may.add.to.a.
4d4a0 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 0a 20 covered.work.material.governed..
4d4c0 20 20 20 20 62 79 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 ....by.the.terms.of.that.license
4d4e0 20 64 6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 66 75 72 .document,.provided.that.the.fur
4d500 74 68 65 72 0a 20 20 20 20 20 72 65 73 74 72 69 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 73 ther......restriction.does.not.s
4d520 75 72 76 69 76 65 20 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e 67 20 6f 72 20 63 6f 6e 76 65 urvive.such.relicensing.or.conve
4d540 79 69 6e 67 2e 0a 0a 20 20 20 20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 72 6d 73 20 74 6f 20 ying........If.you.add.terms.to.
4d560 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 74 68 a.covered.work.in.accord.with.th
4d580 69 73 20 73 65 63 74 69 6f 6e 2c 20 79 6f 75 0a 20 20 20 20 20 6d 75 73 74 20 70 6c 61 63 65 2c is.section,.you......must.place,
4d5a0 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c 20 61 .in.the.relevant.source.files,.a
4d5c0 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 20 20 20 20 20 61 64 64 69 74 69 6f 6e 61 .statement.of.the......additiona
4d5e0 6c 20 74 65 72 6d 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 l.terms.that.apply.to.those.file
4d600 73 2c 20 6f 72 20 61 20 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 20 20 20 20 20 77 s,.or.a.notice.indicating......w
4d620 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d here.to.find.the.applicable.term
4d640 73 2e 0a 0a 20 20 20 20 20 41 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 s........Additional.terms,.permi
4d660 73 73 69 76 65 20 6f 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 ssive.or.non-permissive,.may.be.
4d680 73 74 61 74 65 64 20 69 6e 0a 20 20 20 20 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 stated.in......the.form.of.a.sep
4d6a0 61 72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 6c 69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 arately.written.license,.or.stat
4d6c0 65 64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 3b 0a 20 20 20 20 20 74 68 65 20 61 62 6f 76 65 ed.as.exceptions;......the.above
4d6e0 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 69 74 68 65 72 20 77 61 79 2e 0a .requirements.apply.either.way..
4d700 0a 20 20 38 2e 20 54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 ...8..Termination........You.may
4d720 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 61 20 63 6f 76 65 72 .not.propagate.or.modify.a.cover
4d740 65 64 20 77 6f 72 6b 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 73 6c 79 0a 20 20 20 20 ed.work.except.as.expressly.....
4d760 20 70 72 6f 76 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 41 .provided.under.this.License...A
4d780 6e 79 20 61 74 74 65 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 67 61 74 ny.attempt.otherwise.to.propagat
4d7a0 65 20 6f 72 0a 20 20 20 20 20 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 e.or......modify.it.is.void,.and
4d7c0 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f .will.automatically.terminate.yo
4d7e0 75 72 20 72 69 67 68 74 73 0a 20 20 20 20 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 ur.rights......under.this.Licens
4d800 65 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 e.(including.any.patent.licenses
4d820 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 65 0a 20 20 20 20 20 74 68 69 72 64 20 70 61 .granted.under.the......third.pa
4d840 72 61 67 72 61 70 68 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 20 20 20 48 6f ragraph.of.section.11)........Ho
4d860 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 65 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f wever,.if.you.cease.all.violatio
4d880 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 20 20 20 n.of.this.License,.then.your....
4d8a0 20 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 ..license.from.a.particular.copy
4d8c0 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e 73 74 61 74 65 64 20 28 61 29 0a 20 right.holder.is.reinstated.(a)..
4d8e0 20 20 20 20 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 20 61 6e 64 20 75 6e ....provisionally,.unless.and.un
4d900 74 69 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 65 78 70 6c 69 63 69 til.the.copyright.holder.explici
4d920 74 6c 79 20 61 6e 64 0a 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 73 20 tly.and......finally.terminates.
4d940 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e 74 6c your.license,.and.(b).permanentl
4d960 79 2c 20 69 66 20 74 68 65 0a 20 20 20 20 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 y,.if.the......copyright.holder.
4d980 66 61 69 6c 73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 fails.to.notify.you.of.the.viola
4d9a0 74 69 6f 6e 20 62 79 20 73 6f 6d 65 0a 20 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 tion.by.some......reasonable.mea
4d9c0 6e 73 20 70 72 69 6f 72 20 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 20 63 65 ns.prior.to.60.days.after.the.ce
4d9e0 73 73 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 20 6c 69 ssation........Moreover,.your.li
4da00 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 cense.from.a.particular.copyrigh
4da20 74 20 68 6f 6c 64 65 72 20 69 73 0a 20 20 20 20 20 72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d t.holder.is......reinstated.perm
4da40 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 anently.if.the.copyright.holder.
4da60 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 74 68 65 0a 20 20 20 20 20 76 69 6f 6c 61 74 69 notifies.you.of.the......violati
4da80 6f 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 2c 20 74 68 69 on.by.some.reasonable.means,.thi
4daa0 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f 75 20 68 61 76 65 0a 20 20 20 s.is.the.first.time.you.have....
4dac0 20 20 72 65 63 65 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 74 69 6f 6e 20 6f ..received.notice.of.violation.o
4dae0 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f 72 6b 29 20 66 72 f.this.License.(for.any.work).fr
4db00 6f 6d 0a 20 20 20 20 20 74 68 61 74 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 61 om......that.copyright.holder,.a
4db20 6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 20 nd.you.cure.the.violation.prior.
4db40 74 6f 20 33 30 20 64 61 79 73 0a 20 20 20 20 20 61 66 74 65 72 20 79 6f 75 72 20 72 65 63 65 69 to.30.days......after.your.recei
4db60 70 74 20 6f 66 20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 20 20 20 54 65 72 6d 69 6e 61 74 pt.of.the.notice........Terminat
4db80 69 6f 6e 20 6f 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 ion.of.your.rights.under.this.se
4dba0 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 0a 20 20 20 20 20 74 68 ction.does.not.terminate......th
4dbc0 65 20 6c 69 63 65 6e 73 65 73 20 6f 66 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 e.licenses.of.parties.who.have.r
4dbe0 65 63 65 69 76 65 64 20 63 6f 70 69 65 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d 20 79 6f eceived.copies.or.rights.from.yo
4dc00 75 0a 20 20 20 20 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 u......under.this.License...If.y
4dc20 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 65 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 our.rights.have.been.terminated.
4dc40 61 6e 64 20 6e 6f 74 0a 20 20 20 20 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 72 65 69 6e 73 74 61 and.not......permanently.reinsta
4dc60 74 65 64 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 79 20 74 6f 20 72 65 63 65 69 ted,.you.do.not.qualify.to.recei
4dc80 76 65 20 6e 65 77 20 6c 69 63 65 6e 73 65 73 0a 20 20 20 20 20 66 6f 72 20 74 68 65 20 73 61 6d ve.new.licenses......for.the.sam
4dca0 65 20 6d 61 74 65 72 69 61 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 2e 0a 0a 20 20 e.material.under.section.10.....
4dcc0 39 2e 20 41 63 63 65 70 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 66 6f 72 20 48 9..Acceptance.Not.Required.for.H
4dce0 61 76 69 6e 67 20 43 6f 70 69 65 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 aving.Copies........You.are.not.
4dd00 72 65 71 75 69 72 65 64 20 74 6f 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 required.to.accept.this.License.
4dd20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 65 69 76 65 20 6f 72 0a 20 20 20 20 20 72 75 6e 20 in.order.to.receive.or......run.
4dd40 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 a.copy.of.the.Program...Ancillar
4dd60 79 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a y.propagation.of.a.covered.work.
4dd80 20 20 20 20 20 6f 63 63 75 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 .....occurring.solely.as.a.conse
4dda0 71 75 65 6e 63 65 20 6f 66 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 0a 20 20 20 quence.of.using.peer-to-peer....
4ddc0 20 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e 20 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 ..transmission.to.receive.a.copy
4dde0 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 0a 20 20 20 20 20 .likewise.does.not.require......
4de00 61 63 63 65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 74 68 69 6e 67 20 6f 74 acceptance...However,.nothing.ot
4de20 68 65 72 20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 67 72 61 6e 74 73 20 79 6f 75 her.than.this.License.grants.you
4de40 0a 20 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f 70 61 67 61 74 65 20 6f 72 ......permission.to.propagate.or
4de60 20 6d 6f 64 69 66 79 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 65 73 65 .modify.any.covered.work...These
4de80 20 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 69 67 68 74 .actions......infringe.copyright
4dea0 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e .if.you.do.not.accept.this.Licen
4dec0 73 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 0a 20 20 20 20 20 62 79 20 6d 6f 64 69 66 79 69 6e se...Therefore,......by.modifyin
4dee0 67 20 6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c g.or.propagating.a.covered.work,
4df00 20 79 6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f 75 72 0a 20 20 20 20 20 61 63 63 65 70 74 61 6e .you.indicate.your......acceptan
4df20 63 65 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 20 20 ce.of.this.License.to.do.so.....
4df40 31 30 2e 20 41 75 74 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67 20 6f 66 20 44 6f 77 6e 73 10..Automatic.Licensing.of.Downs
4df60 74 72 65 61 6d 20 52 65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 20 20 20 45 61 63 68 20 74 69 6d tream.Recipients........Each.tim
4df80 65 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 e.you.convey.a.covered.work,.the
4dfa0 20 72 65 63 69 70 69 65 6e 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 20 20 20 20 20 72 65 .recipient.automatically......re
4dfc0 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e ceives.a.license.from.the.origin
4dfe0 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 74 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 al.licensors,.to.run,.modify.and
4e000 0a 20 20 20 20 20 70 72 6f 70 61 67 61 74 65 20 74 68 61 74 20 77 6f 72 6b 2c 20 73 75 62 6a 65 ......propagate.that.work,.subje
4e020 63 74 20 74 6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 ct.to.this.License...You.are.not
4e040 0a 20 20 20 20 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 65 6e 66 6f 72 63 69 6e 67 20 ......responsible.for.enforcing.
4e060 63 6f 6d 70 6c 69 61 6e 63 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 69 65 73 20 77 69 74 68 compliance.by.third.parties.with
4e080 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 41 6e 20 e2 80 9c .this......License........An....
4e0a0 65 6e 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e e2 80 9d 20 69 73 20 61 20 74 72 61 6e 73 entity.transaction....is.a.trans
4e0c0 61 63 74 69 6f 6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 61 action.transferring.control.of.a
4e0e0 6e 0a 20 20 20 20 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 62 73 74 61 6e 74 n......organization,.or.substant
4e100 69 61 6c 6c 79 20 61 6c 6c 20 61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f 72 20 73 75 62 64 ially.all.assets.of.one,.or.subd
4e120 69 76 69 64 69 6e 67 20 61 6e 0a 20 20 20 20 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 ividing.an......organization,.or
4e140 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f 70 .merging.organizations...If.prop
4e160 61 67 61 74 69 6f 6e 20 6f 66 20 61 0a 20 20 20 20 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 72 agation.of.a......covered.work.r
4e180 65 73 75 6c 74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f esults.from.an.entity.transactio
4e1a0 6e 2c 20 65 61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 61 74 0a 20 20 20 20 20 74 72 61 6e 73 n,.each.party.to.that......trans
4e1c0 61 63 74 69 6f 6e 20 77 68 6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f 70 79 20 6f 66 20 74 68 action.who.receives.a.copy.of.th
4e1e0 65 20 77 6f 72 6b 20 61 6c 73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 74 65 76 65 72 0a 20 20 e.work.also.receives.whatever...
4e200 20 20 20 6c 69 63 65 6e 73 65 73 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 61 72 74 ...licenses.to.the.work.the.part
4e220 79 e2 80 99 73 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 61 y...s.predecessor.in.interest.ha
4e240 64 20 6f 72 0a 20 20 20 20 20 63 6f 75 6c 64 20 67 69 76 65 20 75 6e 64 65 72 20 74 68 65 20 70 d.or......could.give.under.the.p
4e260 72 65 76 69 6f 75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c 75 73 20 61 20 72 69 67 68 74 20 revious.paragraph,.plus.a.right.
4e280 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 0a 20 20 20 20 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 to.possession......of.the.Corres
4e2a0 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 72 6f 6d 20 ponding.Source.of.the.work.from.
4e2c0 74 68 65 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 0a 20 20 20 20 20 69 6e 74 65 72 65 73 74 the.predecessor.in......interest
4e2e0 2c 20 69 66 20 74 68 65 20 70 72 65 64 65 63 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 63 ,.if.the.predecessor.has.it.or.c
4e300 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 20 72 65 61 73 6f 6e 61 62 6c 65 0a 20 20 20 20 20 65 an.get.it.with.reasonable......e
4e320 66 66 6f 72 74 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6d 70 6f 73 65 fforts........You.may.not.impose
4e340 20 61 6e 79 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 73 20 6f 6e 20 74 68 65 .any.further.restrictions.on.the
4e360 20 65 78 65 72 63 69 73 65 20 6f 66 20 74 68 65 0a 20 20 20 20 20 72 69 67 68 74 73 20 67 72 61 .exercise.of.the......rights.gra
4e380 6e 74 65 64 20 6f 72 20 61 66 66 69 72 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 nted.or.affirmed.under.this.Lice
4e3a0 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 0a 20 20 20 20 20 6d 61 79 20 nse...For.example,.you......may.
4e3c0 6e 6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65 6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 not.impose.a.license.fee,.royalt
4e3e0 79 2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67 65 20 66 6f 72 20 65 78 65 72 63 69 73 65 0a y,.or.other.charge.for.exercise.
4e400 20 20 20 20 20 6f 66 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 .....of.rights.granted.under.thi
4e420 73 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6e 69 74 69 s.License,.and.you.may.not.initi
4e440 61 74 65 0a 20 20 20 20 20 6c 69 74 69 67 61 74 69 6f 6e 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 ate......litigation.(including.a
4e460 20 63 72 6f 73 73 2d 63 6c 61 69 6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 69 6e 20 .cross-claim.or.counterclaim.in.
4e480 61 20 6c 61 77 73 75 69 74 29 0a 20 20 20 20 20 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 20 61 6e a.lawsuit)......alleging.that.an
4e4a0 79 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 69 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d y.patent.claim.is.infringed.by.m
4e4c0 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 0a 20 20 20 20 20 73 65 6c 6c 69 6e 67 2c 20 6f 66 66 65 aking,.using,......selling,.offe
4e4e0 72 69 6e 67 20 66 6f 72 20 73 61 6c 65 2c 20 6f 72 20 69 6d 70 6f 72 74 69 6e 67 20 74 68 65 20 ring.for.sale,.or.importing.the.
4e500 50 72 6f 67 72 61 6d 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 6f 6e 0a 20 20 20 20 20 6f 66 20 69 Program.or.any.portion......of.i
4e520 74 2e 0a 0a 20 20 31 31 2e 20 50 61 74 65 6e 74 73 2e 0a 0a 20 20 20 20 20 41 20 e2 80 9c 63 6f t.....11..Patents........A....co
4e540 6e 74 72 69 62 75 74 6f 72 e2 80 9d 20 69 73 20 61 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 ntributor....is.a.copyright.hold
4e560 65 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 er.who.authorizes.use.under.this
4e580 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 ......License.of.the.Program.or.
4e5a0 61 20 77 6f 72 6b 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 73 20 62 a.work.on.which.the.Program.is.b
4e5c0 61 73 65 64 2e 0a 20 20 20 20 20 54 68 65 20 77 6f 72 6b 20 74 68 75 73 20 6c 69 63 65 6e 73 65 ased.......The.work.thus.license
4e5e0 64 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 e2 80 99 73 20 d.is.called.the.contributor...s.
4e600 e2 80 9c 63 6f 6e 74 72 69 62 75 74 6f 72 0a 20 20 20 20 20 76 65 72 73 69 6f 6e e2 80 9d 2e 0a ...contributor......version.....
4e620 0a 20 20 20 20 20 41 20 63 6f 6e 74 72 69 62 75 74 6f 72 e2 80 99 73 20 e2 80 9c 65 73 73 65 6e ......A.contributor...s....essen
4e640 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 e2 80 9d 20 61 72 65 20 61 6c 6c 20 70 61 tial.patent.claims....are.all.pa
4e660 74 65 6e 74 20 63 6c 61 69 6d 73 0a 20 20 20 20 20 6f 77 6e 65 64 20 6f 72 20 63 6f 6e 74 72 6f tent.claims......owned.or.contro
4e680 6c 6c 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 2c 20 77 68 65 74 68 65 72 lled.by.the.contributor,.whether
4e6a0 20 61 6c 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f 72 0a 20 20 20 20 20 68 65 72 65 61 66 .already.acquired.or......hereaf
4e6c0 74 65 72 20 61 63 71 75 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 6e 66 72 ter.acquired,.that.would.be.infr
4e6e0 69 6e 67 65 64 20 62 79 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 0a 20 20 20 20 20 70 65 72 6d 69 inged.by.some.manner,......permi
4e700 74 74 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 6e 67 2c tted.by.this.License,.of.making,
4e720 20 75 73 69 6e 67 2c 20 6f 72 20 73 65 6c 6c 69 6e 67 20 69 74 73 0a 20 20 20 20 20 63 6f 6e 74 .using,.or.selling.its......cont
4e740 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c ributor.version,.but.do.not.incl
4e760 75 64 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 0a 20 20 20 20 20 69 6e ude.claims.that.would.be......in
4e780 66 72 69 6e 67 65 64 20 6f 6e 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66 fringed.only.as.a.consequence.of
4e7a0 20 66 75 72 74 68 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 0a 20 20 20 .further.modification.of.the....
4e7c0 20 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 20 70 75 72 70 ..contributor.version...For.purp
4e7e0 6f 73 65 73 20 6f 66 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 e2 80 9c 63 6f 6e 74 oses.of.this.definition,....cont
4e800 72 6f 6c e2 80 9d 0a 20 20 20 20 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 67 68 74 20 74 rol.........includes.the.right.t
4e820 6f 20 67 72 61 6e 74 20 70 61 74 65 6e 74 20 73 75 62 6c 69 63 65 6e 73 65 73 20 69 6e 20 61 20 o.grant.patent.sublicenses.in.a.
4e840 6d 61 6e 6e 65 72 0a 20 20 20 20 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 manner......consistent.with.the.
4e860 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 requirements.of.this.License....
4e880 20 20 20 20 45 61 63 68 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 6f 75 20 ....Each.contributor.grants.you.
4e8a0 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 0a 20 20 20 20 a.non-exclusive,.worldwide,.....
4e8c0 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 .royalty-free.patent.license.und
4e8e0 65 72 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 e2 80 99 73 20 65 73 73 65 6e 74 69 61 6c er.the.contributor...s.essential
4e900 0a 20 20 20 20 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 20 6d 61 6b 65 2c 20 75 73 ......patent.claims,.to.make,.us
4e920 65 2c 20 73 65 6c 6c 2c 20 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c 20 69 6d 70 6f 72 74 20 e,.sell,.offer.for.sale,.import.
4e940 61 6e 64 0a 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 and......otherwise.run,.modify.a
4e960 6e 64 20 70 72 6f 70 61 67 61 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 69 74 73 nd.propagate.the.contents.of.its
4e980 20 63 6f 6e 74 72 69 62 75 74 6f 72 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 20 20 .contributor......version.......
4e9a0 20 49 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 70 61 72 61 67 72 61 70 .In.the.following.three.paragrap
4e9c0 68 73 2c 20 61 20 e2 80 9c 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 e2 80 9d 20 69 73 20 61 6e hs,.a....patent.license....is.an
4e9e0 79 0a 20 20 20 20 20 65 78 70 72 65 73 73 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d y......express.agreement.or.comm
4ea00 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 72 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f 74 itment,.however.denominated,.not
4ea20 20 74 6f 0a 20 20 20 20 20 65 6e 66 6f 72 63 65 20 61 20 70 61 74 65 6e 74 20 28 73 75 63 68 20 .to......enforce.a.patent.(such.
4ea40 61 73 20 61 6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 61 63 as.an.express.permission.to.prac
4ea60 74 69 63 65 20 61 0a 20 20 20 20 20 70 61 74 65 6e 74 20 6f 72 20 63 6f 76 65 6e 61 6e 74 20 6e tice.a......patent.or.covenant.n
4ea80 6f 74 20 74 6f 20 73 75 65 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 72 69 6e 67 65 6d 65 6e ot.to.sue.for.patent.infringemen
4eaa0 74 29 2e 20 20 54 6f 20 e2 80 9c 67 72 61 6e 74 e2 80 9d 0a 20 20 20 20 20 73 75 63 68 20 61 20 t)...To....grant.........such.a.
4eac0 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 61 20 70 61 72 74 79 20 6d 65 61 6e 73 20 patent.license.to.a.party.means.
4eae0 74 6f 20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 0a 20 20 20 to.make.such.an.agreement.or....
4eb00 20 20 63 6f 6d 6d 69 74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 70 61 ..commitment.not.to.enforce.a.pa
4eb20 74 65 6e 74 20 61 67 61 69 6e 73 74 20 74 68 65 20 70 61 72 74 79 2e 0a 0a 20 20 20 20 20 49 66 tent.against.the.party........If
4eb40 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 6b 6e 6f 77 .you.convey.a.covered.work,.know
4eb60 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 0a 20 20 20 20 20 6c ingly.relying.on.a.patent......l
4eb80 69 63 65 6e 73 65 2c 20 61 6e 64 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f icense,.and.the.Corresponding.So
4eba0 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c urce.of.the.work.is.not.availabl
4ebc0 65 0a 20 20 20 20 20 66 6f 72 20 61 6e 79 6f 6e 65 20 74 6f 20 63 6f 70 79 2c 20 66 72 65 65 20 e......for.anyone.to.copy,.free.
4ebe0 6f 66 20 63 68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 of.charge.and.under.the.terms.of
4ec00 20 74 68 69 73 0a 20 20 20 20 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f 75 67 68 20 61 20 70 75 .this......License,.through.a.pu
4ec20 62 6c 69 63 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 blicly.available.network.server.
4ec40 6f 72 20 6f 74 68 65 72 0a 20 20 20 20 20 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 62 6c 65 or.other......readily.accessible
4ec60 20 6d 65 61 6e 73 2c 20 74 68 65 6e 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 28 31 29 .means,.then.you.must.either.(1)
4ec80 20 63 61 75 73 65 20 74 68 65 0a 20 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f .cause.the......Corresponding.So
4eca0 75 72 63 65 20 74 6f 20 62 65 20 73 6f 20 61 76 61 69 6c 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 urce.to.be.so.available,.or.(2).
4ecc0 61 72 72 61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 0a 20 20 20 20 20 79 6f 75 72 73 65 6c 66 arrange.to.deprive......yourself
4ece0 20 6f 66 20 74 68 65 20 62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 .of.the.benefit.of.the.patent.li
4ed00 63 65 6e 73 65 20 66 6f 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 0a 20 20 20 20 20 77 cense.for.this.particular......w
4ed20 6f 72 6b 2c 20 6f 72 20 28 33 29 20 61 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e 6e 65 72 ork,.or.(3).arrange,.in.a.manner
4ed40 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 .consistent.with.the.requirement
4ed60 73 0a 20 20 20 20 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e s......of.this.License,.to.exten
4ed80 64 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 d.the.patent.license.to.downstre
4eda0 61 6d 0a 20 20 20 20 20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 e2 80 9c 4b 6e 6f 77 69 6e 67 6c am......recipients......Knowingl
4edc0 79 20 72 65 6c 79 69 6e 67 e2 80 9d 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 65 20 61 63 74 75 y.relying....means.you.have.actu
4ede0 61 6c 20 6b 6e 6f 77 6c 65 64 67 65 0a 20 20 20 20 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 20 al.knowledge......that,.but.for.
4ee00 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 69 the.patent.license,.your.conveyi
4ee20 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 20 20 20 20 20 69 6e 20 61 20 63 6f ng.the.covered.work......in.a.co
4ee40 75 6e 74 72 79 2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 70 69 65 6e 74 e2 80 99 73 20 75 73 65 untry,.or.your.recipient...s.use
4ee60 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 0a 20 20 20 20 20 63 .of.the.covered.work.in.a......c
4ee80 6f 75 6e 74 72 79 2c 20 77 6f 75 6c 64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 20 6f 72 20 6d 6f ountry,.would.infringe.one.or.mo
4eea0 72 65 20 69 64 65 6e 74 69 66 69 61 62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e 20 74 68 61 74 0a re.identifiable.patents.in.that.
4eec0 20 20 20 20 20 63 6f 75 6e 74 72 79 20 74 68 61 74 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f .....country.that.you.have.reaso
4eee0 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 20 76 61 6c 69 64 2e 0a 0a 20 20 20 20 20 49 66 n.to.believe.are.valid........If
4ef00 2c 20 70 75 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 ,.pursuant.to.or.in.connection.w
4ef20 69 74 68 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 6f 72 0a 20 20 20 20 ith.a.single.transaction.or.....
4ef40 20 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 2c 20 6f 72 20 70 72 6f .arrangement,.you.convey,.or.pro
4ef60 70 61 67 61 74 65 20 62 79 20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 65 79 61 6e 63 65 20 6f pagate.by.procuring.conveyance.o
4ef80 66 2c 20 61 0a 20 20 20 20 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 72 61 6e f,.a......covered.work,.and.gran
4efa0 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 20 74 68 t.a.patent.license.to.some.of.th
4efc0 65 20 70 61 72 74 69 65 73 0a 20 20 20 20 20 72 65 63 65 69 76 69 6e 67 20 74 68 65 20 63 6f 76 e.parties......receiving.the.cov
4efe0 65 72 65 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 ered.work.authorizing.them.to.us
4f000 65 2c 20 70 72 6f 70 61 67 61 74 65 2c 0a 20 20 20 20 20 6d 6f 64 69 66 79 20 6f 72 20 63 6f 6e e,.propagate,......modify.or.con
4f020 76 65 79 20 61 20 73 70 65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74 68 65 20 63 6f 76 65 72 vey.a.specific.copy.of.the.cover
4f040 65 64 20 77 6f 72 6b 2c 20 74 68 65 6e 20 74 68 65 0a 20 20 20 20 20 70 61 74 65 6e 74 20 6c 69 ed.work,.then.the......patent.li
4f060 63 65 6e 73 65 20 79 6f 75 20 67 72 61 6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 cense.you.grant.is.automatically
4f080 20 65 78 74 65 6e 64 65 64 20 74 6f 20 61 6c 6c 0a 20 20 20 20 20 72 65 63 69 70 69 65 6e 74 73 .extended.to.all......recipients
4f0a0 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 .of.the.covered.work.and.works.b
4f0c0 61 73 65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 20 20 20 41 20 70 61 74 65 6e 74 20 6c 69 63 65 6e ased.on.it........A.patent.licen
4f0e0 73 65 20 69 73 20 e2 80 9c 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 e2 80 9d 20 69 66 20 69 74 se.is....discriminatory....if.it
4f100 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e 0a 20 20 20 20 20 74 68 .does.not.include.within......th
4f120 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73 20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 69 62 69 e.scope.of.its.coverage,.prohibi
4f140 74 73 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 2c 20 6f 72 20 69 73 0a 20 20 20 20 20 63 ts.the.exercise.of,.or.is......c
4f160 6f 6e 64 69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e 6f 6e 2d 65 78 65 72 63 69 73 65 20 6f onditioned.on.the.non-exercise.o
4f180 66 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 73 20 74 68 61 74 f.one.or.more.of.the.rights.that
4f1a0 0a 20 20 20 20 20 61 72 65 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 67 72 61 6e 74 65 64 20 75 ......are.specifically.granted.u
4f1c0 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 nder.this.License...You.may.not.
4f1e0 63 6f 6e 76 65 79 20 61 0a 20 20 20 20 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 66 20 79 6f convey.a......covered.work.if.yo
4f200 75 20 61 72 65 20 61 20 70 61 72 74 79 20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65 6e 74 20 u.are.a.party.to.an.arrangement.
4f220 77 69 74 68 20 61 20 74 68 69 72 64 0a 20 20 20 20 20 70 61 72 74 79 20 74 68 61 74 20 69 73 20 with.a.third......party.that.is.
4f240 69 6e 20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f 66 20 64 69 73 74 72 69 62 75 74 69 6e 67 20 in.the.business.of.distributing.
4f260 73 6f 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 68 69 63 68 0a 20 20 20 20 20 79 6f 75 20 6d software,.under.which......you.m
4f280 61 6b 65 20 70 61 79 6d 65 6e 74 20 74 6f 20 74 68 65 20 74 68 69 72 64 20 70 61 72 74 79 20 62 ake.payment.to.the.third.party.b
4f2a0 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 79 6f 75 72 0a 20 20 20 20 20 ased.on.the.extent.of.your......
4f2c0 61 63 74 69 76 69 74 79 20 6f 66 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 77 6f 72 6b 2c 20 activity.of.conveying.the.work,.
4f2e0 61 6e 64 20 75 6e 64 65 72 20 77 68 69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 61 72 74 79 0a and.under.which.the.third.party.
4f300 20 20 20 20 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 6e 79 20 6f 66 20 74 68 65 20 70 61 72 74 69 .....grants,.to.any.of.the.parti
4f320 65 73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 es.who.would.receive.the.covered
4f340 20 77 6f 72 6b 0a 20 20 20 20 20 66 72 6f 6d 20 79 6f 75 2c 20 61 20 64 69 73 63 72 69 6d 69 6e .work......from.you,.a.discrimin
4f360 61 74 6f 72 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 28 61 29 20 69 6e 20 63 6f 6e 6e atory.patent.license.(a).in.conn
4f380 65 63 74 69 6f 6e 20 77 69 74 68 0a 20 20 20 20 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 63 ection.with......copies.of.the.c
4f3a0 6f 76 65 72 65 64 20 77 6f 72 6b 20 63 6f 6e 76 65 79 65 64 20 62 79 20 79 6f 75 20 28 6f 72 20 overed.work.conveyed.by.you.(or.
4f3c0 63 6f 70 69 65 73 20 6d 61 64 65 20 66 72 6f 6d 0a 20 20 20 20 20 74 68 6f 73 65 20 63 6f 70 69 copies.made.from......those.copi
4f3e0 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 6d 61 72 69 6c 79 20 66 6f 72 20 61 6e 64 20 69 6e es),.or.(b).primarily.for.and.in
4f400 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 73 70 65 63 69 66 69 63 0a 20 20 20 20 20 70 .connection.with.specific......p
4f420 72 6f 64 75 63 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 73 20 74 68 61 74 20 63 6f 6e roducts.or.compilations.that.con
4f440 74 61 69 6e 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 75 6e 6c 65 73 73 20 79 6f tain.the.covered.work,.unless.yo
4f460 75 0a 20 20 20 20 20 65 6e 74 65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 61 72 72 61 6e 67 65 u......entered.into.that.arrange
4f480 6d 65 6e 74 2c 20 6f 72 20 74 68 61 74 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 77 61 73 ment,.or.that.patent.license.was
4f4a0 20 67 72 61 6e 74 65 64 2c 0a 20 20 20 20 20 70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 63 68 .granted,......prior.to.28.March
4f4c0 20 32 30 30 37 2e 0a 0a 20 20 20 20 20 4e 6f 74 68 69 6e 67 20 69 6e 20 74 68 69 73 20 4c 69 63 .2007........Nothing.in.this.Lic
4f4e0 65 6e 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 65 64 20 61 73 20 65 78 63 6c 75 ense.shall.be.construed.as.exclu
4f500 64 69 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 20 20 20 20 20 61 6e 79 20 69 6d 70 6c 69 65 ding.or.limiting......any.implie
4f520 64 20 6c 69 63 65 6e 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65 6e 73 65 73 20 74 6f 20 69 d.license.or.other.defenses.to.i
4f540 6e 66 72 69 6e 67 65 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 20 20 20 20 20 6f 74 68 65 72 77 nfringement.that.may......otherw
4f560 69 73 65 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 61 70 ise.be.available.to.you.under.ap
4f580 70 6c 69 63 61 62 6c 65 20 70 61 74 65 6e 74 20 6c 61 77 2e 0a 0a 20 20 31 32 2e 20 4e 6f 20 53 plicable.patent.law.....12..No.S
4f5a0 75 72 72 65 6e 64 65 72 20 6f 66 20 4f 74 68 65 72 73 e2 80 99 20 46 72 65 65 64 6f 6d 2e 0a 0a urrender.of.Others....Freedom...
4f5c0 20 20 20 20 20 49 66 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f .....If.conditions.are.imposed.o
4f5e0 6e 20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 79 20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 n.you.(whether.by.court.order,.a
4f600 67 72 65 65 6d 65 6e 74 0a 20 20 20 20 20 6f 72 20 6f 74 68 65 72 77 69 73 65 29 20 74 68 61 74 greement......or.otherwise).that
4f620 20 63 6f 6e 74 72 61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 74 68 .contradict.the.conditions.of.th
4f640 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 79 0a 20 20 20 20 20 64 6f 20 6e 6f 74 20 65 78 63 is.License,.they......do.not.exc
4f660 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 6f 66 20 74 use.you.from.the.conditions.of.t
4f680 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 0a 20 20 20 20 20 63 61 6e 6e 6f 74 his.License...If.you......cannot
4f6a0 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 6f 20 61 73 20 74 6f 20 .convey.a.covered.work.so.as.to.
4f6c0 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 79 6f 75 72 0a 20 20 20 20 satisfy.simultaneously.your.....
4f6e0 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 .obligations.under.this.License.
4f700 61 6e 64 20 61 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 20 6f 62 6c 69 67 61 74 69 and.any.other.pertinent.obligati
4f720 6f 6e 73 2c 0a 20 20 20 20 20 74 68 65 6e 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 ons,......then.as.a.consequence.
4f740 79 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61 6c 6c 2e 20 20 46 you.may.not.convey.it.at.all...F
4f760 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 20 20 20 20 20 69 66 20 79 6f 75 20 61 67 72 65 65 20 74 6f or.example,......if.you.agree.to
4f780 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 6c 69 67 61 74 65 20 79 6f 75 20 74 6f 20 63 6f 6c 6c .terms.that.obligate.you.to.coll
4f7a0 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 66 6f 72 0a 20 20 20 20 20 66 75 72 74 68 65 72 20 63 ect.a.royalty.for......further.c
4f7c0 6f 6e 76 65 79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 20 74 6f 20 77 68 6f 6d 20 79 6f 75 20 onveying.from.those.to.whom.you.
4f7e0 63 6f 6e 76 65 79 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 65 0a 20 20 20 20 20 6f 6e 6c convey.the.Program,.the......onl
4f800 79 20 77 61 79 20 79 6f 75 20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 20 62 6f 74 68 20 74 68 6f y.way.you.could.satisfy.both.tho
4f820 73 65 20 74 65 72 6d 73 20 61 6e 64 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 6f 75 6c 64 0a se.terms.and.this.License.would.
4f840 20 20 20 20 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e 20 65 6e 74 69 72 65 6c 79 20 66 72 6f 6d .....be.to.refrain.entirely.from
4f860 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 31 33 2e 20 55 .conveying.the.Program.....13..U
4f880 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 se.with.the.GNU.Affero.General.P
4f8a0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 4e 6f 74 77 69 74 68 73 74 61 6e ublic.License........Notwithstan
4f8c0 64 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 ding.any.other.provision.of.this
4f8e0 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 20 20 20 20 20 70 65 72 6d 69 73 73 69 .License,.you.have......permissi
4f900 6f 6e 20 74 6f 20 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 63 6f 76 65 72 65 on.to.link.or.combine.any.covere
4f920 64 20 77 6f 72 6b 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 0a 20 20 20 20 d.work.with.a.work.licensed.....
4f940 20 75 6e 64 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 .under.version.3.of.the.GNU.Affe
4f960 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 61 ro.General.Public.License.into.a
4f980 0a 20 20 20 20 20 73 69 6e 67 6c 65 20 63 6f 6d 62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 ......single.combined.work,.and.
4f9a0 74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54 to.convey.the.resulting.work...T
4f9c0 68 65 20 74 65 72 6d 73 0a 20 20 20 20 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 he.terms......of.this.License.wi
4f9e0 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 20 74 6f 20 74 68 65 20 70 61 72 74 ll.continue.to.apply.to.the.part
4fa00 20 77 68 69 63 68 20 69 73 20 74 68 65 0a 20 20 20 20 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c .which.is.the......covered.work,
4fa20 20 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 .but.the.special.requirements.of
4fa40 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 0a 20 20 20 20 20 47 65 6e 65 72 61 6c 20 50 75 62 .the.GNU.Affero......General.Pub
4fa60 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 73 65 63 74 69 6f 6e 20 31 33 2c 20 63 6f 6e 63 65 72 6e lic.License,.section.13,.concern
4fa80 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 0a 20 20 20 20 20 61 20 6e ing.interaction.through......a.n
4faa0 65 74 77 6f 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 20 63 6f 6d 62 69 6e 61 etwork.will.apply.to.the.combina
4fac0 74 69 6f 6e 20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e 20 52 65 76 69 73 65 64 20 56 65 72 tion.as.such.....14..Revised.Ver
4fae0 73 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 20 20 20 54 68 65 sions.of.this.License........The
4fb00 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 .Free.Software.Foundation.may.pu
4fb20 62 6c 69 73 68 20 72 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 77 0a 20 20 20 20 20 76 65 blish.revised.and/or.new......ve
4fb40 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 rsions.of.the.GNU.General.Public
4fb60 20 4c 69 63 65 6e 73 65 20 66 72 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 .License.from.time.to.time...Suc
4fb80 68 0a 20 20 20 20 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 20 77 69 6c 6c 20 62 65 20 73 69 6d 69 h......new.versions.will.be.simi
4fba0 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f 20 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 lar.in.spirit.to.the.present.ver
4fbc0 73 69 6f 6e 2c 20 62 75 74 0a 20 20 20 20 20 6d 61 79 20 64 69 66 66 65 72 20 69 6e 20 64 65 74 sion,.but......may.differ.in.det
4fbe0 61 69 6c 20 74 6f 20 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f 62 6c 65 6d 73 20 6f 72 20 63 ail.to.address.new.problems.or.c
4fc00 6f 6e 63 65 72 6e 73 2e 0a 0a 20 20 20 20 20 45 61 63 68 20 76 65 72 73 69 6f 6e 20 69 73 20 67 oncerns........Each.version.is.g
4fc20 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 72 73 69 6f 6e 20 6e 75 iven.a.distinguishing.version.nu
4fc40 6d 62 65 72 2e 20 20 49 66 20 74 68 65 0a 20 20 20 20 20 50 72 6f 67 72 61 6d 20 73 70 65 63 69 mber...If.the......Program.speci
4fc60 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 65 72 65 64 20 76 65 72 fies.that.a.certain.numbered.ver
4fc80 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 0a 20 20 20 20 20 47 65 6e 65 72 61 6c 20 50 75 62 sion.of.the.GNU......General.Pub
4fca0 6c 69 63 20 4c 69 63 65 6e 73 65 20 e2 80 9c 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 lic.License....or.any.later.vers
4fcc0 69 6f 6e e2 80 9d 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 0a 20 20 20 20 20 68 ion....applies.to.it,.you......h
4fce0 61 76 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 ave.the.option.of.following.the.
4fd00 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 0a 20 terms.and.conditions.either.of..
4fd20 20 20 20 20 74 68 61 74 20 6e 75 6d 62 65 72 65 64 20 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 ....that.numbered.version.or.of.
4fd40 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 any.later.version.published.by.t
4fd60 68 65 20 46 72 65 65 0a 20 20 20 20 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e he.Free......Software.Foundation
4fd80 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 73 20 6e 6f 74 20 73 70 65 63 69 ...If.the.Program.does.not.speci
4fda0 66 79 20 61 20 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 20 fy.a.version......number.of.the.
4fdc0 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 GNU.General.Public.License,.you.
4fde0 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 20 65 76 65 72 may.choose.any......version.ever
4fe00 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 .published.by.the.Free.Software.
4fe20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d Foundation........If.the.Program
4fe40 20 73 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e 20 64 65 63 69 .specifies.that.a.proxy.can.deci
4fe60 64 65 20 77 68 69 63 68 20 66 75 74 75 72 65 0a 20 20 20 20 20 76 65 72 73 69 6f 6e 73 20 6f 66 de.which.future......versions.of
4fe80 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 .the.GNU.General.Public.License.
4fea0 63 61 6e 20 62 65 20 75 73 65 64 2c 20 74 68 61 74 0a 20 20 20 20 20 70 72 6f 78 79 e2 80 99 73 can.be.used,.that......proxy...s
4fec0 20 70 75 62 6c 69 63 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 .public.statement.of.acceptance.
4fee0 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 65 72 6d 61 6e 65 6e 74 6c 79 0a 20 20 20 20 20 61 75 of.a.version.permanently......au
4ff00 74 68 6f 72 69 7a 65 73 20 79 6f 75 20 74 6f 20 63 68 6f 6f 73 65 20 74 68 61 74 20 76 65 72 73 thorizes.you.to.choose.that.vers
4ff20 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 20 20 20 4c 61 74 65 72 ion.for.the.Program........Later
4ff40 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 67 69 76 65 20 79 6f 75 20 61 .license.versions.may.give.you.a
4ff60 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 0a 20 20 20 20 20 70 65 72 6d dditional.or.different......perm
4ff80 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 69 6f 6e 61 6c issions...However,.no.additional
4ffa0 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 61 6e 79 0a .obligations.are.imposed.on.any.
4ffc0 20 20 20 20 20 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 .....author.or.copyright.holder.
4ffe0 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 74 6f 20 as.a.result.of.your.choosing.to.
50000 66 6f 6c 6c 6f 77 20 61 0a 20 20 20 20 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 follow.a......later.version.....
50020 31 35 2e 20 44 69 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a 20 20 20 15..Disclaimer.of.Warranty......
50040 20 20 54 48 45 52 45 20 49 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 45 20 50 ..THERE.IS.NO.WARRANTY.FOR.THE.P
50060 52 4f 47 52 41 4d 2c 20 54 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 45 44 20 ROGRAM,.TO.THE.EXTENT.PERMITTED.
50080 42 59 0a 20 20 20 20 20 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50 54 20 BY......APPLICABLE.LAW...EXCEPT.
500a0 57 48 45 4e 20 4f 54 48 45 52 57 49 53 45 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 4e 47 WHEN.OTHERWISE.STATED.IN.WRITING
500c0 20 54 48 45 0a 20 20 20 20 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e 44 2f .THE......COPYRIGHT.HOLDERS.AND/
500e0 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 52 4f 56 49 44 45 20 54 48 45 20 50 52 4f OR.OTHER.PARTIES.PROVIDE.THE.PRO
50100 47 52 41 4d 20 e2 80 9c 41 53 20 49 53 e2 80 9d 0a 20 20 20 20 20 57 49 54 48 4f 55 54 20 57 41 GRAM....AS.IS.........WITHOUT.WA
50120 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 45 58 50 52 45 RRANTY.OF.ANY.KIND,.EITHER.EXPRE
50140 53 53 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 0a 20 20 20 20 20 49 4e 43 4c 55 44 49 4e 47 2c SSED.OR.IMPLIED,......INCLUDING,
50160 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 20 49 4d 50 4c 49 45 44 .BUT.NOT.LIMITED.TO,.THE.IMPLIED
50180 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 0a 20 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c .WARRANTIES.OF......MERCHANTABIL
501a0 49 54 59 20 41 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 ITY.AND.FITNESS.FOR.A.PARTICULAR
501c0 20 50 55 52 50 4f 53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 0a 20 20 20 20 20 52 49 53 4b 20 .PURPOSE...THE.ENTIRE......RISK.
501e0 41 53 20 54 4f 20 54 48 45 20 51 55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f 52 4d 41 4e 43 AS.TO.THE.QUALITY.AND.PERFORMANC
50200 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 49 53 20 57 49 54 48 20 59 4f 55 2e 0a 20 20 E.OF.THE.PROGRAM.IS.WITH.YOU....
50220 20 20 20 53 48 4f 55 4c 44 20 54 48 45 20 50 52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46 45 ...SHOULD.THE.PROGRAM.PROVE.DEFE
50240 43 54 49 56 45 2c 20 59 4f 55 20 41 53 53 55 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 20 41 4c CTIVE,.YOU.ASSUME.THE.COST.OF.AL
50260 4c 0a 20 20 20 20 20 4e 45 43 45 53 53 41 52 59 20 53 45 52 56 49 43 49 4e 47 2c 20 52 45 50 41 L......NECESSARY.SERVICING,.REPA
50280 49 52 20 4f 52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a 20 20 31 36 2e 20 4c 69 6d 69 74 61 74 IR.OR.CORRECTION.....16..Limitat
502a0 69 6f 6e 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a 20 20 20 20 20 49 4e 20 4e 4f 20 45 56 ion.of.Liability........IN.NO.EV
502c0 45 4e 54 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 20 41 50 50 4c 49 43 41 42 4c ENT.UNLESS.REQUIRED.BY.APPLICABL
502e0 45 20 4c 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 0a 20 20 20 20 20 57 52 49 54 49 E.LAW.OR.AGREED.TO.IN......WRITI
50300 4e 47 20 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 2c 20 4f 52 NG.WILL.ANY.COPYRIGHT.HOLDER,.OR
50320 20 41 4e 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 45 53 0a 20 20 .ANY.OTHER.PARTY.WHO.MODIFIES...
50340 20 20 20 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53 20 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 ...AND/OR.CONVEYS.THE.PROGRAM.AS
50360 20 50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 .PERMITTED.ABOVE,.BE.LIABLE.TO.Y
50380 4f 55 20 46 4f 52 0a 20 20 20 20 20 44 41 4d 41 47 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 20 41 OU.FOR......DAMAGES,.INCLUDING.A
503a0 4e 59 20 47 45 4e 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 NY.GENERAL,.SPECIAL,.INCIDENTAL.
503c0 4f 52 0a 20 20 20 20 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 41 52 OR......CONSEQUENTIAL.DAMAGES.AR
503e0 49 53 49 4e 47 20 4f 55 54 20 4f 46 20 54 48 45 20 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 ISING.OUT.OF.THE.USE.OR.INABILIT
50400 59 20 54 4f 20 55 53 45 0a 20 20 20 20 20 54 48 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 Y.TO.USE......THE.PROGRAM.(INCLU
50420 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 20 DING.BUT.NOT.LIMITED.TO.LOSS.OF.
50440 44 41 54 41 20 4f 52 20 44 41 54 41 0a 20 20 20 20 20 42 45 49 4e 47 20 52 45 4e 44 45 52 45 44 DATA.OR.DATA......BEING.RENDERED
50460 20 49 4e 41 43 43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 53 20 53 55 53 54 41 49 4e 45 44 20 .INACCURATE.OR.LOSSES.SUSTAINED.
50480 42 59 20 59 4f 55 20 4f 52 20 54 48 49 52 44 0a 20 20 20 20 20 50 41 52 54 49 45 53 20 4f 52 20 BY.YOU.OR.THIRD......PARTIES.OR.
504a0 41 20 46 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 54 4f 20 4f 50 45 52 A.FAILURE.OF.THE.PROGRAM.TO.OPER
504c0 41 54 45 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 0a 20 20 20 20 20 50 52 4f 47 52 41 4d 53 ATE.WITH.ANY.OTHER......PROGRAMS
504e0 29 2c 20 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 52 20 ),.EVEN.IF.SUCH.HOLDER.OR.OTHER.
50500 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 0a 20 20 20 20 20 54 PARTY.HAS.BEEN.ADVISED.OF......T
50520 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a HE.POSSIBILITY.OF.SUCH.DAMAGES..
50540 0a 20 20 31 37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e ...17..Interpretation.of.Section
50560 73 20 31 35 20 61 6e 64 20 31 36 2e 0a 0a 20 20 20 20 20 49 66 20 74 68 65 20 64 69 73 63 6c 61 s.15.and.16........If.the.discla
50580 69 6d 65 72 20 6f 66 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 imer.of.warranty.and.limitation.
505a0 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 20 61 62 6f 76 65 of.liability.provided......above
505c0 20 63 61 6e 6e 6f 74 20 62 65 20 67 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 .cannot.be.given.local.legal.eff
505e0 65 63 74 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 20 20 ect.according.to.their.terms,...
50600 20 20 20 72 65 76 69 65 77 69 6e 67 20 63 6f 75 72 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 ...reviewing.courts.shall.apply.
50620 6c 6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d 6f 73 74 20 63 6c 6f 73 65 6c 79 0a 20 20 20 20 local.law.that.most.closely.....
50640 20 61 70 70 72 6f 78 69 6d 61 74 65 73 20 61 6e 20 61 62 73 6f 6c 75 74 65 20 77 61 69 76 65 72 .approximates.an.absolute.waiver
50660 20 6f 66 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 74 79 20 69 6e 0a 20 20 20 20 20 .of.all.civil.liability.in......
50680 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 75 6e 6c connection.with.the.Program,.unl
506a0 65 73 73 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 6f 6e 20 6f 66 0a ess.a.warranty.or.assumption.of.
506c0 20 20 20 20 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 20 63 6f 70 .....liability.accompanies.a.cop
506e0 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 61 y.of.the.Program.in.return.for.a
50700 20 66 65 65 2e 0a 0a 45 4e 44 20 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f .fee...END.OF.TERMS.AND.CONDITIO
50720 4e 53 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a NS.===========================..
50740 48 6f 77 20 74 6f 20 41 70 70 6c 79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 6f 20 59 6f 75 72 How.to.Apply.These.Terms.to.Your
50760 20 4e 65 77 20 50 72 6f 67 72 61 6d 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .New.Programs.==================
50780 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 66 20 ===========================..If.
507a0 79 6f 75 20 64 65 76 65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c 20 61 6e 64 20 79 you.develop.a.new.program,.and.y
507c0 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73 74 ou.want.it.to.be.of.the.greatest
507e0 0a 70 6f 73 73 69 62 6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 74 68 65 .possible.use.to.the.public,.the
50800 20 62 65 73 74 20 77 61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 69 73 20 74 6f 20 .best.way.to.achieve.this.is.to.
50820 6d 61 6b 65 20 69 74 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 65 76 65 72 make.it.free.software.which.ever
50840 79 6f 6e 65 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 63 68 61 6e 67 65 yone.can.redistribute.and.change
50860 20 75 6e 64 65 72 20 74 68 65 73 65 0a 74 65 72 6d 73 2e 0a 0a 20 20 20 54 6f 20 64 6f 20 73 6f .under.these.terms......To.do.so
50880 2c 20 61 74 74 61 63 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 73 20 74 ,.attach.the.following.notices.t
508a0 6f 20 74 68 65 20 70 72 6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a 74 6f 20 o.the.program...It.is.safest.to.
508c0 61 74 74 61 63 68 20 74 68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 attach.them.to.the.start.of.each
508e0 20 73 6f 75 72 63 65 20 66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 65 6c 79 .source.file.to.most.effectively
50900 0a 73 74 61 74 65 20 74 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 6e 74 79 .state.the.exclusion.of.warranty
50920 3b 20 61 6e 64 20 65 61 63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 74 20 6c ;.and.each.file.should.have.at.l
50940 65 61 73 74 20 74 68 65 0a e2 80 9c 63 6f 70 79 72 69 67 68 74 e2 80 9d 20 6c 69 6e 65 20 61 6e east.the....copyright....line.an
50960 64 20 61 20 70 6f 69 6e 74 65 72 20 74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e 6f d.a.pointer.to.where.the.full.no
50980 74 69 63 65 20 69 73 20 66 6f 75 6e 64 2e 0a 0a 20 20 20 20 20 4f 4e 45 20 4c 49 4e 45 20 54 4f tice.is.found........ONE.LINE.TO
509a0 20 47 49 56 45 20 54 48 45 20 50 52 4f 47 52 41 4d 27 53 20 4e 41 4d 45 20 41 4e 44 20 41 20 42 .GIVE.THE.PROGRAM'S.NAME.AND.A.B
509c0 52 49 45 46 20 49 44 45 41 20 4f 46 20 57 48 41 54 20 49 54 20 44 4f 45 53 2e 0a 20 20 20 20 20 RIEF.IDEA.OF.WHAT.IT.DOES.......
509e0 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 59 45 41 52 20 4e 41 4d 45 20 4f 46 20 41 55 54 48 4f Copyright.(C).YEAR.NAME.OF.AUTHO
50a00 52 0a 0a 20 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 R.......This.program.is.free.sof
50a20 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 tware:.you.can.redistribute.it.a
50a40 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 20 20 20 20 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 nd/or.modify......it.under.the.t
50a60 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c erms.of.the.GNU.General.Public.L
50a80 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 20 20 20 20 20 74 68 65 20 icense.as.published.by......the.
50aa0 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 Free.Software.Foundation,.either
50ac0 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 20 28 61 .version.3.of.the.License,.or.(a
50ae0 74 0a 20 20 20 20 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 t......your.option).any.later.ve
50b00 72 73 69 6f 6e 2e 0a 0a 20 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 rsion........This.program.is.dis
50b20 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c tributed.in.the.hope.that.it.wil
50b40 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 0a 20 20 20 20 20 57 49 54 48 4f 55 54 20 41 4e l.be.useful,.but......WITHOUT.AN
50b60 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 Y.WARRANTY;.without.even.the.imp
50b80 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 20 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 lied.warranty.of......MERCHANTAB
50ba0 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 ILITY.or.FITNESS.FOR.A.PARTICULA
50bc0 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 0a 20 20 20 20 20 47 65 6e R.PURPOSE...See.the.GNU......Gen
50be0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 eral.Public.License.for.more.det
50c00 61 69 6c 73 2e 0a 0a 20 20 20 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 ails........You.should.have.rece
50c20 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
50c40 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 20 20 20 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 ublic.License......along.with.th
50c60 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a is.program...If.not,.see.<https:
50c80 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 20 41 6c //www.gnu.org/licenses/>......Al
50ca0 73 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6e so.add.information.on.how.to.con
50cc0 74 61 63 74 20 79 6f 75 20 62 79 20 65 6c 65 63 74 72 6f 6e 69 63 20 61 6e 64 20 70 61 70 65 72 tact.you.by.electronic.and.paper
50ce0 0a 6d 61 69 6c 2e 0a 0a 20 20 20 49 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 64 6f 65 73 20 74 .mail......If.the.program.does.t
50d00 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c 20 6d 61 6b 65 20 69 74 20 6f 75 74 erminal.interaction,.make.it.out
50d20 70 75 74 20 61 20 73 68 6f 72 74 0a 6e 6f 74 69 63 65 20 6c 69 6b 65 20 74 68 69 73 20 77 68 65 put.a.short.notice.like.this.whe
50d40 6e 20 69 74 20 73 74 61 72 74 73 20 69 6e 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f n.it.starts.in.an.interactive.mo
50d60 64 65 3a 0a 0a 20 20 20 20 20 50 52 4f 47 52 41 4d 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 de:.......PROGRAM.Copyright.(C).
50d80 59 45 41 52 20 4e 41 4d 45 20 4f 46 20 41 55 54 48 4f 52 0a 20 20 20 20 20 54 68 69 73 20 70 72 YEAR.NAME.OF.AUTHOR......This.pr
50da0 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 74 68 20 41 42 53 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 ogram.comes.with.ABSOLUTELY.NO.W
50dc0 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 65 74 61 69 6c 73 20 74 79 70 65 20 e2 80 98 73 68 6f ARRANTY;.for.details.type....sho
50de0 77 20 77 e2 80 99 2e 0a 20 20 20 20 20 54 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 w.w..........This.is.free.softwa
50e00 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c 63 6f 6d 65 20 74 6f 20 72 65 64 69 73 re,.and.you.are.welcome.to.redis
50e20 74 72 69 62 75 74 65 20 69 74 0a 20 20 20 20 20 75 6e 64 65 72 20 63 65 72 74 61 69 6e 20 63 6f tribute.it......under.certain.co
50e40 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 e2 80 98 73 68 6f 77 20 63 e2 80 99 20 66 6f 72 20 nditions;.type....show.c....for.
50e60 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 54 68 65 20 68 79 70 6f 74 68 65 74 69 63 61 6c 20 63 6f details......The.hypothetical.co
50e80 6d 6d 61 6e 64 73 20 e2 80 98 73 68 6f 77 20 77 e2 80 99 20 61 6e 64 20 e2 80 98 73 68 6f 77 20 mmands....show.w....and....show.
50ea0 63 e2 80 99 20 73 68 6f 75 6c 64 20 73 68 6f 77 20 74 68 65 0a 61 70 70 72 6f 70 72 69 61 74 65 c....should.show.the.appropriate
50ec0 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 .parts.of.the.General.Public.Lic
50ee0 65 6e 73 65 2e 20 20 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75 72 0a 70 72 6f 67 72 61 6d e2 80 ense...Of.course,.your.program..
50f00 99 73 20 63 6f 6d 6d 61 6e 64 73 20 6d 69 67 68 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 .s.commands.might.be.different;.
50f20 66 6f 72 20 61 20 47 55 49 20 69 6e 74 65 72 66 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 0a 75 for.a.GUI.interface,.you.would.u
50f40 73 65 20 61 6e 20 e2 80 9c 61 62 6f 75 74 20 62 6f 78 e2 80 9d 2e 0a 0a 20 20 20 59 6f 75 20 73 se.an....about.box.........You.s
50f60 68 6f 75 6c 64 20 61 6c 73 6f 20 67 65 74 20 79 6f 75 72 20 65 6d 70 6c 6f 79 65 72 20 28 69 66 hould.also.get.your.employer.(if
50f80 20 79 6f 75 20 77 6f 72 6b 20 61 73 20 61 20 70 72 6f 67 72 61 6d 6d 65 72 29 20 6f 72 0a 73 63 .you.work.as.a.programmer).or.sc
50fa0 68 6f 6f 6c 2c 20 69 66 20 61 6e 79 2c 20 74 6f 20 73 69 67 6e 20 61 20 e2 80 9c 63 6f 70 79 72 hool,.if.any,.to.sign.a....copyr
50fc0 69 67 68 74 20 64 69 73 63 6c 61 69 6d 65 72 e2 80 9d 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72 ight.disclaimer....for.the.progr
50fe0 61 6d 2c 20 69 66 0a 6e 65 63 65 73 73 61 72 79 2e 20 20 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f am,.if.necessary...For.more.info
51000 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 61 70 70 6c rmation.on.this,.and.how.to.appl
51020 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 0a 74 68 65 20 47 4e 55 20 47 50 4c 2c 20 73 65 65 20 3c 68 y.and.follow.the.GNU.GPL,.see.<h
51040 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a ttps://www.gnu.org/licenses/>...
51060 20 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 ...The.GNU.General.Public.Licens
51080 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 74 20 69 6e 63 6f 72 70 6f 72 61 74 69 6e 67 20 e.does.not.permit.incorporating.
510a0 79 6f 75 72 0a 70 72 6f 67 72 61 6d 20 69 6e 74 6f 20 70 72 6f 70 72 69 65 74 61 72 79 20 70 72 your.program.into.proprietary.pr
510c0 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 20 69 73 20 61 20 73 75 ograms...If.your.program.is.a.su
510e0 62 72 6f 75 74 69 6e 65 0a 6c 69 62 72 61 72 79 2c 20 79 6f 75 20 6d 61 79 20 63 6f 6e 73 69 64 broutine.library,.you.may.consid
51100 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 74 6f 20 70 65 72 6d 69 74 20 6c 69 6e 6b er.it.more.useful.to.permit.link
51120 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 0a 61 70 70 6c 69 63 61 74 69 6f 6e 73 20 77 69 74 ing.proprietary.applications.wit
51140 68 20 74 68 65 20 6c 69 62 72 61 72 79 2e 20 20 49 66 20 74 68 69 73 20 69 73 20 77 68 61 74 20 h.the.library...If.this.is.what.
51160 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 4c 65 73 73 you.want.to.do,.use.the.GNU.Less
51180 65 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 73 74 65 61 er.General.Public.License.instea
511a0 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 42 75 74 20 66 69 72 73 74 2c 0a 70 d.of.this.License...But.first,.p
511c0 6c 65 61 73 65 20 72 65 61 64 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f lease.read.<https://www.gnu.org/
511e0 6c 69 63 65 6e 73 65 73 2f 77 68 79 2d 6e 6f 74 2d 6c 67 70 6c 2e 68 74 6d 6c 3e 2e 0a 0a 1f 0a licenses/why-not-lgpl.html>.....
51200 46 69 6c 65 3a 20 64 61 73 68 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 49 6e 64 65 78 2c 20 20 File:.dash.info,..Node:.Index,..
51220 50 72 65 76 3a 20 47 50 4c 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 49 6e 64 65 78 0a 2a 2a 2a 2a 2a Prev:.GPL,..Up:.Top..Index.*****
51240 0a 0a 00 08 5b 69 6e 64 65 78 00 08 5d 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 21 63 64 72 3a 20 20 ....[index..].*.Menu:..*.!cdr:..
51260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51280 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 Destructive.operations..........
512a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
512c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 36 29 ......................(line..16)
512e0 0a 2a 20 21 63 6f 6e 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.!cons:.......................
51300 20 20 20 20 20 20 20 20 20 20 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 74 69 6f 6e 73 ..........Destructive.operations
51320 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51360 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 2d 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (line...8).*.-->:...............
51380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 72 65 61 64 69 6e 67 20 6d 61 ....................Threading.ma
513a0 63 72 6f 73 2e 20 20 20 20 28 6c 69 6e 65 20 20 33 35 29 0a 2a 20 2d 3e 3a 20 20 20 20 20 20 20 cros.....(line..35).*.->:.......
513c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 72 .............................Thr
513e0 65 61 64 69 6e 67 20 6d 61 63 72 6f 73 2e 20 20 20 20 28 6c 69 6e 65 20 20 20 39 29 0a 2a 20 2d eading.macros.....(line...9).*.-
51400 3e 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >>:.............................
51420 20 20 20 20 20 20 54 68 72 65 61 64 69 6e 67 20 6d 61 63 72 6f 73 2e 20 20 20 20 28 6c 69 6e 65 ......Threading.macros.....(line
51440 20 20 32 32 29 0a 2a 20 2d 61 6c 6c 3f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..22).*.-all?:..................
51460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 61 74 65 73 2e 20 20 20 20 20 20 ...............Predicates.......
51480 20 20 20 20 28 6c 69 6e 65 20 20 35 33 29 0a 2a 20 2d 61 6e 64 66 6e 3a 20 20 20 20 20 20 20 20 ....(line..53).*.-andfn:........
514a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e ........................Function
514c0 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .combinators....................
514e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51500 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 38 34 29 0a 2a 20 2d 61 6e 6e 6f 74 61 ............(line.184).*.-annota
51520 74 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te:.............................
51540 4d 61 70 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 36 29 0a Maps.................(line..86).
51560 2a 20 2d 61 6e 79 3f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.-any?:........................
51580 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 61 74 65 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c .........Predicates...........(l
515a0 69 6e 65 20 20 34 31 29 0a 2a 20 2d 61 70 70 6c 69 66 79 3a 20 20 20 20 20 20 20 20 20 20 20 20 ine..41).*.-applify:............
515c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 ..................Function.combi
515e0 6e 61 74 6f 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nators..........................
51600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51620 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 33 29 0a 2a 20 2d 61 73 2d 3e 3a 20 20 20 20 20 20 20 ......(line..63).*.-as->:.......
51640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 72 65 61 64 ..........................Thread
51660 69 6e 67 20 6d 61 63 72 6f 73 2e 20 20 20 20 28 6c 69 6e 65 20 20 34 39 29 0a 2a 20 2d 62 75 74 ing.macros.....(line..49).*.-but
51680 6c 61 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 last:...........................
516a0 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 ...Other.list.operations........
516c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
516e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 34 30 ........................(line.40
51700 35 29 0a 2a 20 2d 63 6c 6f 6e 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5).*.-clone:....................
51720 20 20 20 20 20 20 20 20 20 20 20 20 54 72 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 ............Tree.operations.....
51740 20 28 6c 69 6e 65 20 31 32 33 29 0a 2a 20 2d 63 6f 6d 6d 6f 6e 2d 70 72 65 66 69 78 3a 20 20 20 .(line.123).*.-common-prefix:...
51760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e .....................Reductions.
51780 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 34 32 29 0a 2a 20 2d 63 6f 6d 6d 6f 6e 2d 73 ..........(line.242).*.-common-s
517a0 75 66 66 69 78 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 uffix:........................Re
517c0 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 35 32 29 0a 2a 20 ductions...........(line.252).*.
517e0 2d 63 6f 6d 70 6f 73 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -compose:.......................
51800 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 20 .......Function.combinators.....
51820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ...........................(line
51860 20 20 34 39 29 0a 2a 20 2d 63 6f 6e 63 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..49).*.-concat:................
51880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 2e 20 20 20 20 ...............List.to.list.....
518a0 20 20 20 20 28 6c 69 6e 65 20 20 32 33 29 0a 2a 20 2d 63 6f 6e 73 2a 3a 20 20 20 20 20 20 20 20 ....(line..23).*.-cons*:........
518c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 ........................Other.li
518e0 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st.operations...................
51900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51920 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 39 29 0a 2a 20 2d 63 6f 6e 73 2d .............(line..19).*.-cons-
51940 70 61 69 72 3f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pair?:..........................
51960 20 50 72 65 64 69 63 61 74 65 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 35 34 29 .Predicates...........(line.154)
51980 0a 2a 20 2d 63 6f 6e 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.-const:......................
519a0 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a ..........Function.combinators..
519c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
519e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
51a00 69 6e 65 20 31 32 38 29 0a 2a 20 2d 63 6f 6e 74 61 69 6e 73 3f 3a 20 20 20 20 20 20 20 20 20 20 ine.128).*.-contains?:..........
51a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 61 74 65 73 2e 20 20 20 ..................Predicates....
51a40 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 30 29 0a 2a 20 2d 63 6f 70 79 3a 20 20 20 20 20 20 .......(line.100).*.-copy:......
51a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 70 73 2e ...........................Maps.
51a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 35 31 29 0a 2a 20 2d 63 6f ................(line.151).*.-co
51aa0 75 6e 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 unt:............................
51ac0 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 ....Reductions...........(line.1
51ae0 37 32 29 0a 2a 20 2d 63 75 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72).*.-cut:.....................
51b00 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 .............Function.combinator
51b20 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
51b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
51b60 20 28 6c 69 6e 65 20 31 34 30 29 0a 2a 20 2d 63 79 63 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 .(line.140).*.-cycle:...........
51b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 66 6f 6c 64 69 6e 67 2e 20 .....................Unfolding..
51ba0 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 35 29 0a 2a 20 2d 64 69 66 66 65 72 65 6e ..........(line..55).*.-differen
51bc0 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 ce:...........................Se
51be0 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 32 29 0a 2a 20 t.operations.......(line..22).*.
51c00 2d 64 69 73 74 69 6e 63 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -distinct:......................
51c20 20 20 20 20 20 20 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e .......Set.operations.......(lin
51c40 65 20 20 37 33 29 0a 2a 20 2d 64 6f 74 69 6d 65 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e..73).*.-dotimes:..............
51c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 64 65 20 65 66 66 65 63 74 73 2e 20 20 20 ................Side.effects....
51c80 20 20 20 20 20 28 6c 69 6e 65 20 20 38 30 29 0a 2a 20 2d 64 6f 74 6f 3a 20 20 20 20 20 20 20 20 .....(line..80).*.-doto:........
51ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 72 65 61 64 69 .........................Threadi
51cc0 6e 67 20 6d 61 63 72 6f 73 2e 20 20 20 20 28 6c 69 6e 65 20 20 39 39 29 0a 2a 20 2d 64 72 6f 70 ng.macros.....(line..99).*.-drop
51ce0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :...............................
51d00 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 31 34 39 ..Sublist.selection....(line.149
51d20 29 0a 2a 20 2d 64 72 6f 70 2d 6c 61 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.-drop-last:.................
51d40 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 ...........Sublist.selection....
51d60 28 6c 69 6e 65 20 31 36 33 29 0a 2a 20 2d 64 72 6f 70 2d 77 68 69 6c 65 3a 20 20 20 20 20 20 20 (line.163).*.-drop-while:.......
51d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 ....................Sublist.sele
51da0 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 31 39 34 29 0a 2a 20 2d 65 61 63 68 3a 20 20 20 20 ction....(line.194).*.-each:....
51dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 64 .............................Sid
51de0 65 20 65 66 66 65 63 74 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d e.effects.........(line...8).*.-
51e00 65 61 63 68 2d 69 6e 64 65 78 65 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 each-indexed:...................
51e20 20 20 20 20 20 20 53 69 64 65 20 65 66 66 65 63 74 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ......Side.effects.........(line
51e40 20 20 33 38 29 0a 2a 20 2d 65 61 63 68 2d 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..38).*.-each-r:................
51e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 64 65 20 65 66 66 65 63 74 73 2e 20 20 20 20 ...............Side.effects.....
51e80 20 20 20 20 28 6c 69 6e 65 20 20 35 32 29 0a 2a 20 2d 65 61 63 68 2d 72 2d 77 68 69 6c 65 3a 20 ....(line..52).*.-each-r-while:.
51ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 69 64 65 20 65 66 66 ........................Side.eff
51ec0 65 63 74 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 35 29 0a 2a 20 2d 65 61 63 68 2d ects.........(line..65).*.-each-
51ee0 77 68 69 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 while:..........................
51f00 20 53 69 64 65 20 65 66 66 65 63 74 73 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 34 29 .Side.effects.........(line..24)
51f20 0a 2a 20 2d 65 6c 65 6d 2d 69 6e 64 65 78 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.-elem-index:.................
51f40 20 20 20 20 20 20 20 20 20 20 49 6e 64 65 78 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 ..........Indexing.............(
51f60 6c 69 6e 65 20 20 20 39 29 0a 2a 20 2d 65 6c 65 6d 2d 69 6e 64 69 63 65 73 3a 20 20 20 20 20 20 line...9).*.-elem-indices:......
51f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 64 65 78 69 6e 67 2e 20 20 20 20 ...................Indexing.....
51fa0 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 33 29 0a 2a 20 2d 65 76 65 72 79 3a 20 20 20 20 ........(line..23).*.-every:....
51fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 ............................Pred
51fe0 69 63 61 74 65 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 33 29 0a 2a 20 2d 66 icates...........(line..23).*.-f
52000 69 66 74 68 2d 69 74 65 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ifth-item:......................
52020 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 .....Other.list.operations......
52040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
52080 33 38 30 29 0a 2a 20 2d 66 69 6c 74 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 380).*.-filter:.................
520a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e ..............Sublist.selection.
520c0 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 66 69 6e 64 2d 69 6e 64 65 78 3a 20 20 20 20 ...(line...8).*.-find-index:....
520e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 64 65 78 69 6e 67 2e .......................Indexing.
52100 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 35 29 0a 2a 20 2d 66 69 6e 64 2d 69 ............(line..35).*.-find-i
52120 6e 64 69 63 65 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ndices:.........................
52140 49 6e 64 65 78 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 33 29 0a Indexing.............(line..73).
52160 2a 20 2d 66 69 6e 64 2d 6c 61 73 74 2d 69 6e 64 65 78 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.-find-last-index:.............
52180 20 20 20 20 20 20 20 20 20 49 6e 64 65 78 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .........Indexing.............(l
521a0 69 6e 65 20 20 35 34 29 0a 2a 20 2d 66 69 72 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine..54).*.-first:..............
521c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 ..................Other.list.ope
521e0 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rations.........................
52200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52220 20 20 20 20 20 20 20 28 6c 69 6e 65 20 33 30 30 29 0a 2a 20 2d 66 69 72 73 74 2d 69 74 65 6d 3a .......(line.300).*.-first-item:
52240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 ...........................Other
52260 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .list.operations................
52280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
522a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 33 32 38 29 0a 2a 20 2d 66 69 ................(line.328).*.-fi
522c0 78 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x:..............................
522e0 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 ....Other.list.operations.......
52300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 34 .........................(line.4
52340 34 35 29 0a 2a 20 2d 66 69 78 66 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45).*.-fixfn:...................
52360 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 .............Function.combinator
52380 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
523a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
523c0 20 28 6c 69 6e 65 20 32 32 34 29 0a 2a 20 2d 66 6c 61 74 74 65 6e 3a 20 20 20 20 20 20 20 20 20 .(line.224).*.-flatten:.........
523e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 .....................List.to.lis
52400 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 38 29 0a 2a 20 2d 66 6c 61 74 74 65 6e 2d t.........(line..38).*.-flatten-
52420 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 n:............................Li
52440 73 74 20 74 6f 20 6c 69 73 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 30 29 0a 2a 20 st.to.list.........(line..60).*.
52460 2d 66 6c 69 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -flip:..........................
52480 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 20 .......Function.combinators.....
524a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
524c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ...........................(line
524e0 20 20 39 35 29 0a 2a 20 2d 66 6f 75 72 74 68 2d 69 74 65 6d 3a 20 20 20 20 20 20 20 20 20 20 20 ..95).*.-fourth-item:...........
52500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 ...............Other.list.operat
52520 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ions............................
52540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52560 20 20 20 20 28 6c 69 6e 65 20 33 36 37 29 0a 2a 20 2d 66 72 65 71 75 65 6e 63 69 65 73 3a 20 20 ....(line.367).*.-frequencies:..
52580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f ........................Reductio
525a0 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 33 31 30 29 0a 2a 20 2d 67 72 61 64 65 ns...........(line.310).*.-grade
525c0 2d 64 6f 77 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -down:..........................
525e0 20 49 6e 64 65 78 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 33 29 .Indexing.............(line.103)
52600 0a 2a 20 2d 67 72 61 64 65 2d 75 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.-grade-up:...................
52620 20 20 20 20 20 20 20 20 20 20 49 6e 64 65 78 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 ..........Indexing.............(
52640 6c 69 6e 65 20 20 39 33 29 0a 2a 20 2d 67 72 6f 75 70 2d 62 79 3a 20 20 20 20 20 20 20 20 20 20 line..93).*.-group-by:..........
52660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e ...................Partitioning.
52680 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 30 35 29 0a 2a 20 2d 69 66 2d 6c 65 74 3a 20 20 20 ........(line.205).*.-if-let:...
526a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 6e 64 ............................Bind
526c0 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 34 29 0a 2a 20 2d 69 ing..............(line..34).*.-i
526e0 66 2d 6c 65 74 2a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f-let*:.........................
52700 20 20 20 20 20 42 69 6e 64 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 .....Binding..............(line.
52720 20 34 35 29 0a 2a 20 2d 69 6e 69 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .45).*.-inits:..................
52740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 ..............Reductions........
52760 20 20 20 28 6c 69 6e 65 20 32 32 32 29 0a 2a 20 2d 69 6e 73 65 72 74 2d 61 74 3a 20 20 20 20 20 ...(line.222).*.-insert-at:.....
52780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 6c .......................List.to.l
527a0 69 73 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 31 34 29 0a 2a 20 2d 69 6e 74 65 72 6c ist.........(line.114).*.-interl
527c0 65 61 76 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eave:...........................
527e0 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 Other.list.operations...........
52800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 36 29 0a .....................(line..56).
52840 2a 20 2d 69 6e 74 65 72 70 6f 73 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.-interpose:...................
52860 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a .........Other.list.operations..
52880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
528a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
528c0 69 6e 65 20 20 34 36 29 0a 2a 20 2d 69 6e 74 65 72 73 65 63 74 69 6f 6e 3a 20 20 20 20 20 20 20 ine..46).*.-intersection:.......
528e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 ..................Set.operations
52900 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 36 29 0a 2a 20 2d 69 6f 74 61 3a 20 20 20 20 20 20 .......(line..36).*.-iota:......
52920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 ...........................Other
52940 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .list.operations................
52960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 37 29 0a 2a 20 2d 69 73 ................(line..67).*.-is
529a0 2d 69 6e 66 69 78 3f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -infix?:........................
529c0 20 20 20 20 50 72 65 64 69 63 61 74 65 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 ....Predicates...........(line.1
529e0 34 30 29 0a 2a 20 2d 69 73 2d 70 72 65 66 69 78 3f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40).*.-is-prefix?:..............
52a00 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 61 74 65 73 2e 20 20 20 20 20 20 20 20 .............Predicates.........
52a20 20 20 28 6c 69 6e 65 20 31 31 36 29 0a 2a 20 2d 69 73 2d 73 75 66 66 69 78 3f 3a 20 20 20 20 20 ..(line.116).*.-is-suffix?:.....
52a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 61 74 65 73 ......................Predicates
52a60 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 32 38 29 0a 2a 20 2d 69 74 65 72 61 74 65 ...........(line.128).*.-iterate
52a80 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 :..............................U
52aa0 6e 66 6f 6c 64 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 39 29 0a 2a nfolding............(line...9).*
52ac0 20 2d 69 74 65 72 61 74 65 66 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-iteratefn:....................
52ae0 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 ........Function.combinators....
52b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e ............................(lin
52b40 65 20 32 30 31 29 0a 2a 20 2d 6a 75 78 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.201).*.-juxt:.................
52b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 ................Function.combina
52b80 74 6f 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tors............................
52ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52bc0 20 20 20 20 28 6c 69 6e 65 20 20 33 37 29 0a 2a 20 2d 6b 65 65 70 3a 20 20 20 20 20 20 20 20 20 ....(line..37).*.-keep:.........
52be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 ........................List.to.
52c00 6c 69 73 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 6c 61 6d 62 64 list.........(line...8).*.-lambd
52c20 61 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a:..............................
52c40 20 42 69 6e 64 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 34 37 29 .Binding..............(line.247)
52c60 0a 2a 20 2d 6c 61 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.-last:.......................
52c80 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e ..........Other.list.operations.
52ca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
52ce0 6c 69 6e 65 20 33 31 38 29 0a 2a 20 2d 6c 61 73 74 2d 69 74 65 6d 3a 20 20 20 20 20 20 20 20 20 line.318).*.-last-item:.........
52d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 ...................Other.list.op
52d20 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 erations........................
52d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52d60 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 33 39 33 29 0a 2a 20 2d 6c 65 74 3a 20 20 20 20 20 20 ........(line.393).*.-let:......
52d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 6e 64 ............................Bind
52da0 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 31 29 0a 2a 20 2d 6c ing..............(line..61).*.-l
52dc0 65 74 2a 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et*:............................
52de0 20 20 20 20 20 42 69 6e 64 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 .....Binding..............(line.
52e00 32 32 37 29 0a 2a 20 2d 6c 69 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 227).*.-list:...................
52e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 ..............Other.list.operati
52e40 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ons.............................
52e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
52e80 20 20 20 28 6c 69 6e 65 20 34 32 38 29 0a 2a 20 2d 6d 61 70 3a 20 20 20 20 20 20 20 20 20 20 20 ...(line.428).*.-map:...........
52ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 70 73 2e 20 20 20 20 .......................Maps.....
52ec0 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 31 30 29 0a 2a 20 2d 6d 61 70 2d 66 69 ............(line..10).*.-map-fi
52ee0 72 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rst:............................
52f00 4d 61 70 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 33 38 29 0a Maps.................(line..38).
52f20 2a 20 2d 6d 61 70 2d 69 6e 64 65 78 65 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.-map-indexed:.................
52f40 20 20 20 20 20 20 20 20 20 4d 61 70 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c .........Maps.................(l
52f60 69 6e 65 20 20 36 38 29 0a 2a 20 2d 6d 61 70 2d 6c 61 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 ine..68).*.-map-last:...........
52f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 70 73 2e 20 20 20 20 20 20 20 20 20 ..................Maps..........
52fa0 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 33 29 0a 2a 20 2d 6d 61 70 2d 77 68 65 6e 3a 20 20 .......(line..53).*.-map-when:..
52fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 70 73 2e ...........................Maps.
52fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 32 29 0a 2a 20 2d 6d 61 ................(line..22).*.-ma
53000 70 63 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pcat:...........................
53020 20 20 20 20 4d 61 70 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 ....Maps.................(line.1
53040 34 30 29 0a 2a 20 2d 6d 61 78 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 40).*.-max:.....................
53060 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 .............Reductions.........
53080 20 20 28 6c 69 6e 65 20 32 38 36 29 0a 2a 20 2d 6d 61 78 2d 62 79 3a 20 20 20 20 20 20 20 20 20 ..(line.286).*.-max-by:.........
530a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 ......................Reductions
530c0 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 39 36 29 0a 2a 20 2d 6d 69 6e 3a 20 20 20 ...........(line.296).*.-min:...
530e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 ...............................R
53100 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 36 32 29 0a 2a eductions...........(line.262).*
53120 20 2d 6d 69 6e 2d 62 79 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-min-by:.......................
53140 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 ........Reductions...........(li
53160 6e 65 20 32 37 32 29 0a 2a 20 2d 6e 6f 6e 2d 6e 69 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ne.272).*.-non-nil:.............
53180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 .................Sublist.selecti
531a0 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 20 39 35 29 0a 2a 20 2d 6e 6f 6e 65 3f 3a 20 20 20 20 20 20 on....(line..95).*.-none?:......
531c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 ..........................Predic
531e0 61 74 65 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 33 29 0a 2a 20 2d 6e 6f 74 ates...........(line..73).*.-not
53200 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :...............................
53220 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 20 20 20 20 20 ...Function.combinators.........
53240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
53260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 35 33 .......................(line.153
53280 29 0a 2a 20 2d 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.-on:........................
532a0 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e ...........Function.combinators.
532c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
532e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
53300 6c 69 6e 65 20 20 37 35 29 0a 2a 20 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 3a 20 20 20 20 20 20 20 20 line..75).*.-only-some?:........
53320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 61 74 65 73 2e 20 20 ...................Predicates...
53340 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 35 29 0a 2a 20 2d 6f 72 66 6e 3a 20 20 20 20 20 ........(line..85).*.-orfn:.....
53360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 ............................Func
53380 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion.combinators................
533a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
533c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 36 37 29 0a 2a 20 2d 70 61 ................(line.167).*.-pa
533e0 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d:..............................
53400 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 ....Other.list.operations.......
53420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
53440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 .........................(line.2
53460 34 31 29 0a 2a 20 2d 70 61 72 74 69 61 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41).*.-partial:.................
53480 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 .............Function.combinator
534a0 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
534c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
534e0 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 70 61 72 74 69 74 69 6f 6e 3a 20 20 20 20 20 20 20 .(line...8).*.-partition:.......
53500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e .....................Partitionin
53520 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 39 30 29 0a 2a 20 2d 70 61 72 74 69 74 69 6f g.........(line..90).*.-partitio
53540 6e 2d 61 66 74 65 72 2d 69 74 65 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 n-after-item:.................Pa
53560 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 39 35 29 0a 2a 20 rtitioning.........(line.195).*.
53580 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 3a 20 20 20 20 20 20 20 20 20 20 -partition-after-pred:..........
535a0 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e .......Partitioning.........(lin
535c0 65 20 31 36 32 29 0a 2a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 3a 20 20 20 20 20 20 20 20 e.162).*.-partition-all:........
535e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 ................Partitioning....
53600 20 20 20 20 20 28 6c 69 6e 65 20 31 30 32 29 0a 2a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c .....(line.102).*.-partition-all
53620 2d 69 6e 2d 73 74 65 70 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 -in-steps:...............Partiti
53640 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 32 36 29 0a 2a 20 2d 70 61 72 74 oning.........(line.126).*.-part
53660 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 69 74 65 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ition-before-item:..............
53680 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 38 35 ..Partitioning.........(line.185
536a0 29 0a 2a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 70 72 65 64 3a 20 20 20 20 20 ).*.-partition-before-pred:.....
536c0 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 ...........Partitioning.........
536e0 28 6c 69 6e 65 20 31 37 34 29 0a 2a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 3a 20 20 20 20 20 (line.174).*.-partition-by:.....
53700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 ....................Partitioning
53720 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 33 38 29 0a 2a 20 2d 70 61 72 74 69 74 69 6f 6e .........(line.138).*.-partition
53740 2d 62 79 2d 68 65 61 64 65 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 -by-header:..................Par
53760 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 34 39 29 0a 2a 20 2d titioning.........(line.149).*.-
53780 70 61 72 74 69 74 69 6f 6e 2d 69 6e 2d 73 74 65 70 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 partition-in-steps:.............
537a0 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ......Partitioning.........(line
537c0 20 31 31 33 29 0a 2a 20 2d 70 65 72 6d 75 74 61 74 69 6f 6e 73 3a 20 20 20 20 20 20 20 20 20 20 .113).*.-permutations:..........
537e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 ...............Set.operations...
53800 20 20 20 20 28 6c 69 6e 65 20 20 36 30 29 0a 2a 20 2d 70 6f 77 65 72 73 65 74 3a 20 20 20 20 20 ....(line..60).*.-powerset:.....
53820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 20 6f 70 65 72 ........................Set.oper
53840 61 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 30 29 0a 2a 20 2d 70 72 6f 64 66 ations.......(line..50).*.-prodf
53860 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n:..............................
53880 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 20 20 20 20 20 20 20 .Function.combinators...........
538a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
538c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 35 38 29 0a .....................(line.258).
538e0 2a 20 2d 70 72 6f 64 75 63 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.-product:.....................
53900 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c .........Reductions...........(l
53920 69 6e 65 20 32 30 31 29 0a 2a 20 2d 72 65 64 75 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ine.201).*.-reduce:.............
53940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 ..................Reductions....
53960 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 35 33 29 0a 2a 20 2d 72 65 64 75 63 65 2d 66 72 6f 6d .......(line..53).*.-reduce-from
53980 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 :..........................Reduc
539a0 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 72 65 tions...........(line...8).*.-re
539c0 64 75 63 65 2d 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 duce-r:.........................
539e0 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Reductions...........(line..
53a00 37 32 29 0a 2a 20 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 3a 20 20 20 20 20 20 20 20 20 20 20 72).*.-reduce-r-from:...........
53a20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 .............Reductions.........
53a40 20 20 28 6c 69 6e 65 20 20 32 36 29 0a 2a 20 2d 72 65 64 75 63 74 69 6f 6e 73 3a 20 20 20 20 20 ..(line..26).*.-reductions:.....
53a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 ......................Reductions
53a80 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 33 36 29 0a 2a 20 2d 72 65 64 75 63 74 69 ...........(line.136).*.-reducti
53aa0 6f 6e 73 2d 66 72 6f 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 ons-from:......................R
53ac0 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 30 29 0a 2a eductions...........(line.100).*
53ae0 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-reductions-r:.................
53b00 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 ........Reductions...........(li
53b20 6e 65 20 31 35 34 29 0a 2a 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 3a 20 20 20 ne.154).*.-reductions-r-from:...
53b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 .................Reductions.....
53b60 20 20 20 20 20 20 28 6c 69 6e 65 20 31 31 38 29 0a 2a 20 2d 72 65 6d 6f 76 65 3a 20 20 20 20 20 ......(line.118).*.-remove:.....
53b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 ..........................Sublis
53ba0 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 20 32 36 29 0a 2a 20 2d 72 65 6d t.selection....(line..26).*.-rem
53bc0 6f 76 65 2d 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ove-at:.........................
53be0 20 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 35 ...List.to.list.........(line.15
53c00 31 29 0a 2a 20 2d 72 65 6d 6f 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 3a 20 20 20 20 20 20 20 20 1).*.-remove-at-indices:........
53c20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 2e 20 20 20 20 20 20 20 ............List.to.list........
53c40 20 28 6c 69 6e 65 20 31 37 30 29 0a 2a 20 2d 72 65 6d 6f 76 65 2d 66 69 72 73 74 3a 20 20 20 20 .(line.170).*.-remove-first:....
53c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c .....................Sublist.sel
53c80 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 20 34 34 29 0a 2a 20 2d 72 65 6d 6f 76 65 2d 69 ection....(line..44).*.-remove-i
53ca0 74 65 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 tem:..........................Su
53cc0 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 20 38 34 29 0a 2a 20 blist.selection....(line..84).*.
53ce0 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -remove-last:...................
53d00 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e .......Sublist.selection....(lin
53d20 65 20 20 36 35 29 0a 2a 20 2d 72 65 70 65 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e..65).*.-repeat:...............
53d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 66 6f 6c 64 69 6e 67 2e 20 20 20 20 20 20 ................Unfolding.......
53d60 20 20 20 20 20 28 6c 69 6e 65 20 20 34 34 29 0a 2a 20 2d 72 65 70 6c 61 63 65 3a 20 20 20 20 20 .....(line..44).*.-replace:.....
53d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f .........................List.to
53da0 20 6c 69 73 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 32 29 0a 2a 20 2d 72 65 70 6c .list.........(line..72).*.-repl
53dc0 61 63 65 2d 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ace-at:.........................
53de0 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 32 35 ..List.to.list.........(line.125
53e00 29 0a 2a 20 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.-replace-first:.............
53e20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 2e 20 20 20 20 20 20 20 20 ...........List.to.list.........
53e40 28 6c 69 6e 65 20 20 38 36 29 0a 2a 20 2d 72 65 70 6c 61 63 65 2d 6c 61 73 74 3a 20 20 20 20 20 (line..86).*.-replace-last:.....
53e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 ....................List.to.list
53e80 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 30 29 0a 2a 20 2d 72 6f 74 61 74 65 3a 20 20 .........(line.100).*.-rotate:..
53ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 .............................Oth
53ec0 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 er.list.operations..............
53ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
53f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d ..................(line...8).*.-
53f20 72 6f 74 61 74 65 2d 61 72 67 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rotate-args:....................
53f40 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f 72 73 2e 0a 20 20 20 20 ......Function.combinators......
53f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
53f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
53fa0 31 31 32 29 0a 2a 20 2d 72 70 61 72 74 69 61 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 112).*.-rpartial:...............
53fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 61 74 6f ..............Function.combinato
53fe0 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rs..............................
54000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54020 20 20 28 6c 69 6e 65 20 20 32 32 29 0a 2a 20 2d 72 75 6e 6e 69 6e 67 2d 70 72 6f 64 75 63 74 3a ..(line..22).*.-running-product:
54040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e 73 ......................Reductions
54060 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 31 31 29 0a 2a 20 2d 72 75 6e 6e 69 6e 67 ...........(line.211).*.-running
54080 2d 73 75 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 -sum:..........................R
540a0 65 64 75 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 39 30 29 0a 2a eductions...........(line.190).*
540c0 20 2d 73 61 6d 65 2d 69 74 65 6d 73 3f 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-same-items?:..................
540e0 20 20 20 20 20 20 20 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 20 28 6c 69 ........Set.operations.......(li
54100 6e 65 20 20 38 38 29 0a 2a 20 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 3a 20 20 20 20 20 20 20 20 20 ne..88).*.-second-item:.........
54120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 .................Other.list.oper
54140 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ations..........................
54160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54180 20 20 20 20 20 20 28 6c 69 6e 65 20 33 34 31 29 0a 2a 20 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e ......(line.341).*.-select-by-in
541a0 64 69 63 65 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 dices:....................Sublis
541c0 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 32 31 31 29 0a 2a 20 2d 73 65 6c t.selection....(line.211).*.-sel
541e0 65 63 74 2d 63 6f 6c 75 6d 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ect-column:.....................
54200 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 32 34 ...Sublist.selection....(line.24
54220 31 29 0a 2a 20 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 73 3a 20 20 20 20 20 20 20 20 20 20 20 1).*.-select-columns:...........
54240 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 ............Sublist.selection...
54260 20 28 6c 69 6e 65 20 32 32 32 29 0a 2a 20 2d 73 65 70 61 72 61 74 65 3a 20 20 20 20 20 20 20 20 .(line.222).*.-separate:........
54280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e .....................Partitionin
542a0 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 37 35 29 0a 2a 20 2d 73 65 74 71 3a 20 20 20 g.........(line..75).*.-setq:...
542c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 ..............................Bi
542e0 6e 64 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 37 30 29 0a 2a 20 nding..............(line.270).*.
54300 2d 73 6c 69 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -slice:.........................
54320 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e .......Sublist.selection....(lin
54340 65 20 31 30 35 29 0a 2a 20 2d 73 6e 6f 63 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.105).*.-snoc:.................
54360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 ................Other.list.opera
54380 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tions...........................
543a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
543c0 20 20 20 20 20 28 6c 69 6e 65 20 20 33 32 29 0a 2a 20 2d 73 6f 6d 65 3a 20 20 20 20 20 20 20 20 .....(line..32).*.-some:........
543e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 64 69 63 61 .........................Predica
54400 74 65 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 73 6f 6d 65 tes...........(line...8).*.-some
54420 2d 2d 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -->:............................
54440 20 20 54 68 72 65 61 64 69 6e 67 20 6d 61 63 72 6f 73 2e 20 20 20 20 28 6c 69 6e 65 20 20 38 36 ..Threading.macros.....(line..86
54460 29 0a 2a 20 2d 73 6f 6d 65 2d 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.-some->:....................
54480 20 20 20 20 20 20 20 20 20 20 20 54 68 72 65 61 64 69 6e 67 20 6d 61 63 72 6f 73 2e 20 20 20 20 ...........Threading.macros.....
544a0 28 6c 69 6e 65 20 20 36 32 29 0a 2a 20 2d 73 6f 6d 65 2d 3e 3e 3a 20 20 20 20 20 20 20 20 20 20 (line..62).*.-some->>:..........
544c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 72 65 61 64 69 6e 67 20 6d 61 ....................Threading.ma
544e0 63 72 6f 73 2e 20 20 20 20 28 6c 69 6e 65 20 20 37 34 29 0a 2a 20 2d 73 6f 72 74 3a 20 20 20 20 cros.....(line..74).*.-sort:....
54500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 .............................Oth
54520 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 er.list.operations..............
54540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 34 31 35 29 0a 2a 20 2d ..................(line.415).*.-
54580 73 70 6c 69 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 splice:.........................
545a0 20 20 20 20 20 20 4d 61 70 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ......Maps.................(line
545c0 20 31 30 32 29 0a 2a 20 2d 73 70 6c 69 63 65 2d 6c 69 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 .102).*.-splice-list:...........
545e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 70 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 ...............Maps.............
54600 20 20 20 20 28 6c 69 6e 65 20 31 32 37 29 0a 2a 20 2d 73 70 6c 69 74 2d 61 74 3a 20 20 20 20 20 ....(line.127).*.-split-at:.....
54620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f ........................Partitio
54640 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 73 70 6c 69 74 ning.........(line...8).*.-split
54660 2d 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -on:............................
54680 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 34 30 29 .Partitioning.........(line..40)
546a0 0a 2a 20 2d 73 70 6c 69 74 2d 77 68 65 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.-split-when:.................
546c0 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e 20 20 20 20 20 20 20 20 28 ..........Partitioning.........(
546e0 6c 69 6e 65 20 20 35 38 29 0a 2a 20 2d 73 70 6c 69 74 2d 77 69 74 68 3a 20 20 20 20 20 20 20 20 line..58).*.-split-with:........
54700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 2e ...................Partitioning.
54720 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 33 29 0a 2a 20 2d 73 75 6d 3a 20 20 20 20 20 20 ........(line..23).*.-sum:......
54740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 ............................Redu
54760 63 74 69 6f 6e 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 38 30 29 0a 2a 20 2d 74 ctions...........(line.180).*.-t
54780 61 62 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 able:...........................
547a0 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 .....Other.list.operations......
547c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
547e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
54800 32 35 36 29 0a 2a 20 2d 74 61 62 6c 65 2d 66 6c 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 256).*.-table-flat:.............
54820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 ..............Other.list.operati
54840 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ons.............................
54860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54880 20 20 20 28 6c 69 6e 65 20 32 37 35 29 0a 2a 20 2d 74 61 69 6c 73 3a 20 20 20 20 20 20 20 20 20 ...(line.275).*.-tails:.........
548a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 64 75 63 74 69 6f 6e .......................Reduction
548c0 73 2e 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 33 32 29 0a 2a 20 2d 74 61 6b 65 3a 20 s...........(line.232).*.-take:.
548e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54900 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 31 32 31 29 0a Sublist.selection....(line.121).
54920 2a 20 2d 74 61 6b 65 2d 6c 61 73 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.-take-last:...................
54940 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 69 6f 6e 2e 20 20 20 28 6c .........Sublist.selection....(l
54960 69 6e 65 20 31 33 35 29 0a 2a 20 2d 74 61 6b 65 2d 77 68 69 6c 65 3a 20 20 20 20 20 20 20 20 20 ine.135).*.-take-while:.........
54980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 6c 69 73 74 20 73 65 6c 65 63 74 ..................Sublist.select
549a0 69 6f 6e 2e 20 20 20 28 6c 69 6e 65 20 31 37 37 29 0a 2a 20 2d 74 68 69 72 64 2d 69 74 65 6d 3a ion....(line.177).*.-third-item:
549c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 ...........................Other
549e0 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .list.operations................
54a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 33 35 34 29 0a 2a 20 2d 74 72 ................(line.354).*.-tr
54a40 65 65 2d 6d 61 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ee-map:.........................
54a60 20 20 20 20 54 72 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 28 6c 69 6e 65 20 20 ....Tree.operations......(line..
54a80 32 38 29 0a 2a 20 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 3a 20 20 20 20 20 20 20 20 20 20 28).*.-tree-map-nodes:..........
54aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 .............Tree.operations....
54ac0 20 20 28 6c 69 6e 65 20 20 33 39 29 0a 2a 20 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 3a 20 ..(line..39).*.-tree-mapreduce:.
54ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 65 65 20 6f 70 65 72 61 ......................Tree.opera
54b00 74 69 6f 6e 73 2e 20 20 20 20 20 28 6c 69 6e 65 20 20 38 35 29 0a 2a 20 2d 74 72 65 65 2d 6d 61 tions......(line..85).*.-tree-ma
54b20 70 72 65 64 75 63 65 2d 66 72 6f 6d 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 preduce-from:..................T
54b40 72 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 28 6c 69 6e 65 20 31 30 34 29 0a 2a ree.operations......(line.104).*
54b60 20 2d 74 72 65 65 2d 72 65 64 75 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .-tree-reduce:..................
54b80 20 20 20 20 20 20 20 20 54 72 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 28 6c 69 ........Tree.operations......(li
54ba0 6e 65 20 20 35 33 29 0a 2a 20 2d 74 72 65 65 2d 72 65 64 75 63 65 2d 66 72 6f 6d 3a 20 20 20 20 ne..53).*.-tree-reduce-from:....
54bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 65 65 20 6f 70 65 72 61 74 69 6f 6e 73 .................Tree.operations
54be0 2e 20 20 20 20 20 28 6c 69 6e 65 20 20 37 30 29 0a 2a 20 2d 74 72 65 65 2d 73 65 71 3a 20 20 20 ......(line..70).*.-tree-seq:...
54c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 65 65 20 6f ..........................Tree.o
54c20 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 75 6e 66 perations......(line...8).*.-unf
54c40 6f 6c 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 old:............................
54c60 20 20 20 55 6e 66 6f 6c 64 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 ...Unfolding............(line..2
54c80 35 29 0a 2a 20 2d 75 6e 69 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5).*.-union:....................
54ca0 20 20 20 20 20 20 20 20 20 20 20 20 53 65 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 20 20 20 20 20 ............Set.operations......
54cc0 20 28 6c 69 6e 65 20 20 20 38 29 0a 2a 20 2d 75 6e 7a 69 70 3a 20 20 20 20 20 20 20 20 20 20 20 .(line...8).*.-unzip:...........
54ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 .....................Other.list.
54d00 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 operations......................
54d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54d40 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 31 35 29 0a 2a 20 2d 75 6e 7a 69 70 2d 6c 69 ..........(line.215).*.-unzip-li
54d60 73 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 sts:..........................Ot
54d80 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 her.list.operations.............
54da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 39 36 29 0a 2a 20 ...................(line.196).*.
54de0 2d 75 70 64 61 74 65 2d 61 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -update-at:.....................
54e00 20 20 20 20 20 20 20 4c 69 73 74 20 74 6f 20 6c 69 73 74 2e 20 20 20 20 20 20 20 20 28 6c 69 6e .......List.to.list.........(lin
54e20 65 20 31 33 37 29 0a 2a 20 2d 77 68 65 6e 2d 6c 65 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 e.137).*.-when-let:.............
54e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 6e 64 69 6e 67 2e 20 20 20 20 20 20 20 20 ................Binding.........
54e60 20 20 20 20 20 28 6c 69 6e 65 20 20 20 39 29 0a 2a 20 2d 77 68 65 6e 2d 6c 65 74 2a 3a 20 20 20 .....(line...9).*.-when-let*:...
54e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 69 6e 64 69 6e 67 .........................Binding
54ea0 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 32 31 29 0a 2a 20 2d 7a 69 70 3a ..............(line..21).*.-zip:
54ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54ee0 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 ..Other.list.operations.........
54f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 35 30 .......................(line.150
54f40 29 0a 2a 20 2d 7a 69 70 2d 66 69 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.-zip-fill:..................
54f60 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 ...........Other.list.operations
54f80 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
54fc0 28 6c 69 6e 65 20 31 37 36 29 0a 2a 20 2d 7a 69 70 2d 6c 69 73 74 73 3a 20 20 20 20 20 20 20 20 (line.176).*.-zip-lists:........
54fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f ....................Other.list.o
55000 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 perations.......................
55020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
55040 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 31 34 29 0a 2a 20 2d 7a 69 70 2d 6c 69 73 74 73 .........(line.114).*.-zip-lists
55060 2d 66 69 6c 6c 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 -fill:.......................Oth
55080 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 er.list.operations..............
550a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
550c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 33 35 29 0a 2a 20 2d ..................(line.135).*.-
550e0 7a 69 70 2d 70 61 69 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 zip-pair:.......................
55100 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 69 6f 6e 73 2e 0a 20 20 20 ......Other.list.operations.....
55120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
55140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ...........................(line
55160 20 20 39 38 29 0a 2a 20 2d 7a 69 70 2d 77 69 74 68 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..98).*.-zip-with:..............
55180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 ...............Other.list.operat
551a0 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ions............................
551c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
551e0 20 20 20 20 28 6c 69 6e 65 20 20 38 30 29 0a 2a 20 64 61 73 68 2d 66 6f 6e 74 69 66 79 2d 6d 6f ....(line..80).*.dash-fontify-mo
55200 64 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6f 6e 74 69 66 69 63 de:.....................Fontific
55220 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 ation.of.special.variables......
55240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
55260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
55280 20 20 36 29 0a 2a 20 64 61 73 68 2d 72 65 67 69 73 74 65 72 2d 69 6e 66 6f 2d 6c 6f 6f 6b 75 70 ..6).*.dash-register-info-lookup
552a0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 66 6f 20 73 79 6d 62 6f 6c 20 6c 6f 6f 6b 75 70 :.............Info.symbol.lookup
552c0 2e 20 20 28 6c 69 6e 65 20 20 20 36 29 0a 2a 20 67 6c 6f 62 61 6c 2d 64 61 73 68 2d 66 6f 6e 74 ...(line...6).*.global-dash-font
552e0 69 66 79 2d 6d 6f 64 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6f 6e 74 69 66 69 63 61 ify-mode:..............Fontifica
55300 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 2e 0a 20 20 20 20 20 tion.of.special.variables.......
55320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
55340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 .........................(line..
55360 31 32 29 0a 0a 0a 1f 0a 54 61 67 20 54 61 62 6c 65 3a 0a 4e 6f 64 65 3a 20 54 6f 70 7f 37 34 32 12).....Tag.Table:.Node:.Top.742
55380 0a 4e 6f 64 65 3a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 7f 32 33 39 37 0a 4e 6f 64 65 3a 20 55 .Node:.Installation.2397.Node:.U
553a0 73 69 6e 67 20 69 6e 20 61 20 70 61 63 6b 61 67 65 7f 33 31 35 39 0a 4e 6f 64 65 3a 20 46 6f 6e sing.in.a.package.3159.Node:.Fon
553c0 74 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 61 6c 20 76 61 72 69 61 62 6c 65 73 7f tification.of.special.variables.
553e0 33 35 30 34 0a 4e 6f 64 65 3a 20 49 6e 66 6f 20 73 79 6d 62 6f 6c 20 6c 6f 6f 6b 75 70 7f 34 32 3504.Node:.Info.symbol.lookup.42
55400 39 34 0a 4e 6f 64 65 3a 20 46 75 6e 63 74 69 6f 6e 73 7f 34 38 37 37 0a 4e 6f 64 65 3a 20 4d 61 94.Node:.Functions.4877.Node:.Ma
55420 70 73 7f 36 33 36 31 0a 52 65 66 3a 20 2d 6d 61 70 7f 36 36 35 38 0a 52 65 66 3a 20 2d 6d 61 70 ps.6361.Ref:.-map.6658.Ref:.-map
55440 2d 77 68 65 6e 7f 37 30 33 31 0a 52 65 66 3a 20 2d 6d 61 70 2d 66 69 72 73 74 7f 37 36 30 35 0a -when.7031.Ref:.-map-first.7605.
55460 52 65 66 3a 20 2d 6d 61 70 2d 6c 61 73 74 7f 38 32 30 30 0a 52 65 66 3a 20 2d 6d 61 70 2d 69 6e Ref:.-map-last.8200.Ref:.-map-in
55480 64 65 78 65 64 7f 38 37 39 30 0a 52 65 66 3a 20 2d 61 6e 6e 6f 74 61 74 65 7f 39 34 37 36 0a 52 dexed.8790.Ref:.-annotate.9476.R
554a0 65 66 3a 20 2d 73 70 6c 69 63 65 7f 31 30 30 38 30 0a 52 65 66 3a 20 2d 73 70 6c 69 63 65 2d 6c ef:.-splice.10080.Ref:.-splice-l
554c0 69 73 74 7f 31 31 31 35 35 0a 52 65 66 3a 20 2d 6d 61 70 63 61 74 7f 31 31 36 31 34 0a 52 65 66 ist.11155.Ref:.-mapcat.11614.Ref
554e0 3a 20 2d 63 6f 70 79 7f 31 31 39 38 37 0a 4e 6f 64 65 3a 20 53 75 62 6c 69 73 74 20 73 65 6c 65 :.-copy.11987.Node:.Sublist.sele
55500 63 74 69 6f 6e 7f 31 32 31 37 35 0a 52 65 66 3a 20 2d 66 69 6c 74 65 72 7f 31 32 33 36 38 0a 52 ction.12175.Ref:.-filter.12368.R
55520 65 66 3a 20 2d 72 65 6d 6f 76 65 7f 31 32 39 32 31 0a 52 65 66 3a 20 2d 72 65 6d 6f 76 65 2d 66 ef:.-remove.12921.Ref:.-remove-f
55540 69 72 73 74 7f 31 33 34 37 30 0a 52 65 66 3a 20 2d 72 65 6d 6f 76 65 2d 6c 61 73 74 7f 31 34 33 irst.13470.Ref:.-remove-last.143
55560 31 38 0a 52 65 66 3a 20 2d 72 65 6d 6f 76 65 2d 69 74 65 6d 7f 31 35 30 34 38 0a 52 65 66 3a 20 18.Ref:.-remove-item.15048.Ref:.
55580 2d 6e 6f 6e 2d 6e 69 6c 7f 31 35 34 34 38 0a 52 65 66 3a 20 2d 73 6c 69 63 65 7f 31 35 37 33 30 -non-nil.15448.Ref:.-slice.15730
555a0 0a 52 65 66 3a 20 2d 74 61 6b 65 7f 31 36 32 35 39 0a 52 65 66 3a 20 2d 74 61 6b 65 2d 6c 61 73 .Ref:.-take.16259.Ref:.-take-las
555c0 74 7f 31 36 36 37 37 0a 52 65 66 3a 20 2d 64 72 6f 70 7f 31 37 31 31 34 0a 52 65 66 3a 20 2d 64 t.16677.Ref:.-drop.17114.Ref:.-d
555e0 72 6f 70 2d 6c 61 73 74 7f 31 37 35 36 31 0a 52 65 66 3a 20 2d 74 61 6b 65 2d 77 68 69 6c 65 7f rop-last.17561.Ref:.-take-while.
55600 31 37 39 39 33 0a 52 65 66 3a 20 2d 64 72 6f 70 2d 77 68 69 6c 65 7f 31 38 36 32 30 0a 52 65 66 17993.Ref:.-drop-while.18620.Ref
55620 3a 20 2d 73 65 6c 65 63 74 2d 62 79 2d 69 6e 64 69 63 65 73 7f 31 39 32 35 33 0a 52 65 66 3a 20 :.-select-by-indices.19253.Ref:.
55640 2d 73 65 6c 65 63 74 2d 63 6f 6c 75 6d 6e 73 7f 31 39 37 36 34 0a 52 65 66 3a 20 2d 73 65 6c 65 -select-columns.19764.Ref:.-sele
55660 63 74 2d 63 6f 6c 75 6d 6e 7f 32 30 34 36 37 0a 4e 6f 64 65 3a 20 4c 69 73 74 20 74 6f 20 6c 69 ct-column.20467.Node:.List.to.li
55680 73 74 7f 32 30 39 33 30 0a 52 65 66 3a 20 2d 6b 65 65 70 7f 32 31 31 32 32 0a 52 65 66 3a 20 2d st.20930.Ref:.-keep.21122.Ref:.-
556a0 63 6f 6e 63 61 74 7f 32 31 36 39 38 0a 52 65 66 3a 20 2d 66 6c 61 74 74 65 6e 7f 32 32 32 32 36 concat.21698.Ref:.-flatten.22226
556c0 0a 52 65 66 3a 20 2d 66 6c 61 74 74 65 6e 2d 6e 7f 32 32 39 38 38 0a 52 65 66 3a 20 2d 72 65 70 .Ref:.-flatten-n.22988.Ref:.-rep
556e0 6c 61 63 65 7f 32 33 33 37 32 0a 52 65 66 3a 20 2d 72 65 70 6c 61 63 65 2d 66 69 72 73 74 7f 32 lace.23372.Ref:.-replace-first.2
55700 33 38 33 33 0a 52 65 66 3a 20 2d 72 65 70 6c 61 63 65 2d 6c 61 73 74 7f 32 34 33 32 38 0a 52 65 3833.Ref:.-replace-last.24328.Re
55720 66 3a 20 2d 69 6e 73 65 72 74 2d 61 74 7f 32 34 38 31 36 0a 52 65 66 3a 20 2d 72 65 70 6c 61 63 f:.-insert-at.24816.Ref:.-replac
55740 65 2d 61 74 7f 32 35 31 34 31 0a 52 65 66 3a 20 2d 75 70 64 61 74 65 2d 61 74 7f 32 35 35 32 38 e-at.25141.Ref:.-update-at.25528
55760 0a 52 65 66 3a 20 2d 72 65 6d 6f 76 65 2d 61 74 7f 32 36 30 36 39 0a 52 65 66 3a 20 2d 72 65 6d .Ref:.-remove-at.26069.Ref:.-rem
55780 6f 76 65 2d 61 74 2d 69 6e 64 69 63 65 73 7f 32 36 36 39 36 0a 4e 6f 64 65 3a 20 52 65 64 75 63 ove-at-indices.26696.Node:.Reduc
557a0 74 69 6f 6e 73 7f 32 37 33 38 36 0a 52 65 66 3a 20 2d 72 65 64 75 63 65 2d 66 72 6f 6d 7f 32 37 tions.27386.Ref:.-reduce-from.27
557c0 35 38 32 0a 52 65 66 3a 20 2d 72 65 64 75 63 65 2d 72 2d 66 72 6f 6d 7f 32 38 33 30 36 0a 52 65 582.Ref:.-reduce-r-from.28306.Re
557e0 66 3a 20 2d 72 65 64 75 63 65 7f 32 39 35 36 39 0a 52 65 66 3a 20 2d 72 65 64 75 63 65 2d 72 7f f:.-reduce.29569.Ref:.-reduce-r.
55800 33 30 33 32 30 0a 52 65 66 3a 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 66 72 6f 6d 7f 33 31 35 39 30320.Ref:.-reductions-from.3159
55820 38 0a 52 65 66 3a 20 2d 72 65 64 75 63 74 69 6f 6e 73 2d 72 2d 66 72 6f 6d 7f 33 32 34 30 34 0a 8.Ref:.-reductions-r-from.32404.
55840 52 65 66 3a 20 2d 72 65 64 75 63 74 69 6f 6e 73 7f 33 33 32 33 34 0a 52 65 66 3a 20 2d 72 65 64 Ref:.-reductions.33234.Ref:.-red
55860 75 63 74 69 6f 6e 73 2d 72 7f 33 33 39 34 35 0a 52 65 66 3a 20 2d 63 6f 75 6e 74 7f 33 34 36 39 uctions-r.33945.Ref:.-count.3469
55880 30 0a 52 65 66 3a 20 2d 73 75 6d 7f 33 34 39 32 30 0a 52 65 66 3a 20 2d 72 75 6e 6e 69 6e 67 2d 0.Ref:.-sum.34920.Ref:.-running-
558a0 73 75 6d 7f 33 35 31 30 38 0a 52 65 66 3a 20 2d 70 72 6f 64 75 63 74 7f 33 35 34 32 39 0a 52 65 sum.35108.Ref:.-product.35429.Re
558c0 66 3a 20 2d 72 75 6e 6e 69 6e 67 2d 70 72 6f 64 75 63 74 7f 33 35 36 33 37 0a 52 65 66 3a 20 2d f:.-running-product.35637.Ref:.-
558e0 69 6e 69 74 73 7f 33 35 39 37 38 0a 52 65 66 3a 20 2d 74 61 69 6c 73 7f 33 36 32 32 33 0a 52 65 inits.35978.Ref:.-tails.36223.Re
55900 66 3a 20 2d 63 6f 6d 6d 6f 6e 2d 70 72 65 66 69 78 7f 33 36 34 36 38 0a 52 65 66 3a 20 2d 63 6f f:.-common-prefix.36468.Ref:.-co
55920 6d 6d 6f 6e 2d 73 75 66 66 69 78 7f 33 36 37 36 32 0a 52 65 66 3a 20 2d 6d 69 6e 7f 33 37 30 35 mmon-suffix.36762.Ref:.-min.3705
55940 36 0a 52 65 66 3a 20 2d 6d 69 6e 2d 62 79 7f 33 37 32 38 32 0a 52 65 66 3a 20 2d 6d 61 78 7f 33 6.Ref:.-min-by.37282.Ref:.-max.3
55960 37 38 30 33 0a 52 65 66 3a 20 2d 6d 61 78 2d 62 79 7f 33 38 30 32 38 0a 52 65 66 3a 20 2d 66 72 7803.Ref:.-max-by.38028.Ref:.-fr
55980 65 71 75 65 6e 63 69 65 73 7f 33 38 35 35 34 0a 4e 6f 64 65 3a 20 55 6e 66 6f 6c 64 69 6e 67 7f equencies.38554.Node:.Unfolding.
559a0 33 39 31 36 39 0a 52 65 66 3a 20 2d 69 74 65 72 61 74 65 7f 33 39 34 31 30 0a 52 65 66 3a 20 2d 39169.Ref:.-iterate.39410.Ref:.-
559c0 75 6e 66 6f 6c 64 7f 33 39 38 35 37 0a 52 65 66 3a 20 2d 72 65 70 65 61 74 7f 34 30 36 36 32 0a unfold.39857.Ref:.-repeat.40662.
559e0 52 65 66 3a 20 2d 63 79 63 6c 65 7f 34 30 39 34 36 0a 4e 6f 64 65 3a 20 50 72 65 64 69 63 61 74 Ref:.-cycle.40946.Node:.Predicat
55a00 65 73 7f 34 31 33 34 33 0a 52 65 66 3a 20 2d 73 6f 6d 65 7f 34 31 35 32 30 0a 52 65 66 3a 20 2d es.41343.Ref:.-some.41520.Ref:.-
55a20 65 76 65 72 79 7f 34 31 39 34 39 0a 52 65 66 3a 20 2d 61 6e 79 3f 7f 34 32 36 36 33 0a 52 65 66 every.41949.Ref:.-any?.42663.Ref
55a40 3a 20 2d 61 6c 6c 3f 7f 34 33 30 31 32 0a 52 65 66 3a 20 2d 6e 6f 6e 65 3f 7f 34 33 37 35 34 0a :.-all?.43012.Ref:.-none?.43754.
55a60 52 65 66 3a 20 2d 6f 6e 6c 79 2d 73 6f 6d 65 3f 7f 34 34 30 37 34 0a 52 65 66 3a 20 2d 63 6f 6e Ref:.-only-some?.44074.Ref:.-con
55a80 74 61 69 6e 73 3f 7f 34 34 36 31 39 0a 52 65 66 3a 20 2d 69 73 2d 70 72 65 66 69 78 3f 7f 34 35 tains?.44619.Ref:.-is-prefix?.45
55aa0 31 32 35 0a 52 65 66 3a 20 2d 69 73 2d 73 75 66 66 69 78 3f 7f 34 35 34 35 37 0a 52 65 66 3a 20 125.Ref:.-is-suffix?.45457.Ref:.
55ac0 2d 69 73 2d 69 6e 66 69 78 3f 7f 34 35 37 38 39 0a 52 65 66 3a 20 2d 63 6f 6e 73 2d 70 61 69 72 -is-infix?.45789.Ref:.-cons-pair
55ae0 3f 7f 34 36 31 34 39 0a 4e 6f 64 65 3a 20 50 61 72 74 69 74 69 6f 6e 69 6e 67 7f 34 36 34 38 30 ?.46149.Node:.Partitioning.46480
55b00 0a 52 65 66 3a 20 2d 73 70 6c 69 74 2d 61 74 7f 34 36 36 36 38 0a 52 65 66 3a 20 2d 73 70 6c 69 .Ref:.-split-at.46668.Ref:.-spli
55b20 74 2d 77 69 74 68 7f 34 37 33 33 32 0a 52 65 66 3a 20 2d 73 70 6c 69 74 2d 6f 6e 7f 34 37 39 37 t-with.47332.Ref:.-split-on.4797
55b40 32 0a 52 65 66 3a 20 2d 73 70 6c 69 74 2d 77 68 65 6e 7f 34 38 36 34 33 0a 52 65 66 3a 20 2d 73 2.Ref:.-split-when.48643.Ref:.-s
55b60 65 70 61 72 61 74 65 7f 34 39 32 38 36 0a 52 65 66 3a 20 2d 70 61 72 74 69 74 69 6f 6e 7f 34 39 eparate.49286.Ref:.-partition.49
55b80 38 32 30 0a 52 65 66 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 7f 35 30 32 36 39 0a 52 65 820.Ref:.-partition-all.50269.Re
55ba0 66 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 69 6e 2d 73 74 65 70 73 7f 35 30 36 39 34 0a 52 65 66 f:.-partition-in-steps.50694.Ref
55bc0 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 6c 6c 2d 69 6e 2d 73 74 65 70 73 7f 35 31 32 34 30 0a :.-partition-all-in-steps.51240.
55be0 52 65 66 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 79 7f 35 31 37 35 34 0a 52 65 66 3a 20 2d 70 Ref:.-partition-by.51754.Ref:.-p
55c00 61 72 74 69 74 69 6f 6e 2d 62 79 2d 68 65 61 64 65 72 7f 35 32 31 33 32 0a 52 65 66 3a 20 2d 70 artition-by-header.52132.Ref:.-p
55c20 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 70 72 65 64 7f 35 32 37 33 33 0a 52 65 66 3a 20 2d artition-after-pred.52733.Ref:.-
55c40 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 70 72 65 64 7f 35 33 31 38 36 0a 52 65 66 3a partition-before-pred.53186.Ref:
55c60 20 2d 70 61 72 74 69 74 69 6f 6e 2d 62 65 66 6f 72 65 2d 69 74 65 6d 7f 35 33 35 37 31 0a 52 65 .-partition-before-item.53571.Re
55c80 66 3a 20 2d 70 61 72 74 69 74 69 6f 6e 2d 61 66 74 65 72 2d 69 74 65 6d 7f 35 33 38 37 38 0a 52 f:.-partition-after-item.53878.R
55ca0 65 66 3a 20 2d 67 72 6f 75 70 2d 62 79 7f 35 34 31 38 30 0a 4e 6f 64 65 3a 20 49 6e 64 65 78 69 ef:.-group-by.54180.Node:.Indexi
55cc0 6e 67 7f 35 34 36 31 33 0a 52 65 66 3a 20 2d 65 6c 65 6d 2d 69 6e 64 65 78 7f 35 34 38 31 35 0a ng.54613.Ref:.-elem-index.54815.
55ce0 52 65 66 3a 20 2d 65 6c 65 6d 2d 69 6e 64 69 63 65 73 7f 35 35 33 30 32 0a 52 65 66 3a 20 2d 66 Ref:.-elem-indices.55302.Ref:.-f
55d00 69 6e 64 2d 69 6e 64 65 78 7f 35 35 37 36 31 0a 52 65 66 3a 20 2d 66 69 6e 64 2d 6c 61 73 74 2d ind-index.55761.Ref:.-find-last-
55d20 69 6e 64 65 78 7f 35 36 34 33 30 0a 52 65 66 3a 20 2d 66 69 6e 64 2d 69 6e 64 69 63 65 73 7f 35 index.56430.Ref:.-find-indices.5
55d40 37 30 38 31 0a 52 65 66 3a 20 2d 67 72 61 64 65 2d 75 70 7f 35 37 38 34 33 0a 52 65 66 3a 20 2d 7081.Ref:.-grade-up.57843.Ref:.-
55d60 67 72 61 64 65 2d 64 6f 77 6e 7f 35 38 32 35 30 0a 4e 6f 64 65 3a 20 53 65 74 20 6f 70 65 72 61 grade-down.58250.Node:.Set.opera
55d80 74 69 6f 6e 73 7f 35 38 36 36 34 0a 52 65 66 3a 20 2d 75 6e 69 6f 6e 7f 35 38 38 34 37 0a 52 65 tions.58664.Ref:.-union.58847.Re
55da0 66 3a 20 2d 64 69 66 66 65 72 65 6e 63 65 7f 35 39 32 37 37 0a 52 65 66 3a 20 2d 69 6e 74 65 72 f:.-difference.59277.Ref:.-inter
55dc0 73 65 63 74 69 6f 6e 7f 35 39 37 30 35 0a 52 65 66 3a 20 2d 70 6f 77 65 72 73 65 74 7f 36 30 31 section.59705.Ref:.-powerset.601
55de0 33 34 0a 52 65 66 3a 20 2d 70 65 72 6d 75 74 61 74 69 6f 6e 73 7f 36 30 34 31 31 0a 52 65 66 3a 34.Ref:.-permutations.60411.Ref:
55e00 20 2d 64 69 73 74 69 6e 63 74 7f 36 30 38 34 39 0a 52 65 66 3a 20 2d 73 61 6d 65 2d 69 74 65 6d .-distinct.60849.Ref:.-same-item
55e20 73 3f 7f 36 31 32 34 33 0a 4e 6f 64 65 3a 20 4f 74 68 65 72 20 6c 69 73 74 20 6f 70 65 72 61 74 s?.61243.Node:.Other.list.operat
55e40 69 6f 6e 73 7f 36 31 38 35 32 0a 52 65 66 3a 20 2d 72 6f 74 61 74 65 7f 36 32 30 37 37 0a 52 65 ions.61852.Ref:.-rotate.62077.Re
55e60 66 3a 20 2d 63 6f 6e 73 2a 7f 36 32 34 33 30 0a 52 65 66 3a 20 2d 73 6e 6f 63 7f 36 32 38 35 32 f:.-cons*.62430.Ref:.-snoc.62852
55e80 0a 52 65 66 3a 20 2d 69 6e 74 65 72 70 6f 73 65 7f 36 33 32 36 34 0a 52 65 66 3a 20 2d 69 6e 74 .Ref:.-interpose.63264.Ref:.-int
55ea0 65 72 6c 65 61 76 65 7f 36 33 35 35 38 0a 52 65 66 3a 20 2d 69 6f 74 61 7f 36 33 39 32 34 0a 52 erleave.63558.Ref:.-iota.63924.R
55ec0 65 66 3a 20 2d 7a 69 70 2d 77 69 74 68 7f 36 34 34 30 37 0a 52 65 66 3a 20 2d 7a 69 70 2d 70 61 ef:.-zip-with.64407.Ref:.-zip-pa
55ee0 69 72 7f 36 35 32 31 35 0a 52 65 66 3a 20 2d 7a 69 70 2d 6c 69 73 74 73 7f 36 35 37 38 31 0a 52 ir.65215.Ref:.-zip-lists.65781.R
55f00 65 66 3a 20 2d 7a 69 70 2d 6c 69 73 74 73 2d 66 69 6c 6c 7f 36 36 35 37 39 0a 52 65 66 3a 20 2d ef:.-zip-lists-fill.66579.Ref:.-
55f20 7a 69 70 7f 36 37 32 38 39 0a 52 65 66 3a 20 2d 7a 69 70 2d 66 69 6c 6c 7f 36 38 33 31 36 0a 52 zip.67289.Ref:.-zip-fill.68316.R
55f40 65 66 3a 20 2d 75 6e 7a 69 70 2d 6c 69 73 74 73 7f 36 39 32 33 30 0a 52 65 66 3a 20 2d 75 6e 7a ef:.-unzip-lists.69230.Ref:.-unz
55f60 69 70 7f 36 39 38 35 33 0a 52 65 66 3a 20 2d 70 61 64 7f 37 30 38 34 36 0a 52 65 66 3a 20 2d 74 ip.69853.Ref:.-pad.70846.Ref:.-t
55f80 61 62 6c 65 7f 37 31 33 33 31 0a 52 65 66 3a 20 2d 74 61 62 6c 65 2d 66 6c 61 74 7f 37 32 31 31 able.71331.Ref:.-table-flat.7211
55fa0 37 0a 52 65 66 3a 20 2d 66 69 72 73 74 7f 37 33 31 32 32 0a 52 65 66 3a 20 2d 6c 61 73 74 7f 37 7.Ref:.-first.73122.Ref:.-last.7
55fc0 33 36 35 35 0a 52 65 66 3a 20 2d 66 69 72 73 74 2d 69 74 65 6d 7f 37 34 30 30 31 0a 52 65 66 3a 3655.Ref:.-first-item.74001.Ref:
55fe0 20 2d 73 65 63 6f 6e 64 2d 69 74 65 6d 7f 37 34 34 31 33 0a 52 65 66 3a 20 2d 74 68 69 72 64 2d .-second-item.74413.Ref:.-third-
56000 69 74 65 6d 7f 37 34 38 33 30 0a 52 65 66 3a 20 2d 66 6f 75 72 74 68 2d 69 74 65 6d 7f 37 35 32 item.74830.Ref:.-fourth-item.752
56020 30 35 0a 52 65 66 3a 20 2d 66 69 66 74 68 2d 69 74 65 6d 7f 37 35 35 38 33 0a 52 65 66 3a 20 2d 05.Ref:.-fifth-item.75583.Ref:.-
56040 6c 61 73 74 2d 69 74 65 6d 7f 37 35 39 35 38 0a 52 65 66 3a 20 2d 62 75 74 6c 61 73 74 7f 37 36 last-item.75958.Ref:.-butlast.76
56060 33 31 39 0a 52 65 66 3a 20 2d 73 6f 72 74 7f 37 36 35 36 34 0a 52 65 66 3a 20 2d 6c 69 73 74 7f 319.Ref:.-sort.76564.Ref:.-list.
56080 37 37 30 35 38 0a 52 65 66 3a 20 2d 66 69 78 7f 37 37 36 32 37 0a 4e 6f 64 65 3a 20 54 72 65 65 77058.Ref:.-fix.77627.Node:.Tree
560a0 20 6f 70 65 72 61 74 69 6f 6e 73 7f 37 38 31 31 36 0a 52 65 66 3a 20 2d 74 72 65 65 2d 73 65 71 .operations.78116.Ref:.-tree-seq
560c0 7f 37 38 33 31 32 0a 52 65 66 3a 20 2d 74 72 65 65 2d 6d 61 70 7f 37 39 31 37 33 0a 52 65 66 3a .78312.Ref:.-tree-map.79173.Ref:
560e0 20 2d 74 72 65 65 2d 6d 61 70 2d 6e 6f 64 65 73 7f 37 39 36 31 33 0a 52 65 66 3a 20 2d 74 72 65 .-tree-map-nodes.79613.Ref:.-tre
56100 65 2d 72 65 64 75 63 65 7f 38 30 34 37 37 0a 52 65 66 3a 20 2d 74 72 65 65 2d 72 65 64 75 63 65 e-reduce.80477.Ref:.-tree-reduce
56120 2d 66 72 6f 6d 7f 38 31 33 35 39 0a 52 65 66 3a 20 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 -from.81359.Ref:.-tree-mapreduce
56140 7f 38 31 39 35 39 0a 52 65 66 3a 20 2d 74 72 65 65 2d 6d 61 70 72 65 64 75 63 65 2d 66 72 6f 6d .81959.Ref:.-tree-mapreduce-from
56160 7f 38 32 38 31 38 0a 52 65 66 3a 20 2d 63 6c 6f 6e 65 7f 38 34 31 30 33 0a 4e 6f 64 65 3a 20 54 .82818.Ref:.-clone.84103.Node:.T
56180 68 72 65 61 64 69 6e 67 20 6d 61 63 72 6f 73 7f 38 34 34 34 31 0a 52 65 66 3a 20 2d 3e 7f 38 34 hreading.macros.84441.Ref:.->.84
561a0 36 36 36 0a 52 65 66 3a 20 2d 3e 3e 7f 38 35 31 35 34 0a 52 65 66 3a 20 2d 2d 3e 7f 38 35 36 35 666.Ref:.->>.85154.Ref:.-->.8565
561c0 37 0a 52 65 66 3a 20 2d 61 73 2d 3e 7f 38 36 32 31 33 0a 52 65 66 3a 20 2d 73 6f 6d 65 2d 3e 7f 7.Ref:.-as->.86213.Ref:.-some->.
561e0 38 36 36 36 37 0a 52 65 66 3a 20 2d 73 6f 6d 65 2d 3e 3e 7f 38 37 30 35 32 0a 52 65 66 3a 20 2d 86667.Ref:.-some->>.87052.Ref:.-
56200 73 6f 6d 65 2d 2d 3e 7f 38 37 34 39 39 0a 52 65 66 3a 20 2d 64 6f 74 6f 7f 38 38 30 36 36 0a 4e some-->.87499.Ref:.-doto.88066.N
56220 6f 64 65 3a 20 42 69 6e 64 69 6e 67 7f 38 38 36 31 39 0a 52 65 66 3a 20 2d 77 68 65 6e 2d 6c 65 ode:.Binding.88619.Ref:.-when-le
56240 74 7f 38 38 38 32 36 0a 52 65 66 3a 20 2d 77 68 65 6e 2d 6c 65 74 2a 7f 38 39 32 38 37 0a 52 65 t.88826.Ref:.-when-let*.89287.Re
56260 66 3a 20 2d 69 66 2d 6c 65 74 7f 38 39 38 31 36 0a 52 65 66 3a 20 2d 69 66 2d 6c 65 74 2a 7f 39 f:.-if-let.89816.Ref:.-if-let*.9
56280 30 31 38 32 0a 52 65 66 3a 20 2d 6c 65 74 7f 39 30 38 30 35 0a 52 65 66 3a 20 2d 6c 65 74 2a 7f 0182.Ref:.-let.90805.Ref:.-let*.
562a0 39 36 38 39 35 0a 52 65 66 3a 20 2d 6c 61 6d 62 64 61 7f 39 37 38 33 32 0a 52 65 66 3a 20 2d 73 96895.Ref:.-lambda.97832.Ref:.-s
562c0 65 74 71 7f 39 38 36 33 38 0a 4e 6f 64 65 3a 20 53 69 64 65 20 65 66 66 65 63 74 73 7f 39 39 34 etq.98638.Node:.Side.effects.994
562e0 33 39 0a 52 65 66 3a 20 2d 65 61 63 68 7f 39 39 36 33 33 0a 52 65 66 3a 20 2d 65 61 63 68 2d 77 39.Ref:.-each.99633.Ref:.-each-w
56300 68 69 6c 65 7f 31 30 30 31 36 30 0a 52 65 66 3a 20 2d 65 61 63 68 2d 69 6e 64 65 78 65 64 7f 31 hile.100160.Ref:.-each-indexed.1
56320 30 30 37 38 30 0a 52 65 66 3a 20 2d 65 61 63 68 2d 72 7f 31 30 31 33 37 32 0a 52 65 66 3a 20 2d 00780.Ref:.-each-r.101372.Ref:.-
56340 65 61 63 68 2d 72 2d 77 68 69 6c 65 7f 31 30 31 38 31 34 0a 52 65 66 3a 20 2d 64 6f 74 69 6d 65 each-r-while.101814.Ref:.-dotime
56360 73 7f 31 30 32 34 35 38 0a 4e 6f 64 65 3a 20 44 65 73 74 72 75 63 74 69 76 65 20 6f 70 65 72 61 s.102458.Node:.Destructive.opera
56380 74 69 6f 6e 73 7f 31 30 33 30 31 31 0a 52 65 66 3a 20 21 63 6f 6e 73 7f 31 30 33 32 32 39 0a 52 tions.103011.Ref:.!cons.103229.R
563a0 65 66 3a 20 21 63 64 72 7f 31 30 33 34 33 33 0a 4e 6f 64 65 3a 20 46 75 6e 63 74 69 6f 6e 20 63 ef:.!cdr.103433.Node:.Function.c
563c0 6f 6d 62 69 6e 61 74 6f 72 73 7f 31 30 33 36 32 36 0a 52 65 66 3a 20 2d 70 61 72 74 69 61 6c 7f ombinators.103626.Ref:.-partial.
563e0 31 30 33 38 33 30 0a 52 65 66 3a 20 2d 72 70 61 72 74 69 61 6c 7f 31 30 34 33 34 38 0a 52 65 66 103830.Ref:.-rpartial.104348.Ref
56400 3a 20 2d 6a 75 78 74 7f 31 30 34 39 39 36 0a 52 65 66 3a 20 2d 63 6f 6d 70 6f 73 65 7f 31 30 35 :.-juxt.104996.Ref:.-compose.105
56420 34 34 38 0a 52 65 66 3a 20 2d 61 70 70 6c 69 66 79 7f 31 30 36 30 35 35 0a 52 65 66 3a 20 2d 6f 448.Ref:.-applify.106055.Ref:.-o
56440 6e 7f 31 30 36 34 38 35 0a 52 65 66 3a 20 2d 66 6c 69 70 7f 31 30 37 32 35 37 0a 52 65 66 3a 20 n.106485.Ref:.-flip.107257.Ref:.
56460 2d 72 6f 74 61 74 65 2d 61 72 67 73 7f 31 30 37 37 38 31 0a 52 65 66 3a 20 2d 63 6f 6e 73 74 7f -rotate-args.107781.Ref:.-const.
56480 31 30 38 34 31 30 0a 52 65 66 3a 20 2d 63 75 74 7f 31 30 38 37 35 32 0a 52 65 66 3a 20 2d 6e 6f 108410.Ref:.-cut.108752.Ref:.-no
564a0 74 7f 31 30 39 32 33 32 0a 52 65 66 3a 20 2d 6f 72 66 6e 7f 31 30 39 37 37 36 0a 52 65 66 3a 20 t.109232.Ref:.-orfn.109776.Ref:.
564c0 2d 61 6e 64 66 6e 7f 31 31 30 35 36 39 0a 52 65 66 3a 20 2d 69 74 65 72 61 74 65 66 6e 7f 31 31 -andfn.110569.Ref:.-iteratefn.11
564e0 31 33 35 36 0a 52 65 66 3a 20 2d 66 69 78 66 6e 7f 31 31 32 30 35 38 0a 52 65 66 3a 20 2d 70 72 1356.Ref:.-fixfn.112058.Ref:.-pr
56500 6f 64 66 6e 7f 31 31 33 36 33 32 0a 4e 6f 64 65 3a 20 44 65 76 65 6c 6f 70 6d 65 6e 74 7f 31 31 odfn.113632.Node:.Development.11
56520 34 37 38 33 0a 4e 6f 64 65 3a 20 43 6f 6e 74 72 69 62 75 74 65 7f 31 31 35 30 37 32 0a 4e 6f 64 4783.Node:.Contribute.115072.Nod
56540 65 3a 20 43 6f 6e 74 72 69 62 75 74 6f 72 73 7f 31 31 36 30 38 34 0a 4e 6f 64 65 3a 20 46 44 4c e:.Contributors.116084.Node:.FDL
56560 7f 31 31 38 31 37 37 0a 4e 6f 64 65 3a 20 47 50 4c 7f 31 34 33 34 39 37 0a 4e 6f 64 65 3a 20 49 .118177.Node:.GPL.143497.Node:.I
56580 6e 64 65 78 7f 31 38 31 32 34 36 0a 1f 0a 45 6e 64 20 54 61 67 20 54 61 62 6c 65 0a 0a 1f 0a 4c ndex.181246...End.Tag.Table....L
565a0 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 63 6f 64 69 6e 67 3a 20 75 74 66 2d 38 0a 45 6e ocal.Variables:.coding:.utf-8.En
565c0 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d:..............................
565e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56600 64 61 73 68 2d 32 30 32 34 30 34 30 35 2e 39 34 36 2f 64 69 72 00 00 00 00 00 00 00 00 00 00 00 dash-20240405.946/dir...........
56620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
56680 30 30 30 31 31 35 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 33 35 32 00 20 30 00 00 00 0001151.00000000000.012352..0...
566a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
566c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
566e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
56720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
56740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
567a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
567c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
567e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56800 54 68 69 73 20 69 73 20 74 68 65 20 66 69 6c 65 20 2e 2e 2e 2f 69 6e 66 6f 2f 64 69 72 2c 20 77 This.is.the.file..../info/dir,.w
56820 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 74 6f 70 6d 6f 73 74 20 6e 6f 64 65 20 6f hich.contains.the.topmost.node.o
56840 66 20 74 68 65 20 49 6e 66 6f 20 68 69 65 72 61 72 63 68 79 2c 20 63 61 6c 6c 65 64 20 28 64 69 f.the.Info.hierarchy,.called.(di
56860 72 29 54 6f 70 2e 0a 54 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f 75 20 69 6e 76 6f 6b 65 r)Top..The.first.time.you.invoke
56880 20 49 6e 66 6f 20 79 6f 75 20 73 74 61 72 74 20 6f 66 66 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 .Info.you.start.off.looking.at.t
568a0 68 69 73 20 6e 6f 64 65 2e 0a 1f 0a 46 69 6c 65 3a 20 64 69 72 2c 09 4e 6f 64 65 3a 20 54 6f 70 his.node....File:.dir,.Node:.Top
568c0 09 54 68 69 73 20 69 73 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 49 4e 46 4f 20 74 72 65 .This.is.the.top.of.the.INFO.tre
568e0 65 0a 0a 20 20 54 68 69 73 20 28 74 68 65 20 44 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 20 67 e....This.(the.Directory.node).g
56900 69 76 65 73 20 61 20 6d 65 6e 75 20 6f 66 20 6d 61 6a 6f 72 20 74 6f 70 69 63 73 2e 0a 20 20 54 ives.a.menu.of.major.topics....T
56920 79 70 69 6e 67 20 22 71 22 20 65 78 69 74 73 2c 20 22 48 22 20 6c 69 73 74 73 20 61 6c 6c 20 49 yping."q".exits,."H".lists.all.I
56940 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 2c 20 22 64 22 20 72 65 74 75 72 6e 73 20 68 65 72 65 2c 0a nfo.commands,."d".returns.here,.
56960 20 20 22 68 22 20 67 69 76 65 73 20 61 20 70 72 69 6d 65 72 20 66 6f 72 20 66 69 72 73 74 2d 74 .."h".gives.a.primer.for.first-t
56980 69 6d 65 72 73 2c 0a 20 20 22 6d 45 6d 61 63 73 3c 52 65 74 75 72 6e 3e 22 20 76 69 73 69 74 73 imers,..."mEmacs<Return>".visits
569a0 20 74 68 65 20 45 6d 61 63 73 20 6d 61 6e 75 61 6c 2c 20 65 74 63 2e 0a 0a 20 20 49 6e 20 45 6d .the.Emacs.manual,.etc.....In.Em
569c0 61 63 73 2c 20 79 6f 75 20 63 61 6e 20 63 6c 69 63 6b 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 acs,.you.can.click.mouse.button.
569e0 32 20 6f 6e 20 61 20 6d 65 6e 75 20 69 74 65 6d 20 6f 72 20 63 72 6f 73 73 20 72 65 66 65 72 65 2.on.a.menu.item.or.cross.refere
56a00 6e 63 65 0a 20 20 74 6f 20 73 65 6c 65 63 74 20 69 74 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 45 6d nce...to.select.it...*.Menu:..Em
56a20 61 63 73 0a 2a 20 44 61 73 68 3a 20 28 64 61 73 68 2e 69 6e 66 6f 29 2e 20 20 20 20 20 20 20 20 acs.*.Dash:.(dash.info).........
56a40 20 20 20 20 41 20 6d 6f 64 65 72 6e 20 6c 69 73 74 20 6c 69 62 72 61 72 79 20 66 6f 72 20 47 4e ....A.modern.list.library.for.GN
56a60 55 20 45 6d 61 63 73 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 U.Emacs.........................
56a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
56fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
570e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
571e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
572a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
572c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
572e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
573a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
573c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
573e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
574a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
574c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
574e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
575a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
575c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
575e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
576e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
57780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
577e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................