home *** CD-ROM | disk | FTP | other *** search
Emacs Compiled Lisp | 1992-02-21 | 52.5 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Emacs Compiled Lisp
(other/emacsCompiledLisp).
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
1%
| dexvert
| Emacs Compiled Lisp (other/emacsCompiledLisp)
| magic
| Unsupported |
100%
| file
| Emacs v18 byte-compiled Lisp data
| default
| |
99%
| file
| data
| default
| |
100%
| gt2
| Kopftext: '(provide (quote cl))
| default (weak)
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| text/x-emacs-lisp
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0a 28 70 72 6f 76 69 64 | 65 20 28 71 75 6f 74 65 |.(provid|e (quote|
|00000010| 20 63 6c 29 29 0a 0a 28 | 64 65 66 6d 61 63 72 6f | cl))..(|defmacro|
|00000020| 20 70 73 65 74 71 20 28 | 26 72 65 73 74 20 70 61 | psetq (|&rest pa|
|00000030| 69 72 73 29 20 22 28 70 | 73 65 74 71 20 7b 56 41 |irs) "(p|setq {VA|
|00000040| 52 49 41 42 4c 45 20 56 | 41 4c 55 45 7d 2e 2e 2e |RIABLE V|ALUE}...|
|00000050| 29 3a 20 49 6e 20 70 61 | 72 61 6c 6c 65 6c 2c 20 |): In pa|rallel, |
|00000060| 73 65 74 20 65 61 63 68 | 20 56 41 52 49 41 42 4c |set each| VARIABL|
|00000070| 45 20 74 6f 20 69 74 73 | 20 56 41 4c 55 45 2e 0a |E to its| VALUE..|
|00000080| 41 6c 6c 20 74 68 65 20 | 56 41 4c 55 45 73 20 61 |All the |VALUEs a|
|00000090| 72 65 20 65 76 61 6c 75 | 61 74 65 64 2c 20 61 6e |re evalu|ated, an|
|000000a0| 64 20 74 68 65 6e 20 61 | 6c 6c 20 74 68 65 20 56 |d then a|ll the V|
|000000b0| 41 52 49 41 42 4c 45 73 | 20 61 72 65 20 73 65 74 |ARIABLEs| are set|
|000000c0| 2e 0a 41 73 69 64 65 20 | 66 72 6f 6d 20 6f 72 64 |..Aside |from ord|
|000000d0| 65 72 20 6f 66 20 65 76 | 61 6c 75 61 74 69 6f 6e |er of ev|aluation|
|000000e0| 2c 20 74 68 69 73 20 69 | 73 20 74 68 65 20 73 61 |, this i|s the sa|
|000000f0| 6d 65 20 61 73 20 60 73 | 65 74 71 27 2e 22 20 28 |me as `s|etq'." (|
|00000100| 62 79 74 65 2d 63 6f 64 | 65 20 22 09 47 ce ce ce |byte-cod|e ".G...|
|00000110| ce ce ce 1e 07 1e 06 1d | 1c 1b 1a 18 cf d0 08 d1 |........|........|
|00000120| 5c 22 d2 5c 22 85 1e 00 | d3 d4 21 88 09 ce 1e 09 |\".\"...|..!.....|
|00000130| 1e 08 0e 08 85 5b 00 0e | 08 40 89 16 09 88 0e 09 |.....[..|.@......|
|00000140| 39 3f 85 3f 00 d3 d5 d6 | 0e 09 21 5c 22 88 0e 09 |9?.?....|..!\"...|
|00000150| 0a 42 89 12 88 0e 08 41 | 40 0b 42 89 13 88 0e 08 |.B.....A|@.B.....|
|00000160| 41 41 89 16 08 88 82 25 | 00 2a 88 0b ce ce 1e 0b |AA.....%|.*......|
|00000170| 1e 0a 1e 08 0e 08 85 93 | 00 0e 08 40 89 16 0a 88 |........|...@....|
|00000180| d7 20 89 16 0b 88 0e 0b | 0e 0a 44 0c 42 89 14 88 |. ......|..D.B...|
|00000190| 0e 0b 0d 42 89 15 88 0e | 08 41 89 16 08 88 82 66 |...B....|.A.....f|
|000001a0| 00 2b 88 d8 0d 21 89 15 | 88 0a 0d 1e 0d 1e 0c 0e |.+...!..|........|
|000001b0| 0c 85 c5 00 0e 0c 40 0e | 0d 40 0e 06 42 42 89 16 |......@.|.@..BB..|
|000001c0| 06 88 0e 0c 41 89 16 0c | 88 0e 0d 41 89 16 0d 88 |....A...|...A....|
|000001d0| 82 a1 00 2a 88 d9 0c da | 0e 06 42 ce 46 2e 07 87 |...*....|..B.F...|
|000001e0| 22 20 5b 6e 66 6f 72 6d | 73 20 70 61 69 72 73 20 |" [nform|s pairs |
|000001f0| 73 79 6d 62 6f 6c 73 20 | 66 6f 72 6d 73 20 62 69 |symbols |forms bi|
|00000200| 6e 64 69 6e 67 73 20 6e | 65 77 73 79 6d 73 20 61 |ndings n|ewsyms a|
|00000210| 73 73 69 67 6e 6d 65 6e | 74 73 20 69 20 70 74 72 |ssignmen|ts i ptr|
|00000220| 20 76 61 72 20 66 6f 72 | 6d 20 6e 65 77 73 79 6d | var for|m newsym|
|00000230| 20 70 74 72 31 20 70 74 | 72 32 20 6e 69 6c 20 2f | ptr1 pt|r2 nil /|
|00000240| 3d 20 25 20 32 20 30 20 | 65 72 72 6f 72 20 22 4f |= % 2 0 |error "O|
|00000250| 64 64 20 6e 75 6d 62 65 | 72 20 6f 66 20 61 72 67 |dd numbe|r of arg|
|00000260| 75 6d 65 6e 74 73 20 74 | 6f 20 60 70 73 65 74 71 |uments t|o `psetq|
|00000270| 27 22 20 22 60 70 73 65 | 74 71 27 20 65 78 70 65 |'" "`pse|tq' expe|
|00000280| 63 74 65 64 20 61 20 73 | 79 6d 62 6f 6c 2c 20 66 |cted a s|ymbol, f|
|00000290| 6f 75 6e 64 20 27 25 73 | 27 2e 22 20 70 72 69 6e |ound '%s|'." prin|
|000002a0| 31 2d 74 6f 2d 73 74 72 | 69 6e 67 20 67 65 6e 73 |1-to-str|ing gens|
|000002b0| 79 6d 20 6e 72 65 76 65 | 72 73 65 20 6c 65 74 20 |ym nreve|rse let |
|000002c0| 73 65 74 71 5d 20 31 31 | 29 29 0a 0a 28 64 65 66 |setq] 11|))..(def|
|000002d0| 75 6e 20 70 61 69 72 2d | 77 69 74 68 2d 6e 65 77 |un pair-|with-new|
|000002e0| 73 79 6d 73 20 28 6f 6c | 64 66 6f 72 6d 73 29 20 |syms (ol|dforms) |
|000002f0| 22 5c 0a 50 41 49 52 2d | 57 49 54 48 2d 4e 45 57 |"\.PAIR-|WITH-NEW|
|00000300| 53 59 4d 53 20 4f 4c 44 | 46 4f 52 4d 53 0a 54 68 |SYMS OLD|FORMS.Th|
|00000310| 65 20 74 6f 70 2d 6c 65 | 76 65 6c 20 63 6f 6d 70 |e top-le|vel comp|
|00000320| 6f 6e 65 6e 74 73 20 6f | 66 20 74 68 65 20 6c 69 |onents o|f the li|
|00000330| 73 74 20 6f 6c 64 66 6f | 72 6d 73 20 61 72 65 20 |st oldfo|rms are |
|00000340| 70 61 69 72 65 64 20 77 | 69 74 68 20 66 72 65 73 |paired w|ith fres|
|00000350| 68 0a 73 79 6d 62 6f 6c | 73 2c 20 74 68 65 20 70 |h.symbol|s, the p|
|00000360| 61 69 72 69 6e 67 73 20 | 6c 69 73 74 20 61 6e 64 |airings |list and|
|00000370| 20 74 68 65 20 6e 65 77 | 73 79 6d 73 20 6c 69 73 | the new|syms lis|
|00000380| 74 20 61 72 65 20 72 65 | 74 75 72 6e 65 64 2e 22 |t are re|turned."|
|00000390| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 09 c6 c6 | (byte-c|ode "...|
|000003a0| 1b 1a 18 c7 08 21 3f 85 | 2d 00 c8 20 1c 0c 08 40 |.....!?.|-.. ...@|
|000003b0| 44 0a 42 89 12 88 0c 0b | 42 89 13 29 88 08 41 1d |D.B.....|B..)..A.|
|000003c0| 0d 89 10 88 c6 29 88 82 | 06 00 88 c9 ca 0a 21 ca |.....)..|......!.|
|000003d0| 0b 21 5c 22 2b 87 22 20 | 5b 70 74 72 20 6f 6c 64 |.!\"+." |[ptr old|
|000003e0| 66 6f 72 6d 73 20 62 69 | 6e 64 69 6e 67 73 20 6e |forms bi|ndings n|
|000003f0| 65 77 73 79 6d 73 20 6e | 65 77 73 79 6d 20 47 24 |ewsyms n|ewsym G$|
|00000400| 24 5f 37 20 6e 69 6c 20 | 65 6e 64 70 20 67 65 6e |$_7 nil |endp gen|
|00000410| 74 65 6d 70 20 76 61 6c | 75 65 73 20 6e 72 65 76 |temp val|ues nrev|
|00000420| 65 72 73 65 5d 20 37 29 | 29 0a 0a 28 64 65 66 75 |erse] 7)|)..(defu|
|00000430| 6e 20 7a 69 70 2d 6c 69 | 73 74 73 20 28 65 76 65 |n zip-li|sts (eve|
|00000440| 6e 73 20 6f 64 64 73 29 | 20 22 5c 0a 4d 65 72 67 |ns odds)| "\.Merg|
|00000450| 65 20 74 77 6f 20 6c 69 | 73 74 73 20 45 56 45 4e |e two li|sts EVEN|
|00000460| 53 20 61 6e 64 20 4f 44 | 44 53 2c 20 74 61 6b 69 |S and OD|DS, taki|
|00000470| 6e 67 20 65 6c 74 73 20 | 66 72 6f 6d 20 65 61 63 |ng elts |from eac|
|00000480| 68 20 6c 69 73 74 20 61 | 6c 74 65 72 6e 61 74 69 |h list a|lternati|
|00000490| 6e 67 6c 79 2e 0a 45 56 | 45 4e 53 20 61 6e 64 20 |ngly..EV|ENS and |
|000004a0| 4f 44 44 53 20 61 72 65 | 20 74 77 6f 20 6c 69 73 |ODDS are| two lis|
|000004b0| 74 73 2e 20 20 5a 49 50 | 2d 4c 49 53 54 53 20 63 |ts. ZIP|-LISTS c|
|000004c0| 6f 6e 73 74 72 75 63 74 | 73 20 61 20 6e 65 77 20 |onstruct|s a new |
|000004d0| 6c 69 73 74 2c 20 77 68 | 6f 73 65 0a 65 76 65 6e |list, wh|ose.even|
|000004e0| 20 6e 75 6d 62 65 72 65 | 64 20 65 6c 65 6d 65 6e | numbere|d elemen|
|000004f0| 74 73 20 28 30 2c 32 2c | 2e 2e 2e 29 20 63 6f 6d |ts (0,2,|...) com|
|00000500| 65 20 66 72 6f 6d 20 45 | 56 45 4e 53 20 61 6e 64 |e from E|VENS and|
|00000510| 20 77 68 6f 73 65 20 6f | 64 64 0a 6e 75 6d 62 65 | whose o|dd.numbe|
|00000520| 72 65 64 20 65 6c 65 6d | 65 6e 74 73 20 28 31 2c |red elem|ents (1,|
|00000530| 33 2c 2e 2e 2e 29 20 63 | 6f 6d 65 20 66 72 6f 6d |3,...) c|ome from|
|00000540| 20 4f 44 44 53 2e 20 0a | 54 68 65 20 63 6f 6e 73 | ODDS. .|The cons|
|00000550| 74 72 75 63 74 69 6f 6e | 20 73 74 6f 70 73 20 77 |truction| stops w|
|00000560| 68 65 6e 20 74 68 65 20 | 73 68 6f 72 74 65 72 20 |hen the |shorter |
|00000570| 6c 69 73 74 20 69 73 20 | 65 78 68 61 75 73 74 65 |list is |exhauste|
|00000580| 64 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |d." (byt|e-code "|
|00000590| 09 18 0b 1a 08 40 1c 0a | 40 1d c7 1e 06 c8 08 21 |.....@..|@......!|
|000005a0| 86 16 00 c8 0a 21 3f 85 | 35 00 0d 0c 0e 06 42 42 |.....!?.|5.....BB|
|000005b0| 89 16 06 88 08 41 10 0a | 41 12 08 40 14 0a 40 89 |.....A..|A..@..@.|
|000005c0| 15 88 82 0d 00 88 c9 0e | 06 21 2d 87 22 20 5b 70 |........|.!-." [p|
|000005d0| 30 20 65 76 65 6e 73 20 | 70 31 20 6f 64 64 73 20 |0 evens |p1 odds |
|000005e0| 65 76 65 6e 20 6f 64 64 | 20 72 65 73 75 6c 74 20 |even odd| result |
|000005f0| 6e 69 6c 20 65 6e 64 70 | 20 6e 72 65 76 65 72 73 |nil endp| nrevers|
|00000600| 65 5d 20 36 29 29 0a 0a | 28 64 65 66 75 6e 20 75 |e] 6))..|(defun u|
|00000610| 6e 7a 69 70 2d 6c 69 73 | 74 20 28 6c 69 73 74 29 |nzip-lis|t (list)|
|00000620| 20 22 5c 0a 45 78 74 72 | 61 63 74 20 65 76 65 6e | "\.Extr|act even|
|00000630| 20 61 6e 64 20 6f 64 64 | 20 65 6c 65 6d 65 6e 74 | and odd| element|
|00000640| 73 20 6f 66 20 4c 49 53 | 54 20 69 6e 74 6f 20 74 |s of LIS|T into t|
|00000650| 77 6f 20 73 65 70 61 72 | 61 74 65 20 6c 69 73 74 |wo separ|ate list|
|00000660| 73 2e 0a 54 68 65 20 61 | 72 67 75 6d 65 6e 74 20 |s..The a|rgument |
|00000670| 4c 49 53 54 20 69 73 20 | 73 65 70 61 72 61 74 65 |LIST is |separate|
|00000680| 64 20 69 6e 20 74 77 6f | 20 73 74 72 61 6e 64 73 |d in two| strands|
|00000690| 2c 20 74 68 65 20 65 76 | 65 6e 20 61 6e 64 20 74 |, the ev|en and t|
|000006a0| 68 65 20 6f 64 64 0a 6e | 75 6d 62 65 72 65 64 20 |he odd.n|umbered |
|000006b0| 65 6c 65 6d 65 6e 74 73 | 2e 20 20 4e 75 6d 62 65 |elements|. Numbe|
|000006c0| 72 69 6e 67 20 73 74 61 | 72 74 73 20 77 69 74 68 |ring sta|rts with|
|000006d0| 20 30 2c 20 73 6f 20 74 | 68 65 20 66 69 72 73 74 | 0, so t|he first|
|000006e0| 20 65 6c 65 6d 65 6e 74 | 0a 62 65 6c 6f 6e 67 73 | element|.belongs|
|000006f0| 20 69 6e 20 45 56 45 4e | 53 2e 20 4e 6f 20 63 68 | in EVEN|S. No ch|
|00000700| 65 63 6b 20 69 73 20 6d | 61 64 65 20 74 68 61 74 |eck is m|ade that|
|00000710| 20 74 68 65 72 65 20 69 | 73 20 61 6e 20 65 76 65 | there i|s an eve|
|00000720| 6e 20 6e 75 6d 62 65 72 | 20 6f 66 0a 65 6c 65 6d |n number| of.elem|
|00000730| 65 6e 74 73 20 74 6f 20 | 73 74 61 72 74 20 77 69 |ents to |start wi|
|00000740| 74 68 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |th." (by|te-code |
|00000750| 22 09 18 08 40 1a c6 08 | 21 1b c7 1c c7 1d c8 08 |"...@...|!.......|
|00000760| 21 3f 85 30 00 0a 0c 42 | 89 14 88 0b 0d 42 89 15 |!?.0...B|.....B..|
|00000770| 88 c9 08 21 10 08 40 12 | c6 08 21 89 13 88 82 0d |...!..@.|..!.....|
|00000780| 00 88 ca cb 0c 21 cb 0d | 21 5c 22 2d 87 22 20 5b |.....!..|!\"-." [|
|00000790| 70 74 72 20 6c 69 73 74 | 20 74 68 69 73 20 6e 65 |ptr list| this ne|
|000007a0| 78 74 20 65 76 65 6e 73 | 20 6f 64 64 73 20 63 61 |xt evens| odds ca|
|000007b0| 64 72 20 6e 69 6c 20 65 | 6e 64 70 20 63 64 64 72 |dr nil e|ndp cddr|
|000007c0| 20 76 61 6c 75 65 73 20 | 6e 72 65 76 65 72 73 65 | values |nreverse|
|000007d0| 5d 20 39 29 29 0a 0a 28 | 64 65 66 75 6e 20 72 65 |] 9))..(|defun re|
|000007e0| 61 73 73 65 6d 62 6c 65 | 2d 61 72 67 73 6c 69 73 |assemble|-argslis|
|000007f0| 74 73 20 28 61 72 67 73 | 6c 69 73 74 73 29 20 22 |ts (args|lists) "|
|00000800| 5c 0a 28 72 65 61 73 73 | 65 6d 62 6c 65 2d 61 72 |\.(reass|emble-ar|
|00000810| 67 73 6c 69 73 74 73 20 | 41 52 47 53 4c 49 53 54 |gslists |ARGSLIST|
|00000820| 53 29 2e 0a 41 52 47 53 | 4c 49 53 54 53 20 69 73 |S)..ARGS|LISTS is|
|00000830| 20 61 20 6c 69 73 74 20 | 6f 66 20 73 65 71 75 65 | a list |of seque|
|00000840| 6e 63 65 73 2e 20 20 52 | 65 74 75 72 6e 20 61 20 |nces. R|eturn a |
|00000850| 6c 69 73 74 20 6f 66 20 | 6c 69 73 74 73 2c 20 74 |list of |lists, t|
|00000860| 68 65 20 66 69 72 73 74 | 0a 73 75 62 6c 69 73 74 |he first|.sublist|
|00000870| 20 62 65 69 6e 67 20 61 | 6c 6c 20 74 68 65 20 65 | being a|ll the e|
|00000880| 6e 74 72 69 65 73 20 63 | 6f 6d 69 6e 67 20 66 72 |ntries c|oming fr|
|00000890| 6f 6d 20 45 4c 54 20 30 | 20 6f 66 20 74 68 65 20 |om ELT 0| of the |
|000008a0| 6f 72 69 67 69 6e 61 6c | 0a 73 75 62 6c 69 73 74 |original|.sublist|
|000008b0| 73 2c 20 74 68 65 20 6e | 65 78 74 20 74 68 6f 73 |s, the n|ext thos|
|000008c0| 65 20 63 6f 6d 69 6e 67 | 20 66 72 6f 6d 20 45 4c |e coming| from EL|
|000008d0| 54 20 31 20 61 6e 64 20 | 73 6f 20 6f 6e 2c 20 75 |T 1 and |so on, u|
|000008e0| 6e 74 69 6c 20 74 68 65 | 0a 73 68 6f 72 74 65 73 |ntil the|.shortes|
|000008f0| 74 20 6c 69 73 74 20 69 | 73 20 65 78 68 61 75 73 |t list i|s exhaus|
|00000900| 74 65 64 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |ted." (b|yte-code|
|00000910| 20 22 c5 c6 c7 c8 09 5c | 22 5c 22 18 c9 1a 08 1b | ".....\|"\".....|
|00000920| ca 1c 0c 0b 59 3f 85 27 | 00 c7 cb 09 5c 22 0a 42 |....Y?.'|....\".B|
|00000930| 89 12 88 0c cc 5c 5c 89 | 14 88 82 0e 00 88 cd 0a |.....\\.|........|
|00000940| 21 29 29 2a 87 22 20 5b | 6d 69 6e 6c 65 6e 20 61 |!))*." [|minlen a|
|00000950| 72 67 73 6c 69 73 74 73 | 20 72 65 73 75 6c 74 20 |rgslists| result |
|00000960| 54 24 24 5f 30 20 69 20 | 61 70 70 6c 79 20 6d 69 |T$$_0 i |apply mi|
|00000970| 6e 20 6d 61 70 63 61 72 | 20 6c 65 6e 67 74 68 20 |n mapcar| length |
|00000980| 6e 69 6c 20 30 20 28 6c | 61 6d 62 64 61 20 28 73 |nil 0 (l|ambda (s|
|00000990| 75 62 6c 69 73 74 29 20 | 28 62 79 74 65 2d 63 6f |ublist) |(byte-co|
|000009a0| 64 65 20 22 c2 08 09 5c | 22 87 22 20 5b 73 75 62 |de "...\|"." [sub|
|000009b0| 6c 69 73 74 20 69 20 65 | 6c 74 5d 20 33 29 29 20 |list i e|lt] 3)) |
|000009c0| 31 20 6e 72 65 76 65 72 | 73 65 5d 20 36 29 29 0a |1 nrever|se] 6)).|
|000009d0| 0a 28 64 65 66 75 6e 20 | 62 75 69 6c 64 2d 6b 6c |.(defun |build-kl|
|000009e0| 69 73 74 20 28 61 72 67 | 73 6c 69 73 74 20 61 63 |ist (arg|slist ac|
|000009f0| 63 65 70 74 61 62 6c 65 | 29 20 22 5c 0a 44 65 63 |ceptable|) "\.Dec|
|00000a00| 6f 64 65 20 61 20 6b 65 | 79 77 6f 72 64 20 61 72 |ode a ke|yword ar|
|00000a10| 67 75 6d 65 6e 74 20 6c | 69 73 74 20 41 52 47 53 |gument l|ist ARGS|
|00000a20| 4c 49 53 54 20 66 6f 72 | 20 6b 65 79 77 6f 72 64 |LIST for| keyword|
|00000a30| 73 20 69 6e 20 41 43 43 | 45 50 54 41 42 4c 45 2e |s in ACC|EPTABLE.|
|00000a40| 0a 41 52 47 53 4c 49 53 | 54 20 69 73 20 61 20 6c |.ARGSLIS|T is a l|
|00000a50| 69 73 74 2c 20 70 72 65 | 73 75 6d 61 62 6c 79 20 |ist, pre|sumably |
|00000a60| 74 68 65 20 26 72 65 73 | 74 20 61 72 67 75 6d 65 |the &res|t argume|
|00000a70| 6e 74 20 6f 66 20 61 20 | 63 61 6c 6c 2c 20 77 68 |nt of a |call, wh|
|00000a80| 6f 73 65 0a 65 76 65 6e | 20 6e 75 6d 62 65 72 65 |ose.even| numbere|
|00000a90| 64 20 65 6c 65 6d 65 6e | 74 73 20 6d 75 73 74 20 |d elemen|ts must |
|00000aa0| 62 65 20 6b 65 79 77 6f | 72 64 73 2e 0a 41 43 43 |be keywo|rds..ACC|
|00000ab0| 45 50 54 41 42 4c 45 20 | 69 73 20 61 20 6c 69 73 |EPTABLE |is a lis|
|00000ac0| 74 20 6f 66 20 6b 65 79 | 77 6f 72 64 73 2c 20 74 |t of key|words, t|
|00000ad0| 68 65 20 6f 6e 6c 79 20 | 6f 6e 65 73 20 74 68 61 |he only |ones tha|
|00000ae0| 74 20 61 72 65 20 74 72 | 75 6c 79 20 61 63 63 65 |t are tr|uly acce|
|00000af0| 70 74 61 62 6c 65 2e 0a | 54 68 65 20 72 65 73 75 |ptable..|The resu|
|00000b00| 6c 74 20 69 73 20 61 6e | 20 61 6c 69 73 74 20 63 |lt is an| alist c|
|00000b10| 6f 6e 74 61 69 6e 69 6e | 67 20 74 68 65 20 61 72 |ontainin|g the ar|
|00000b20| 67 75 6d 65 6e 74 73 20 | 6e 61 6d 65 64 20 62 79 |guments |named by|
|00000b30| 20 74 68 65 20 6b 65 79 | 77 6f 72 64 73 0a 69 6e | the key|words.in|
|00000b40| 20 41 43 43 45 50 54 41 | 42 4c 45 2c 20 6f 72 20 | ACCEPTA|BLE, or |
|00000b50| 6e 69 6c 20 69 66 20 73 | 6f 6d 65 74 68 69 6e 67 |nil if s|omething|
|00000b60| 20 66 61 69 6c 65 64 2e | 22 20 28 62 79 74 65 2d | failed.|" (byte-|
|00000b70| 63 6f 64 65 20 22 08 3c | 85 09 00 ce 08 47 21 83 |code ".<|.....G!.|
|00000b80| 10 00 c1 82 13 00 cf d0 | 21 88 0a 3c 85 1d 00 d1 |........|!..<....|
|00000b90| d2 0a 5c 22 83 24 00 c1 | 82 27 00 cf d3 21 88 c1 |..\".$..|.'...!..|
|00000ba0| 89 14 88 d4 20 1d 0d d5 | 08 21 4c 88 0c 83 40 00 |.... ...|.!L...@.|
|00000bb0| d6 0e 06 21 82 4f 00 d7 | 89 14 88 0d 4a 43 89 16 |...!.O..|....JC..|
|00000bc0| 06 88 d6 0e 06 21 29 1b | d7 0b 38 1e 07 d8 0b 38 |.....!).|..8....8|
|00000bd0| 1e 08 d1 d2 0e 08 5c 22 | 83 67 00 c1 82 6e 00 cf |......\"|.g...n..|
|00000be0| d9 da 0e 08 21 5c 22 88 | db 0e 08 0e 07 5c 22 1e |....!\".|.....\".|
|00000bf0| 09 0a 1e 0a 0e 0a 40 1e | 0b c1 1e 0c c1 1e 0d dc |......@.|........|
|00000c00| 0e 0a 21 3f 85 b6 00 dd | 0e 0b 0e 09 5c 22 89 16 |..!?....|....\"..|
|00000c10| 0c 3f 83 9e 00 c1 82 a6 | 00 0e 0c 0e 0d 42 89 16 |.?......|.....B..|
|00000c20| 0d 88 0e 0a 41 16 0a 0e | 0a 40 89 16 0b 88 82 85 |....A...|.@......|
|00000c30| 00 88 0e 0d 2d 2b 87 22 | 20 5b 61 72 67 73 6c 69 |....-+."| [argsli|
|00000c40| 73 74 20 6e 69 6c 20 61 | 63 63 65 70 74 61 62 6c |st nil a|cceptabl|
|00000c50| 65 20 54 24 24 5f 31 20 | 2a 6d 76 61 6c 75 65 73 |e T$$_1 |*mvalues|
|00000c60| 2d 63 6f 75 6e 74 2a 20 | 69 74 20 2a 6d 76 61 6c |-count* |it *mval|
|00000c70| 75 65 73 2d 76 61 6c 75 | 65 73 2a 20 66 6f 72 6d |ues-valu|es* form|
|00000c80| 73 20 6b 65 79 77 6f 72 | 64 73 20 61 75 78 6c 69 |s keywor|ds auxli|
|00000c90| 73 74 20 70 74 72 20 74 | 68 69 73 20 61 75 78 76 |st ptr t|his auxv|
|00000ca0| 61 6c 20 61 6c 69 73 74 | 20 65 76 65 6e 70 20 65 |al alist| evenp e|
|00000cb0| 72 72 6f 72 20 22 4f 64 | 64 20 6e 75 6d 62 65 72 |rror "Od|d number|
|00000cc0| 20 6f 66 20 6b 65 79 77 | 6f 72 64 2d 61 72 67 73 | of keyw|ord-args|
|00000cd0| 22 20 65 76 65 72 79 20 | 6b 65 79 77 6f 72 64 70 |" every |keywordp|
|00000ce0| 20 22 53 65 63 6f 6e 64 | 20 61 72 67 20 73 68 6f | "Second| arg sho|
|00000cf0| 75 6c 64 20 62 65 20 61 | 20 6c 69 73 74 20 6f 66 |uld be a| list of|
|00000d00| 20 6b 65 79 77 6f 72 64 | 73 22 20 67 65 6e 73 79 | keyword|s" gensy|
|00000d10| 6d 20 75 6e 7a 69 70 2d | 6c 69 73 74 20 63 6f 70 |m unzip-|list cop|
|00000d20| 79 2d 73 65 71 75 65 6e | 63 65 20 31 20 30 20 22 |y-sequen|ce 1 0 "|
|00000d30| 45 78 70 65 63 74 65 64 | 20 6b 65 79 77 6f 72 64 |Expected| keyword|
|00000d40| 73 2c 20 66 6f 75 6e 64 | 20 60 25 73 27 22 20 70 |s, found| `%s'" p|
|00000d50| 72 69 6e 31 2d 74 6f 2d | 73 74 72 69 6e 67 20 70 |rin1-to-|string p|
|00000d60| 61 69 72 6c 69 73 20 65 | 6e 64 70 20 61 73 73 6f |airlis e|ndp asso|
|00000d70| 63 5d 20 31 37 29 29 0a | 0a 28 64 65 66 75 6e 20 |c] 17)).|.(defun |
|00000d80| 64 75 70 6c 69 63 61 74 | 65 2d 73 79 6d 62 6f 6c |duplicat|e-symbol|
|00000d90| 73 2d 70 20 28 6c 69 73 | 74 29 20 22 5c 0a 46 69 |s-p (lis|t) "\.Fi|
|00000da0| 6e 64 20 61 6c 6c 20 73 | 79 6d 62 6f 6c 73 20 61 |nd all s|ymbols a|
|00000db0| 70 70 65 61 72 69 6e 67 | 20 6d 6f 72 65 20 74 68 |ppearing| more th|
|00000dc0| 61 6e 20 6f 6e 63 65 20 | 69 6e 20 4c 49 53 54 2e |an once |in LIST.|
|00000dd0| 0a 52 65 74 75 72 6e 20 | 61 20 6c 69 73 74 20 6f |.Return |a list o|
|00000de0| 66 20 61 6c 6c 20 73 75 | 63 68 20 64 75 70 6c 69 |f all su|ch dupli|
|00000df0| 63 61 74 65 73 3b 20 60 | 6e 69 6c 27 20 69 66 20 |cates; `|nil' if |
|00000e00| 74 68 65 72 65 20 61 72 | 65 20 6e 6f 20 64 75 70 |there ar|e no dup|
|00000e10| 6c 69 63 61 74 65 73 2e | 22 20 28 62 79 74 65 2d |licates.|" (byte-|
|00000e20| 63 6f 64 65 20 22 c3 c5 | 20 19 18 0a 3c 85 0e 00 |code "..| ...<...|
|00000e30| c6 c7 0a 5c 22 83 15 00 | c3 82 18 00 c8 c9 21 88 |...\"...|......!.|
|00000e40| ca cb 0a 5c 22 88 c3 1c | c3 29 88 ca cc 0a 5c 22 |...\"...|.)....\"|
|00000e50| 88 c3 1c c3 29 88 ca cd | 0a 5c 22 88 c3 1c c3 29 |....)...|.\"....)|
|00000e60| 88 08 2a 87 22 20 5b 64 | 75 70 6c 69 63 61 74 65 |..*." [d|uplicate|
|00000e70| 73 20 70 72 6f 70 6e 61 | 6d 65 20 6c 69 73 74 20 |s propna|me list |
|00000e80| 6e 69 6c 20 78 20 67 65 | 6e 73 79 6d 20 65 76 65 |nil x ge|nsym eve|
|00000e90| 72 79 20 73 79 6d 62 6f | 6c 70 20 65 72 72 6f 72 |ry symbo|lp error|
|00000ea0| 20 22 41 20 6c 69 73 74 | 20 6f 66 20 73 79 6d 62 | "A list| of symb|
|00000eb0| 6f 6c 73 20 69 73 20 6e | 65 65 64 65 64 22 20 6d |ols is n|eeded" m|
|00000ec0| 61 70 63 61 72 20 28 6c | 61 6d 62 64 61 20 28 78 |apcar (l|ambda (x|
|00000ed0| 29 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c2 08 |) (byte-|code "..|
|00000ee0| 09 c3 23 87 22 20 5b 78 | 20 70 72 6f 70 6e 61 6d |..#." [x| propnam|
|00000ef0| 65 20 70 75 74 20 30 5d | 20 34 29 29 20 28 6c 61 |e put 0]| 4)) (la|
|00000f00| 6d 62 64 61 20 28 78 29 | 20 28 62 79 74 65 2d 63 |mbda (x)| (byte-c|
|00000f10| 6f 64 65 20 22 c2 08 09 | 08 09 4e 54 23 87 22 20 |ode "...|..NT#." |
|00000f20| 5b 78 20 70 72 6f 70 6e | 61 6d 65 20 70 75 74 5d |[x propn|ame put]|
|00000f30| 20 35 29 29 20 28 6c 61 | 6d 62 64 61 20 28 78 29 | 5)) (la|mbda (x)|
|00000f40| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 08 09 4e | (byte-c|ode "..N|
|00000f50| c3 56 85 0d 00 08 0a 42 | 89 12 87 22 20 5b 78 20 |.V.....B|..." [x |
|00000f60| 70 72 6f 70 6e 61 6d 65 | 20 64 75 70 6c 69 63 61 |propname| duplica|
|00000f70| 74 65 73 20 31 5d 20 32 | 29 29 5d 20 38 29 29 0a |tes 1] 2|))] 8)).|
|00000f80| 0a 28 64 65 66 6d 61 63 | 72 6f 20 64 65 66 6b 65 |.(defmac|ro defke|
|00000f90| 79 77 6f 72 64 20 28 78 | 20 26 6f 70 74 69 6f 6e |yword (x| &option|
|00000fa0| 61 6c 20 64 6f 63 73 74 | 72 69 6e 67 29 20 22 4d |al docst|ring) "M|
|00000fb0| 61 6b 65 20 73 79 6d 62 | 6f 6c 20 58 20 61 20 6b |ake symb|ol X a k|
|00000fc0| 65 79 77 6f 72 64 20 28 | 73 79 6d 62 6f 6c 20 77 |eyword (|symbol w|
|00000fd0| 68 6f 73 65 20 76 61 6c | 75 65 20 69 73 20 69 74 |hose val|ue is it|
|00000fe0| 73 65 6c 66 29 2e 0a 4f | 70 74 69 6f 6e 61 6c 20 |self)..O|ptional |
|00000ff0| 73 65 63 6f 6e 64 20 61 | 72 67 75 6d 65 6e 74 20 |second a|rgument |
|00001000| 69 73 20 61 20 64 6f 63 | 75 6d 65 6e 74 61 74 69 |is a doc|umentati|
|00001010| 6f 6e 20 73 74 72 69 6e | 67 20 66 6f 72 20 69 74 |on strin|g for it|
|00001020| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|00001030| 39 83 0e 00 c2 08 c3 08 | 44 45 82 14 00 c4 c5 c6 |9.......|DE......|
|00001040| 08 21 5c 22 87 22 20 5b | 78 20 74 20 64 65 66 63 |.!\"." [|x t defc|
|00001050| 6f 6e 73 74 20 71 75 6f | 74 65 20 65 72 72 6f 72 |onst quo|te error|
|00001060| 20 22 60 25 73 27 20 69 | 73 20 6e 6f 74 20 61 20 | "`%s' i|s not a |
|00001070| 73 79 6d 62 6f 6c 22 20 | 70 72 69 6e 31 2d 74 6f |symbol" |prin1-to|
|00001080| 2d 73 74 72 69 6e 67 5d | 20 34 29 29 0a 0a 28 64 |-string]| 4))..(d|
|00001090| 65 66 75 6e 20 6b 65 79 | 77 6f 72 64 70 20 28 73 |efun key|wordp (s|
|000010a0| 79 6d 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 60 74 |ym) "\.R|eturn `t|
|000010b0| 27 20 69 66 20 53 59 4d | 20 69 73 20 61 20 6b 65 |' if SYM| is a ke|
|000010c0| 79 77 6f 72 64 2e 22 20 | 28 62 79 74 65 2d 63 6f |yword." |(byte-co|
|000010d0| 64 65 20 22 08 39 85 0d | 00 c3 c4 08 21 c5 48 c6 |de ".9..|....!.H.|
|000010e0| 5c 22 83 16 00 08 08 4c | 82 17 00 c2 87 22 20 5b |\".....L|....." [|
|000010f0| 73 79 6d 20 74 20 6e 69 | 6c 20 63 68 61 72 2d 65 |sym t ni|l char-e|
|00001100| 71 75 61 6c 20 73 79 6d | 62 6f 6c 2d 6e 61 6d 65 |qual sym|bol-name|
|00001110| 20 30 20 35 38 5d 20 34 | 29 29 0a 0a 28 64 65 66 | 0 58] 4|))..(def|
|00001120| 75 6e 20 6b 65 79 77 6f | 72 64 2d 6f 66 20 28 73 |un keywo|rd-of (s|
|00001130| 79 6d 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 61 20 |ym) "\.R|eturn a |
|00001140| 6b 65 79 77 6f 72 64 20 | 74 68 61 74 20 69 73 20 |keyword |that is |
|00001150| 6e 61 74 75 72 61 6c 6c | 79 20 61 73 73 6f 63 69 |naturall|y associ|
|00001160| 61 74 65 64 20 77 69 74 | 68 20 73 79 6d 62 6f 6c |ated wit|h symbol|
|00001170| 20 53 59 4d 2e 0a 49 66 | 20 53 59 4d 20 69 73 20 | SYM..If| SYM is |
|00001180| 6b 65 79 77 6f 72 64 2c | 20 74 68 65 20 76 61 6c |keyword,| the val|
|00001190| 75 65 20 69 73 20 53 59 | 4d 2e 0a 4f 74 68 65 72 |ue is SY|M..Other|
|000011a0| 77 69 73 65 20 69 74 20 | 69 73 20 61 20 6b 65 79 |wise it |is a key|
|000011b0| 77 6f 72 64 20 77 68 6f | 73 65 20 6e 61 6d 65 20 |word who|se name |
|000011c0| 69 73 20 60 3a 27 20 66 | 6f 6c 6c 6f 77 65 64 20 |is `:' f|ollowed |
|000011d0| 62 79 20 53 59 4d 27 73 | 20 6e 61 6d 65 2e 22 20 |by SYM's| name." |
|000011e0| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c3 08 21 83 |(byte-co|de "..!.|
|000011f0| 0a 00 08 82 24 00 08 39 | 83 1e 00 c4 c5 c6 08 21 |....$..9|.......!|
|00001200| 50 21 19 09 09 4c 29 82 | 24 00 c7 c8 c9 08 21 5c |P!...L).|$.....!\|
|00001210| 22 87 22 20 5b 73 79 6d | 20 6e 65 77 73 79 6d 20 |"." [sym| newsym |
|00001220| 74 20 6b 65 79 77 6f 72 | 64 70 20 69 6e 74 65 72 |t keywor|dp inter|
|00001230| 6e 20 22 3a 22 20 73 79 | 6d 62 6f 6c 2d 6e 61 6d |n ":" sy|mbol-nam|
|00001240| 65 20 65 72 72 6f 72 20 | 22 45 78 70 65 63 74 65 |e error |"Expecte|
|00001250| 64 20 61 20 73 79 6d 62 | 6f 6c 2c 20 6e 6f 74 20 |d a symb|ol, not |
|00001260| 60 25 73 27 22 20 70 72 | 69 6e 31 2d 74 6f 2d 73 |`%s'" pr|in1-to-s|
|00001270| 74 72 69 6e 67 5d 20 37 | 29 29 0a 0a 28 64 65 66 |tring] 7|))..(def|
|00001280| 76 61 72 20 2a 67 65 6e | 74 65 6d 70 2d 69 6e 64 |var *gen|temp-ind|
|00001290| 65 78 2a 20 30 20 22 5c | 0a 49 6e 74 65 67 65 72 |ex* 0 "\|.Integer|
|000012a0| 20 75 73 65 64 20 62 79 | 20 67 65 6e 74 65 6d 70 | used by| gentemp|
|000012b0| 20 74 6f 20 70 72 6f 64 | 75 63 65 20 6e 65 77 20 | to prod|uce new |
|000012c0| 6e 61 6d 65 73 2e 22 29 | 0a 0a 28 64 65 66 76 61 |names.")|..(defva|
|000012d0| 72 20 2a 67 65 6e 74 65 | 6d 70 2d 70 72 65 66 69 |r *gente|mp-prefi|
|000012e0| 78 2a 20 22 54 24 24 5f | 22 20 22 5c 0a 4e 61 6d |x* "T$$_|" "\.Nam|
|000012f0| 65 73 20 67 65 6e 65 72 | 61 74 65 64 20 62 79 20 |es gener|ated by |
|00001300| 67 65 6e 74 65 6d 70 20 | 62 65 67 69 6e 20 77 69 |gentemp |begin wi|
|00001310| 74 68 20 74 68 69 73 20 | 73 74 72 69 6e 67 20 62 |th this |string b|
|00001320| 79 20 64 65 66 61 75 6c | 74 2e 22 29 0a 0a 28 64 |y defaul|t.")..(d|
|00001330| 65 66 75 6e 20 67 65 6e | 74 65 6d 70 20 28 26 6f |efun gen|temp (&o|
|00001340| 70 74 69 6f 6e 61 6c 20 | 70 72 65 66 69 78 20 6f |ptional |prefix o|
|00001350| 62 6c 69 73 74 29 20 22 | 5c 0a 47 65 6e 65 72 61 |blist) "|\.Genera|
|00001360| 74 65 20 61 20 66 72 65 | 73 68 20 69 6e 74 65 72 |te a fre|sh inter|
|00001370| 6e 65 64 20 73 79 6d 62 | 6f 6c 2e 0a 54 68 65 72 |ned symb|ol..Ther|
|00001380| 65 20 61 72 65 20 32 20 | 6f 70 74 69 6f 6e 61 6c |e are 2 |optional|
|00001390| 20 61 72 67 75 6d 65 6e | 74 73 2c 20 50 52 45 46 | argumen|ts, PREF|
|000013a0| 49 58 20 61 6e 64 20 4f | 42 4c 49 53 54 2e 20 20 |IX and O|BLIST. |
|000013b0| 50 52 45 46 49 58 20 69 | 73 20 74 68 65 0a 73 74 |PREFIX i|s the.st|
|000013c0| 72 69 6e 67 20 74 68 61 | 74 20 62 65 67 69 6e 73 |ring tha|t begins|
|000013d0| 20 74 68 65 20 6e 65 77 | 20 6e 61 6d 65 2c 20 4f | the new| name, O|
|000013e0| 42 4c 49 53 54 20 69 73 | 20 74 68 65 20 6f 62 61 |BLIST is| the oba|
|000013f0| 72 72 61 79 20 75 73 65 | 64 20 74 6f 20 73 65 61 |rray use|d to sea|
|00001400| 72 63 68 20 66 6f 72 0a | 6f 6c 64 20 6e 61 6d 65 |rch for.|old name|
|00001410| 73 2e 20 20 54 68 65 20 | 64 65 66 61 75 6c 74 73 |s. The |defaults|
|00001420| 20 61 72 65 20 6a 75 73 | 74 20 72 69 67 68 74 2c | are jus|t right,|
|00001430| 20 59 4f 55 20 53 48 4f | 55 4c 44 20 4e 45 56 45 | YOU SHO|ULD NEVE|
|00001440| 52 20 4e 45 45 44 20 54 | 48 45 53 45 0a 41 52 47 |R NEED T|HESE.ARG|
|00001450| 55 4d 45 4e 54 53 20 49 | 4e 20 59 4f 55 52 20 4f |UMENTS I|N YOUR O|
|00001460| 57 4e 20 43 4f 44 45 2e | 22 20 28 62 79 74 65 2d |WN CODE.|" (byte-|
|00001470| 63 6f 64 65 20 22 08 3f | 85 08 00 09 89 10 88 0a |code ".?|........|
|00001480| 3f 85 11 00 0b 89 12 88 | c5 c5 1e 06 1c 0c 3f 85 |?.......|......?.|
|00001490| 40 00 08 0e 07 50 89 16 | 06 88 0e 07 c8 5c 5c 89 |@....P..|.....\\.|
|000014a0| 16 07 88 c9 0e 06 0a 5c | 22 3f 85 3c 00 ca 0e 06 |.......\|"?.<....|
|000014b0| 0a 5c 22 89 14 88 82 17 | 00 88 0c 2a 87 22 20 5b |.\".....|...*." [|
|000014c0| 70 72 65 66 69 78 20 2a | 67 65 6e 74 65 6d 70 2d |prefix *|gentemp-|
|000014d0| 70 72 65 66 69 78 2a 20 | 6f 62 6c 69 73 74 20 6f |prefix* |oblist o|
|000014e0| 62 61 72 72 61 79 20 6e | 65 77 73 79 6d 62 6f 6c |barray n|ewsymbol|
|000014f0| 20 6e 69 6c 20 6e 65 77 | 6e 61 6d 65 20 2a 67 65 | nil new|name *ge|
|00001500| 6e 74 65 6d 70 2d 69 6e | 64 65 78 2a 20 31 20 69 |ntemp-in|dex* 1 i|
|00001510| 6e 74 65 72 6e 2d 73 6f | 66 74 20 69 6e 74 65 72 |ntern-so|ft inter|
|00001520| 6e 5d 20 35 29 29 0a 0a | 28 64 65 66 76 61 72 20 |n] 5))..|(defvar |
|00001530| 2a 67 65 6e 73 79 6d 2d | 69 6e 64 65 78 2a 20 30 |*gensym-|index* 0|
|00001540| 20 22 5c 0a 49 6e 74 65 | 67 65 72 20 75 73 65 64 | "\.Inte|ger used|
|00001550| 20 62 79 20 67 65 6e 73 | 79 6d 20 74 6f 20 70 72 | by gens|ym to pr|
|00001560| 6f 64 75 63 65 20 6e 65 | 77 20 6e 61 6d 65 73 2e |oduce ne|w names.|
|00001570| 22 29 0a 0a 28 64 65 66 | 76 61 72 20 2a 67 65 6e |")..(def|var *gen|
|00001580| 73 79 6d 2d 70 72 65 66 | 69 78 2a 20 22 47 24 24 |sym-pref|ix* "G$$|
|00001590| 5f 22 20 22 5c 0a 4e 61 | 6d 65 73 20 67 65 6e 65 |_" "\.Na|mes gene|
|000015a0| 72 61 74 65 64 20 62 79 | 20 67 65 6e 73 79 6d 20 |rated by| gensym |
|000015b0| 62 65 67 69 6e 20 77 69 | 74 68 20 74 68 69 73 20 |begin wi|th this |
|000015c0| 73 74 72 69 6e 67 20 62 | 79 20 64 65 66 61 75 6c |string b|y defaul|
|000015d0| 74 2e 22 29 0a 0a 28 64 | 65 66 75 6e 20 67 65 6e |t.")..(d|efun gen|
|000015e0| 73 79 6d 20 28 26 6f 70 | 74 69 6f 6e 61 6c 20 70 |sym (&op|tional p|
|000015f0| 72 65 66 69 78 29 20 22 | 5c 0a 47 65 6e 65 72 61 |refix) "|\.Genera|
|00001600| 74 65 20 61 20 66 72 65 | 73 68 20 75 6e 69 6e 74 |te a fre|sh unint|
|00001610| 65 72 6e 65 64 20 73 79 | 6d 62 6f 6c 2e 0a 54 68 |erned sy|mbol..Th|
|00001620| 65 72 65 20 69 73 20 61 | 6e 20 20 6f 70 74 69 6f |ere is a|n optio|
|00001630| 6e 61 6c 20 61 72 67 75 | 6d 65 6e 74 2c 20 50 52 |nal argu|ment, PR|
|00001640| 45 46 49 58 2e 20 20 50 | 52 45 46 49 58 20 69 73 |EFIX. P|REFIX is|
|00001650| 20 74 68 65 0a 73 74 72 | 69 6e 67 20 74 68 61 74 | the.str|ing that|
|00001660| 20 62 65 67 69 6e 73 20 | 74 68 65 20 6e 65 77 20 | begins |the new |
|00001670| 6e 61 6d 65 2e 20 4d 6f | 73 74 20 70 65 6f 70 6c |name. Mo|st peopl|
|00001680| 65 20 74 61 6b 65 20 6a | 75 73 74 20 74 68 65 20 |e take j|ust the |
|00001690| 64 65 66 61 75 6c 74 2c | 0a 65 78 63 65 70 74 20 |default,|.except |
|000016a0| 77 68 65 6e 20 64 65 62 | 75 67 67 69 6e 67 20 6e |when deb|ugging n|
|000016b0| 65 65 64 73 20 73 75 67 | 67 65 73 74 20 6f 74 68 |eeds sug|gest oth|
|000016c0| 65 72 77 69 73 65 2e 22 | 20 28 62 79 74 65 2d 63 |erwise."| (byte-c|
|000016d0| 6f 64 65 20 22 08 3f 85 | 08 00 09 89 10 88 c3 c6 |ode ".?.|........|
|000016e0| 1c 1a 0a 3f 85 2e 00 08 | 0d 50 89 14 88 0d c7 5c |...?....|.P.....\|
|000016f0| 5c 89 15 88 c8 0c 21 3f | 85 2a 00 c9 0c 21 89 12 |\.....!?|.*...!..|
|00001700| 88 82 0d 00 88 0a 2a 87 | 22 20 5b 70 72 65 66 69 |......*.|" [prefi|
|00001710| 78 20 2a 67 65 6e 73 79 | 6d 2d 70 72 65 66 69 78 |x *gensy|m-prefix|
|00001720| 2a 20 6e 65 77 73 79 6d | 62 6f 6c 20 6e 69 6c 20 |* newsym|bol nil |
|00001730| 6e 65 77 6e 61 6d 65 20 | 2a 67 65 6e 73 79 6d 2d |newname |*gensym-|
|00001740| 69 6e 64 65 78 2a 20 22 | 22 20 31 20 69 6e 74 65 |index* "|" 1 inte|
|00001750| 72 6e 2d 73 6f 66 74 20 | 6d 61 6b 65 2d 73 79 6d |rn-soft |make-sym|
|00001760| 62 6f 6c 5d 20 35 29 29 | 0a 0a 28 70 75 74 20 28 |bol] 5))|..(put (|
|00001770| 71 75 6f 74 65 20 63 61 | 73 65 29 20 28 71 75 6f |quote ca|se) (quo|
|00001780| 74 65 20 6c 69 73 70 2d | 69 6e 64 65 6e 74 2d 68 |te lisp-|indent-h|
|00001790| 6f 6f 6b 29 20 31 29 0a | 0a 28 70 75 74 20 28 71 |ook) 1).|.(put (q|
|000017a0| 75 6f 74 65 20 65 63 61 | 73 65 29 20 28 71 75 6f |uote eca|se) (quo|
|000017b0| 74 65 20 6c 69 73 70 2d | 69 6e 64 65 6e 74 2d 68 |te lisp-|indent-h|
|000017c0| 6f 6f 6b 29 20 31 29 0a | 0a 28 70 75 74 20 28 71 |ook) 1).|.(put (q|
|000017d0| 75 6f 74 65 20 77 68 65 | 6e 29 20 28 71 75 6f 74 |uote whe|n) (quot|
|000017e0| 65 20 6c 69 73 70 2d 69 | 6e 64 65 6e 74 2d 68 6f |e lisp-i|ndent-ho|
|000017f0| 6f 6b 29 20 31 29 0a 0a | 28 70 75 74 20 28 71 75 |ok) 1)..|(put (qu|
|00001800| 6f 74 65 20 75 6e 6c 65 | 73 73 29 20 28 71 75 6f |ote unle|ss) (quo|
|00001810| 74 65 20 6c 69 73 70 2d | 69 6e 64 65 6e 74 2d 68 |te lisp-|indent-h|
|00001820| 6f 6f 6b 29 20 31 29 0a | 0a 28 64 65 66 6d 61 63 |ook) 1).|.(defmac|
|00001830| 72 6f 20 77 68 65 6e 20 | 28 63 6f 6e 64 69 74 69 |ro when |(conditi|
|00001840| 6f 6e 20 26 72 65 73 74 | 20 62 6f 64 79 29 20 22 |on &rest| body) "|
|00001850| 28 77 68 65 6e 20 43 4f | 4e 44 49 54 49 4f 4e 20 |(when CO|NDITION |
|00001860| 2e 20 42 4f 44 59 29 20 | 3d 3e 20 65 76 61 6c 75 |. BODY) |=> evalu|
|00001870| 61 74 65 20 42 4f 44 59 | 20 69 66 20 43 4f 4e 44 |ate BODY| if COND|
|00001880| 49 54 49 4f 4e 20 69 73 | 20 74 72 75 65 2e 22 20 |ITION is| true." |
|00001890| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c2 c3 c4 08 |(byte-co|de "....|
|000018a0| 44 c5 09 24 87 22 20 5b | 63 6f 6e 64 69 74 69 6f |D..$." [|conditio|
|000018b0| 6e 20 62 6f 64 79 20 6c | 69 73 74 2a 20 69 66 20 |n body l|ist* if |
|000018c0| 6e 6f 74 20 6e 69 6c 5d | 20 35 29 29 0a 0a 28 64 |not nil]| 5))..(d|
|000018d0| 65 66 6d 61 63 72 6f 20 | 75 6e 6c 65 73 73 20 28 |efmacro |unless (|
|000018e0| 63 6f 6e 64 69 74 69 6f | 6e 20 26 72 65 73 74 20 |conditio|n &rest |
|000018f0| 62 6f 64 79 29 20 22 28 | 75 6e 6c 65 73 73 20 43 |body) "(|unless C|
|00001900| 4f 4e 44 49 54 49 4f 4e | 20 2e 20 42 4f 44 59 29 |ONDITION| . BODY)|
|00001910| 20 3d 3e 20 65 76 61 6c | 75 61 74 65 20 42 4f 44 | => eval|uate BOD|
|00001920| 59 20 69 66 20 43 4f 4e | 44 49 54 49 4f 4e 20 69 |Y if CON|DITION i|
|00001930| 73 20 66 61 6c 73 65 2e | 22 20 28 62 79 74 65 2d |s false.|" (byte-|
|00001940| 63 6f 64 65 20 22 c2 c3 | 08 c4 09 24 87 22 20 5b |code "..|...$." [|
|00001950| 63 6f 6e 64 69 74 69 6f | 6e 20 62 6f 64 79 20 6c |conditio|n body l|
|00001960| 69 73 74 2a 20 69 66 20 | 6e 69 6c 5d 20 35 29 29 |ist* if |nil] 5))|
|00001970| 0a 0a 28 64 65 66 6d 61 | 63 72 6f 20 63 61 73 65 |..(defma|cro case|
|00001980| 20 28 65 78 70 72 20 26 | 72 65 73 74 20 63 61 73 | (expr &|rest cas|
|00001990| 65 73 29 20 22 28 63 61 | 73 65 20 45 58 50 52 20 |es) "(ca|se EXPR |
|000019a0| 2e 20 43 41 53 45 53 29 | 20 3d 3e 20 65 76 61 6c |. CASES)| => eval|
|000019b0| 73 20 45 58 50 52 2c 20 | 63 68 6f 6f 73 65 73 20 |s EXPR, |chooses |
|000019c0| 66 72 6f 6d 20 43 41 53 | 45 53 20 6f 6e 20 74 68 |from CAS|ES on th|
|000019d0| 61 74 20 76 61 6c 75 65 | 2e 0a 45 58 50 52 20 20 |at value|..EXPR |
|000019e0| 20 2d 3e 20 61 6e 79 20 | 66 6f 72 6d 0a 43 41 53 | -> any |form.CAS|
|000019f0| 45 53 20 20 2d 3e 20 6c | 69 73 74 20 6f 66 20 63 |ES -> l|ist of c|
|00001a00| 6c 61 75 73 65 73 2c 20 | 6e 6f 6e 20 65 6d 70 74 |lauses, |non empt|
|00001a10| 79 0a 43 4c 41 55 53 45 | 20 2d 3e 20 48 45 41 44 |y.CLAUSE| -> HEAD|
|00001a20| 20 2e 20 42 4f 44 59 0a | 48 45 41 44 20 20 20 2d | . BODY.|HEAD -|
|00001a30| 3e 20 74 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |> t | |
|00001a40| 3d 20 63 61 74 63 68 20 | 61 6c 6c 2c 20 6d 75 73 |= catch |all, mus|
|00001a50| 74 20 62 65 20 6c 61 73 | 74 20 63 6c 61 75 73 65 |t be las|t clause|
|00001a60| 0a 20 20 20 20 20 20 20 | 2d 3e 20 6f 74 68 65 72 |. |-> other|
|00001a70| 77 69 73 65 20 20 20 20 | 20 3d 20 73 61 6d 65 20 |wise | = same |
|00001a80| 61 73 20 74 0a 20 20 20 | 20 20 20 20 2d 3e 20 6e |as t. | -> n|
|00001a90| 69 6c 20 20 20 20 20 20 | 20 20 20 20 20 3d 20 69 |il | = i|
|00001aa0| 6c 6c 65 67 61 6c 0a 20 | 20 20 20 20 20 20 2d 3e |llegal. | ->|
|00001ab0| 20 61 74 6f 6d 20 20 20 | 20 20 20 20 20 20 20 3d | atom | =|
|00001ac0| 20 61 63 74 69 76 61 74 | 65 64 20 69 66 20 28 65 | activat|ed if (e|
|00001ad0| 71 6c 20 20 45 58 50 52 | 20 48 45 41 44 29 0a 20 |ql EXPR| HEAD). |
|00001ae0| 20 20 20 20 20 20 2d 3e | 20 6c 69 73 74 20 6f 66 | ->| list of|
|00001af0| 20 61 74 6f 6d 73 20 3d | 20 61 63 74 69 76 61 74 | atoms =| activat|
|00001b00| 65 64 20 69 66 20 28 6d | 65 6d 62 65 72 20 45 58 |ed if (m|ember EX|
|00001b10| 50 52 20 48 45 41 44 29 | 0a 42 4f 44 59 20 20 20 |PR HEAD)|.BODY |
|00001b20| 2d 3e 20 6c 69 73 74 20 | 6f 66 20 66 6f 72 6d 73 |-> list |of forms|
|00001b30| 2c 20 69 6d 70 6c 69 63 | 69 74 20 50 52 4f 47 4e |, implic|it PROGN|
|00001b40| 20 69 73 20 62 75 69 6c | 74 20 61 72 6f 75 6e 64 | is buil|t around|
|00001b50| 20 69 74 2e 0a 45 58 50 | 52 20 69 73 20 65 76 61 | it..EXP|R is eva|
|00001b60| 6c 75 61 74 65 64 20 6f | 6e 6c 79 20 6f 6e 63 65 |luated o|nly once|
|00001b70| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c4 |." (byte|-code ".|
|00001b80| 20 18 c5 0a 08 5c 22 19 | c6 08 0b 44 43 c7 c8 c9 | ....\".|...DC...|
|00001b90| 09 21 5c 22 45 2a 87 22 | 20 5b 6e 65 77 73 79 6d |.!\"E*."| [newsym|
|00001ba0| 20 63 6c 61 75 73 65 73 | 20 63 61 73 65 73 20 65 | clauses| cases e|
|00001bb0| 78 70 72 20 67 65 6e 74 | 65 6d 70 20 63 61 73 65 |xpr gent|emp case|
|00001bc0| 2d 63 6c 61 75 73 69 66 | 79 20 6c 65 74 20 6c 69 |-clausif|y let li|
|00001bd0| 73 74 2a 20 63 6f 6e 64 | 20 6e 72 65 76 65 72 73 |st* cond| nrevers|
|00001be0| 65 5d 20 38 29 29 0a 0a | 28 64 65 66 6d 61 63 72 |e] 8))..|(defmacr|
|00001bf0| 6f 20 65 63 61 73 65 20 | 28 65 78 70 72 20 26 72 |o ecase |(expr &r|
|00001c00| 65 73 74 20 63 61 73 65 | 73 29 20 22 28 65 63 61 |est case|s) "(eca|
|00001c10| 73 65 20 45 58 50 52 20 | 2e 20 43 41 53 45 53 29 |se EXPR |. CASES)|
|00001c20| 20 3d 3e 20 6c 69 6b 65 | 20 60 63 61 73 65 27 2c | => like| `case',|
|00001c30| 20 62 75 74 20 65 72 72 | 6f 72 20 69 66 20 6e 6f | but err|or if no|
|00001c40| 20 63 61 73 65 20 66 69 | 74 73 2e 0a 60 74 27 2d | case fi|ts..`t'-|
|00001c50| 63 6c 61 75 73 65 73 20 | 61 72 65 20 6e 6f 74 20 |clauses |are not |
|00001c60| 61 6c 6c 6f 77 65 64 2e | 22 20 28 62 79 74 65 2d |allowed.|" (byte-|
|00001c70| 63 6f 64 65 20 22 c5 20 | 18 c6 0a 08 5c 22 19 c7 |code ". |....\"..|
|00001c80| 09 21 c3 3d 85 13 00 c8 | c9 21 88 c3 c8 ca cb 0c |.!.=....|.!......|
|00001c90| 44 cc 08 44 46 44 09 42 | 89 11 88 cd 08 0c 44 43 |D..DFD.B|......DC|
|00001ca0| ce cf d0 09 21 5c 22 45 | 2a 87 22 20 5b 6e 65 77 |....!\"E|*." [new|
|00001cb0| 73 79 6d 20 63 6c 61 75 | 73 65 73 20 63 61 73 65 |sym clau|ses case|
|00001cc0| 73 20 74 20 65 78 70 72 | 20 67 65 6e 74 65 6d 70 |s t expr| gentemp|
|00001cd0| 20 63 61 73 65 2d 63 6c | 61 75 73 69 66 79 20 63 | case-cl|ausify c|
|00001ce0| 61 61 72 20 65 72 72 6f | 72 20 22 4e 6f 20 63 6c |aar erro|r "No cl|
|00001cf0| 61 75 73 65 2d 68 65 61 | 64 20 73 68 6f 75 6c 64 |ause-hea|d should|
|00001d00| 20 62 65 20 60 74 27 20 | 6f 72 20 60 6f 74 68 65 | be `t' |or `othe|
|00001d10| 72 77 69 73 65 27 20 66 | 6f 72 20 60 65 63 61 73 |rwise' f|or `ecas|
|00001d20| 65 27 22 20 22 65 63 61 | 73 65 20 6f 6e 20 25 73 |e'" "eca|se on %s|
|00001d30| 20 3d 20 25 73 20 66 61 | 69 6c 65 64 20 74 6f 20 | = %s fa|iled to |
|00001d40| 74 61 6b 65 20 61 6e 79 | 20 62 72 61 6e 63 68 2e |take any| branch.|
|00001d50| 22 20 71 75 6f 74 65 20 | 70 72 69 6e 31 2d 74 6f |" quote |prin1-to|
|00001d60| 2d 73 74 72 69 6e 67 20 | 6c 65 74 20 6c 69 73 74 |-string |let list|
|00001d70| 2a 20 63 6f 6e 64 20 6e | 72 65 76 65 72 73 65 5d |* cond n|reverse]|
|00001d80| 20 31 30 29 29 0a 0a 28 | 64 65 66 75 6e 20 63 61 | 10))..(|defun ca|
|00001d90| 73 65 2d 63 6c 61 75 73 | 69 66 79 20 28 63 61 73 |se-claus|ify (cas|
|00001da0| 65 73 20 6e 65 77 73 79 | 6d 29 20 22 5c 0a 43 41 |es newsy|m) "\.CA|
|00001db0| 53 45 2d 43 4c 41 55 53 | 49 46 59 20 43 41 53 45 |SE-CLAUS|IFY CASE|
|00001dc0| 53 20 4e 45 57 53 59 4d | 20 3d 3e 20 63 6c 61 75 |S NEWSYM| => clau|
|00001dd0| 73 65 73 20 66 6f 72 20 | 61 20 27 63 6f 6e 64 27 |ses for |a 'cond'|
|00001de0| 0a 43 6f 6e 76 65 72 74 | 73 20 74 68 65 20 43 41 |.Convert|s the CA|
|00001df0| 53 45 53 20 6f 66 20 61 | 20 5b 65 5d 63 61 73 65 |SES of a| [e]case|
|00001e00| 20 6d 61 63 72 6f 20 69 | 6e 74 6f 20 63 6f 6e 64 | macro i|nto cond|
|00001e10| 20 63 6c 61 75 73 65 73 | 20 74 6f 20 62 65 0a 65 | clauses| to be.e|
|00001e20| 76 61 6c 75 61 74 65 64 | 20 69 6e 73 69 64 65 20 |valuated| inside |
|00001e30| 61 20 6c 65 74 20 74 68 | 61 74 20 62 69 6e 64 73 |a let th|at binds|
|00001e40| 20 4e 45 57 53 59 4d 2e | 20 20 52 65 74 75 72 6e | NEWSYM.| Return|
|00001e50| 73 20 74 68 65 20 63 6c | 61 75 73 65 73 20 69 6e |s the cl|auses in|
|00001e60| 0a 72 65 76 65 72 73 65 | 20 6f 72 64 65 72 2e 22 |.reverse| order."|
|00001e70| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 09 18 09 | (byte-c|ode "...|
|00001e80| 41 1a 09 40 1b c9 1c ca | 08 21 3f 85 8b 00 0b 40 |A..@....|.!?....@|
|00001e90| 0b 41 1e 06 1d 0d 3f 83 | 26 00 cb cc cd 0b 21 5c |.A....?.|&.....!\|
|00001ea0| 22 82 7b 00 0d c8 3d 86 | 2f 00 0d ce 3d 83 48 00 |".{...=.|/...=.H.|
|00001eb0| ca 0a 21 3f 85 3c 00 cb | cf 21 88 c8 0e 06 42 0c |..!?.<..|.!....B.|
|00001ec0| 42 89 14 82 7b 00 d0 0d | 21 83 5f 00 d1 0e 07 d2 |B...{...|!._.....|
|00001ed0| 0d 44 45 0e 06 42 0c 42 | 89 14 82 7b 00 0d 3c 83 |.DE..B.B|...{..<.|
|00001ee0| 75 00 d3 0e 07 d2 0d 44 | 45 0e 06 42 0c 42 89 14 |u......D|E..B.B..|
|00001ef0| 82 7b 00 cb d4 cd 0d 21 | 5c 22 2a 88 08 41 10 0a |.{.....!|\"*..A..|
|00001f00| 41 12 08 40 89 13 88 82 | 0a 00 88 0c 2c 87 22 20 |A..@....|....,." |
|00001f10| 5b 63 75 72 72 65 6e 74 | 70 6f 73 20 63 61 73 65 |[current|pos case|
|00001f20| 73 20 6e 65 78 74 70 6f | 73 20 63 75 72 63 6c 61 |s nextpo|s curcla|
|00001f30| 75 73 65 20 72 65 73 75 | 6c 74 20 68 65 61 64 20 |use resu|lt head |
|00001f40| 62 6f 64 79 20 6e 65 77 | 73 79 6d 20 74 20 6e 69 |body new|sym t ni|
|00001f50| 6c 20 65 6e 64 70 20 65 | 72 72 6f 72 20 22 43 61 |l endp e|rror "Ca|
|00001f60| 73 65 20 63 6c 61 75 73 | 65 73 20 63 61 6e 6e 6f |se claus|es canno|
|00001f70| 74 20 68 61 76 65 20 6e | 75 6c 6c 20 68 65 61 64 |t have n|ull head|
|00001f80| 73 3a 20 60 25 73 27 22 | 20 70 72 69 6e 31 2d 74 |s: `%s'"| prin1-t|
|00001f90| 6f 2d 73 74 72 69 6e 67 | 20 6f 74 68 65 72 77 69 |o-string| otherwi|
|00001fa0| 73 65 20 22 43 6c 61 75 | 73 65 20 77 69 74 68 20 |se "Clau|se with |
|00001fb0| 60 74 27 20 6f 72 20 60 | 6f 74 68 65 72 77 69 73 |`t' or `|otherwis|
|00001fc0| 65 27 20 68 65 61 64 20 | 6d 75 73 74 20 62 65 20 |e' head |must be |
|00001fd0| 6c 61 73 74 22 20 61 74 | 6f 6d 20 65 71 6c 20 71 |last" at|om eql q|
|00001fe0| 75 6f 74 65 20 6d 65 6d | 62 65 72 20 22 44 6f 6e |uote mem|ber "Don|
|00001ff0| 27 74 20 6b 6e 6f 77 20 | 68 6f 77 20 74 6f 20 70 |'t know |how to p|
|00002000| 61 72 73 65 20 63 61 73 | 65 20 63 6c 61 75 73 65 |arse cas|e clause|
|00002010| 20 60 25 73 27 2e 22 5d | 20 31 31 29 29 0a 0a 28 | `%s'."]| 11))..(|
|00002020| 70 75 74 20 28 71 75 6f | 74 65 20 64 6f 29 20 28 |put (quo|te do) (|
|00002030| 71 75 6f 74 65 20 6c 69 | 73 70 2d 69 6e 64 65 6e |quote li|sp-inden|
|00002040| 74 2d 68 6f 6f 6b 29 20 | 32 29 0a 0a 28 70 75 74 |t-hook) |2)..(put|
|00002050| 20 28 71 75 6f 74 65 20 | 64 6f 2a 29 20 28 71 75 | (quote |do*) (qu|
|00002060| 6f 74 65 20 6c 69 73 70 | 2d 69 6e 64 65 6e 74 2d |ote lisp|-indent-|
|00002070| 68 6f 6f 6b 29 20 32 29 | 0a 0a 28 70 75 74 20 28 |hook) 2)|..(put (|
|00002080| 71 75 6f 74 65 20 64 6f | 6c 69 73 74 29 20 28 71 |quote do|list) (q|
|00002090| 75 6f 74 65 20 6c 69 73 | 70 2d 69 6e 64 65 6e 74 |uote lis|p-indent|
|000020a0| 2d 68 6f 6f 6b 29 20 31 | 29 0a 0a 28 70 75 74 20 |-hook) 1|)..(put |
|000020b0| 28 71 75 6f 74 65 20 64 | 6f 74 69 6d 65 73 29 20 |(quote d|otimes) |
|000020c0| 28 71 75 6f 74 65 20 6c | 69 73 70 2d 69 6e 64 65 |(quote l|isp-inde|
|000020d0| 6e 74 2d 68 6f 6f 6b 29 | 20 31 29 0a 0a 28 70 75 |nt-hook)| 1)..(pu|
|000020e0| 74 20 28 71 75 6f 74 65 | 20 64 6f 2d 73 79 6d 62 |t (quote| do-symb|
|000020f0| 6f 6c 73 29 20 28 71 75 | 6f 74 65 20 6c 69 73 70 |ols) (qu|ote lisp|
|00002100| 2d 69 6e 64 65 6e 74 2d | 68 6f 6f 6b 29 20 31 29 |-indent-|hook) 1)|
|00002110| 0a 0a 28 70 75 74 20 28 | 71 75 6f 74 65 20 64 6f |..(put (|quote do|
|00002120| 2d 61 6c 6c 2d 73 79 6d | 62 6f 6c 73 29 20 28 71 |-all-sym|bols) (q|
|00002130| 75 6f 74 65 20 6c 69 73 | 70 2d 69 6e 64 65 6e 74 |uote lis|p-indent|
|00002140| 2d 68 6f 6f 6b 29 20 31 | 29 0a 0a 28 64 65 66 6d |-hook) 1|)..(defm|
|00002150| 61 63 72 6f 20 64 6f 20 | 28 73 74 65 70 66 6f 72 |acro do |(stepfor|
|00002160| 6d 73 20 65 6e 64 66 6f | 72 6d 73 20 26 72 65 73 |ms endfo|rms &res|
|00002170| 74 20 62 6f 64 79 29 20 | 22 28 64 6f 20 53 54 45 |t body) |"(do STE|
|00002180| 50 46 4f 52 4d 53 20 45 | 4e 44 46 4f 52 4d 53 20 |PFORMS E|NDFORMS |
|00002190| 2e 20 42 4f 44 59 29 3a | 20 49 74 65 72 61 74 65 |. BODY):| Iterate|
|000021a0| 20 42 4f 44 59 2c 20 73 | 74 65 70 70 69 6e 67 20 | BODY, s|tepping |
|000021b0| 73 6f 6d 65 20 6c 6f 63 | 61 6c 20 76 61 72 69 61 |some loc|al varia|
|000021c0| 62 6c 65 73 2e 0a 53 54 | 45 50 46 4f 52 4d 53 20 |bles..ST|EPFORMS |
|000021d0| 6d 75 73 74 20 62 65 20 | 61 20 6c 69 73 74 20 6f |must be |a list o|
|000021e0| 66 20 73 79 6d 62 6f 6c | 73 20 6f 72 20 6c 69 73 |f symbol|s or lis|
|000021f0| 74 73 2e 20 20 49 6e 20 | 74 68 65 20 73 65 63 6f |ts. In |the seco|
|00002200| 6e 64 20 63 61 73 65 2c | 20 74 68 65 0a 6c 69 73 |nd case,| the.lis|
|00002210| 74 73 20 6d 75 73 74 20 | 73 74 61 72 74 20 77 69 |ts must |start wi|
|00002220| 74 68 20 61 20 73 79 6d | 62 6f 6c 20 61 6e 64 20 |th a sym|bol and |
|00002230| 63 6f 6e 74 61 69 6e 20 | 75 70 20 74 6f 20 74 77 |contain |up to tw|
|00002240| 6f 20 6d 6f 72 65 20 66 | 6f 72 6d 73 2e 20 49 6e |o more f|orms. In|
|00002250| 0a 74 68 65 20 53 54 45 | 50 46 4f 52 4d 53 2c 20 |.the STE|PFORMS, |
|00002260| 61 20 73 79 6d 62 6f 6c | 20 69 73 20 74 68 65 20 |a symbol| is the |
|00002270| 73 61 6d 65 20 61 73 20 | 61 20 28 73 79 6d 62 6f |same as |a (symbo|
|00002280| 6c 29 2e 20 20 54 68 65 | 20 6f 74 68 65 72 20 32 |l). The| other 2|
|00002290| 20 66 6f 72 6d 73 0a 61 | 72 65 20 74 68 65 20 69 | forms.a|re the i|
|000022a0| 6e 69 74 69 61 6c 20 76 | 61 6c 75 65 20 28 64 65 |nitial v|alue (de|
|000022b0| 66 2e 20 4e 49 4c 29 20 | 61 6e 64 20 74 68 65 20 |f. NIL) |and the |
|000022c0| 66 6f 72 6d 20 74 6f 20 | 73 74 65 70 20 28 64 65 |form to |step (de|
|000022d0| 66 2e 20 69 74 73 65 6c | 66 29 2e 0a 54 68 65 20 |f. itsel|f)..The |
|000022e0| 76 61 6c 75 65 73 20 75 | 73 65 64 20 62 79 20 69 |values u|sed by i|
|000022f0| 6e 69 74 69 61 6c 69 7a | 61 74 69 6f 6e 20 61 6e |nitializ|ation an|
|00002300| 64 20 73 74 65 70 70 69 | 6e 67 20 61 72 65 20 63 |d steppi|ng are c|
|00002310| 6f 6d 70 75 74 65 64 20 | 69 6e 20 70 61 72 61 6c |omputed |in paral|
|00002320| 6c 65 6c 2e 0a 54 68 65 | 20 45 4e 44 46 4f 52 4d |lel..The| ENDFORM|
|00002330| 53 20 61 72 65 20 61 20 | 6c 69 73 74 20 28 43 4f |S are a |list (CO|
|00002340| 4e 44 49 54 49 4f 4e 20 | 2e 20 45 4e 44 42 4f 44 |NDITION |. ENDBOD|
|00002350| 59 29 2e 20 20 49 66 20 | 74 68 65 20 43 4f 4e 44 |Y). If |the COND|
|00002360| 49 54 49 4f 4e 0a 65 76 | 61 6c 75 61 74 65 73 20 |ITION.ev|aluates |
|00002370| 74 6f 20 74 72 75 65 20 | 69 6e 20 61 6e 79 20 69 |to true |in any i|
|00002380| 74 65 72 61 74 69 6f 6e | 2c 20 45 4e 44 42 4f 44 |teration|, ENDBOD|
|00002390| 59 20 69 73 20 65 76 61 | 6c 75 61 74 65 64 20 61 |Y is eva|luated a|
|000023a0| 6e 64 20 74 68 65 20 6c | 61 73 74 0a 66 6f 72 6d |nd the l|ast.form|
|000023b0| 20 69 6e 20 69 74 20 69 | 73 20 72 65 74 75 72 6e | in it i|s return|
|000023c0| 65 64 2e 0a 54 68 65 20 | 42 4f 44 59 20 28 77 68 |ed..The |BODY (wh|
|000023d0| 69 63 68 20 6d 61 79 20 | 62 65 20 65 6d 70 74 79 |ich may |be empty|
|000023e0| 29 20 69 73 20 65 76 61 | 6c 75 61 74 65 64 20 61 |) is eva|luated a|
|000023f0| 74 20 65 76 65 72 79 20 | 69 74 65 72 61 74 69 6f |t every |iteratio|
|00002400| 6e 2c 20 77 69 74 68 0a | 74 68 65 20 73 79 6d 62 |n, with.|the symb|
|00002410| 6f 6c 73 20 6f 66 20 74 | 68 65 20 53 54 45 50 46 |ols of t|he STEPF|
|00002420| 4f 52 4d 53 20 62 6f 75 | 6e 64 20 74 6f 20 74 68 |ORMS bou|nd to th|
|00002430| 65 20 69 6e 69 74 69 61 | 6c 20 6f 72 20 73 74 65 |e initia|l or ste|
|00002440| 70 70 65 64 20 76 61 6c | 75 65 73 2e 22 20 28 62 |pped val|ues." (b|
|00002450| 79 74 65 2d 63 6f 64 65 | 20 22 c7 08 21 85 09 00 |yte-code| "..!...|
|00002460| c8 09 21 88 c9 08 21 ca | 08 21 09 40 09 41 1d 1c |..!...!.|.!.@.A..|
|00002470| 1b 1a cb 0a cc cd 0c 44 | ce 0e 06 0b 5c 22 42 42 |.......D|....\"BB|
|00002480| ce 0d 21 42 42 42 2c 87 | 22 20 5b 73 74 65 70 66 |..!BBB,.|" [stepf|
|00002490| 6f 72 6d 73 20 65 6e 64 | 66 6f 72 6d 73 20 69 6e |orms end|forms in|
|000024a0| 69 74 6c 69 73 74 20 73 | 74 65 70 6c 69 73 74 20 |itlist s|teplist |
|000024b0| 65 6e 64 63 6f 6e 64 20 | 65 6e 64 62 6f 64 79 20 |endcond |endbody |
|000024c0| 62 6f 64 79 20 63 68 65 | 63 6b 2d 64 6f 2d 73 74 |body che|ck-do-st|
|000024d0| 65 70 66 6f 72 6d 73 20 | 63 68 65 63 6b 2d 64 6f |epforms |check-do|
|000024e0| 2d 65 6e 64 66 6f 72 6d | 73 20 65 78 74 72 61 63 |-endform|s extrac|
|000024f0| 74 2d 64 6f 2d 69 6e 69 | 74 73 20 65 78 74 72 61 |t-do-ini|ts extra|
|00002500| 63 74 2d 64 6f 2d 73 74 | 65 70 73 20 6c 65 74 20 |ct-do-st|eps let |
|00002510| 77 68 69 6c 65 20 6e 6f | 74 20 61 70 70 65 6e 64 |while no|t append|
|00002520| 5d 20 31 31 29 29 0a 0a | 28 64 65 66 6d 61 63 72 |] 11))..|(defmacr|
|00002530| 6f 20 64 6f 2a 20 28 73 | 74 65 70 66 6f 72 6d 73 |o do* (s|tepforms|
|00002540| 20 65 6e 64 66 6f 72 6d | 73 20 26 72 65 73 74 20 | endform|s &rest |
|00002550| 62 6f 64 79 29 20 22 60 | 64 6f 2a 27 20 69 73 20 |body) "`|do*' is |
|00002560| 74 6f 20 60 64 6f 27 20 | 61 73 20 60 6c 65 74 2a |to `do' |as `let*|
|00002570| 27 20 69 73 20 74 6f 20 | 60 6c 65 74 27 2e 0a 53 |' is to |`let'..S|
|00002580| 54 45 50 46 4f 52 4d 53 | 20 6d 75 73 74 20 62 65 |TEPFORMS| must be|
|00002590| 20 61 20 6c 69 73 74 20 | 6f 66 20 73 79 6d 62 6f | a list |of symbo|
|000025a0| 6c 73 20 6f 72 20 6c 69 | 73 74 73 2e 20 20 49 6e |ls or li|sts. In|
|000025b0| 20 74 68 65 20 73 65 63 | 6f 6e 64 20 63 61 73 65 | the sec|ond case|
|000025c0| 2c 20 74 68 65 0a 6c 69 | 73 74 73 20 6d 75 73 74 |, the.li|sts must|
|000025d0| 20 73 74 61 72 74 20 77 | 69 74 68 20 61 20 73 79 | start w|ith a sy|
|000025e0| 6d 62 6f 6c 20 61 6e 64 | 20 63 6f 6e 74 61 69 6e |mbol and| contain|
|000025f0| 20 75 70 20 74 6f 20 74 | 77 6f 20 6d 6f 72 65 20 | up to t|wo more |
|00002600| 66 6f 72 6d 73 2e 20 49 | 6e 0a 74 68 65 20 53 54 |forms. I|n.the ST|
|00002610| 45 50 46 4f 52 4d 53 2c | 20 61 20 73 79 6d 62 6f |EPFORMS,| a symbo|
|00002620| 6c 20 69 73 20 74 68 65 | 20 73 61 6d 65 20 61 73 |l is the| same as|
|00002630| 20 61 20 28 73 79 6d 62 | 6f 6c 29 2e 20 20 54 68 | a (symb|ol). Th|
|00002640| 65 20 6f 74 68 65 72 20 | 32 20 66 6f 72 6d 73 0a |e other |2 forms.|
|00002650| 61 72 65 20 74 68 65 20 | 69 6e 69 74 69 61 6c 20 |are the |initial |
|00002660| 76 61 6c 75 65 20 28 64 | 65 66 2e 20 4e 49 4c 29 |value (d|ef. NIL)|
|00002670| 20 61 6e 64 20 74 68 65 | 20 66 6f 72 6d 20 74 6f | and the| form to|
|00002680| 20 73 74 65 70 20 28 64 | 65 66 2e 20 69 74 73 65 | step (d|ef. itse|
|00002690| 6c 66 29 2e 0a 49 6e 69 | 74 69 61 6c 69 7a 61 74 |lf)..Ini|tializat|
|000026a0| 69 6f 6e 73 20 61 6e 64 | 20 73 74 65 70 70 69 6e |ions and| steppin|
|000026b0| 67 73 20 61 72 65 20 64 | 6f 6e 65 20 69 6e 20 74 |gs are d|one in t|
|000026c0| 68 65 20 73 65 71 75 65 | 6e 63 65 20 74 68 65 79 |he seque|nce they|
|000026d0| 20 61 72 65 20 77 72 69 | 74 74 65 6e 2e 0a 54 68 | are wri|tten..Th|
|000026e0| 65 20 45 4e 44 46 4f 52 | 4d 53 20 61 72 65 20 61 |e ENDFOR|MS are a|
|000026f0| 20 6c 69 73 74 20 28 43 | 4f 4e 44 49 54 49 4f 4e | list (C|ONDITION|
|00002700| 20 2e 20 45 4e 44 42 4f | 44 59 29 2e 20 20 49 66 | . ENDBO|DY). If|
|00002710| 20 74 68 65 20 43 4f 4e | 44 49 54 49 4f 4e 0a 65 | the CON|DITION.e|
|00002720| 76 61 6c 75 61 74 65 73 | 20 74 6f 20 74 72 75 65 |valuates| to true|
|00002730| 20 69 6e 20 61 6e 79 20 | 69 74 65 72 61 74 69 6f | in any |iteratio|
|00002740| 6e 2c 20 45 4e 44 42 4f | 44 59 20 69 73 20 65 76 |n, ENDBO|DY is ev|
|00002750| 61 6c 75 61 74 65 64 20 | 61 6e 64 20 74 68 65 20 |aluated |and the |
|00002760| 6c 61 73 74 0a 66 6f 72 | 6d 20 69 6e 20 69 74 20 |last.for|m in it |
|00002770| 69 73 20 72 65 74 75 72 | 6e 65 64 2e 0a 54 68 65 |is retur|ned..The|
|00002780| 20 42 4f 44 59 20 28 77 | 68 69 63 68 20 6d 61 79 | BODY (w|hich may|
|00002790| 20 62 65 20 65 6d 70 74 | 79 29 20 69 73 20 65 76 | be empt|y) is ev|
|000027a0| 61 6c 75 61 74 65 64 20 | 61 74 20 65 76 65 72 79 |aluated |at every|
|000027b0| 20 69 74 65 72 61 74 69 | 6f 6e 2c 20 77 69 74 68 | iterati|on, with|
|000027c0| 0a 74 68 65 20 73 79 6d | 62 6f 6c 73 20 6f 66 20 |.the sym|bols of |
|000027d0| 74 68 65 20 53 54 45 50 | 46 4f 52 4d 53 20 62 6f |the STEP|FORMS bo|
|000027e0| 75 6e 64 20 74 6f 20 74 | 68 65 20 69 6e 69 74 69 |und to t|he initi|
|000027f0| 61 6c 20 6f 72 20 73 74 | 65 70 70 65 64 20 76 61 |al or st|epped va|
|00002800| 6c 75 65 73 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |lues." (|byte-cod|
|00002810| 65 20 22 c7 08 21 85 09 | 00 c8 09 21 88 c9 08 21 |e "..!..|...!...!|
|00002820| ca 08 21 09 40 09 41 1d | 1c 1b 1a cb 0a cc cd 0c |..!.@.A.|........|
|00002830| 44 ce 0e 06 0b 5c 22 42 | 42 ce 0d 21 42 42 42 2c |D....\"B|B..!BBB,|
|00002840| 87 22 20 5b 73 74 65 70 | 66 6f 72 6d 73 20 65 6e |." [step|forms en|
|00002850| 64 66 6f 72 6d 73 20 69 | 6e 69 74 6c 69 73 74 20 |dforms i|nitlist |
|00002860| 73 74 65 70 6c 69 73 74 | 20 65 6e 64 63 6f 6e 64 |steplist| endcond|
|00002870| 20 65 6e 64 62 6f 64 79 | 20 62 6f 64 79 20 63 68 | endbody| body ch|
|00002880| 65 63 6b 2d 64 6f 2d 73 | 74 65 70 66 6f 72 6d 73 |eck-do-s|tepforms|
|00002890| 20 63 68 65 63 6b 2d 64 | 6f 2d 65 6e 64 66 6f 72 | check-d|o-endfor|
|000028a0| 6d 73 20 65 78 74 72 61 | 63 74 2d 64 6f 2d 69 6e |ms extra|ct-do-in|
|000028b0| 69 74 73 20 65 78 74 72 | 61 63 74 2d 64 6f 2a 2d |its extr|act-do*-|
|000028c0| 73 74 65 70 73 20 6c 65 | 74 2a 20 77 68 69 6c 65 |steps le|t* while|
|000028d0| 20 6e 6f 74 20 61 70 70 | 65 6e 64 5d 20 31 31 29 | not app|end] 11)|
|000028e0| 29 0a 0a 28 64 65 66 75 | 6e 20 63 68 65 63 6b 2d |)..(defu|n check-|
|000028f0| 64 6f 2d 73 74 65 70 66 | 6f 72 6d 73 20 28 66 6f |do-stepf|orms (fo|
|00002900| 72 6d 73 29 20 22 5c 0a | 54 72 75 65 20 69 66 20 |rms) "\.|True if |
|00002910| 46 4f 52 4d 53 20 69 73 | 20 61 20 76 61 6c 69 64 |FORMS is| a valid|
|00002920| 20 73 74 65 70 66 6f 72 | 6d 73 20 66 6f 72 20 74 | stepfor|ms for t|
|00002930| 68 65 20 64 6f 5b 2a 5d | 20 6d 61 63 72 6f 20 28 |he do[*]| macro (|
|00002940| 71 2e 76 2e 29 22 20 28 | 62 79 74 65 2d 63 6f 64 |q.v.)" (|byte-cod|
|00002950| 65 20 22 c2 08 21 83 0f | 00 c3 c4 c5 08 21 5c 22 |e "..!..|.....!\"|
|00002960| 82 13 00 c6 c7 08 5c 22 | 87 22 20 5b 66 6f 72 6d |......\"|." [form|
|00002970| 73 20 74 20 6e 6c 69 73 | 74 70 20 65 72 72 6f 72 |s t nlis|tp error|
|00002980| 20 22 49 6e 69 74 2f 53 | 74 65 70 20 66 6f 72 6d | "Init/S|tep form|
|00002990| 20 66 6f 72 20 64 6f 5b | 2a 5d 20 73 68 6f 75 6c | for do[|*] shoul|
|000029a0| 64 20 62 65 20 61 20 6c | 69 73 74 2c 20 6e 6f 74 |d be a l|ist, not|
|000029b0| 20 60 25 73 27 22 20 70 | 72 69 6e 31 2d 74 6f 2d | `%s'" p|rin1-to-|
|000029c0| 73 74 72 69 6e 67 20 6d | 61 70 63 61 72 20 28 6c |string m|apcar (l|
|000029d0| 61 6d 62 64 61 20 28 65 | 6e 74 72 79 29 20 28 62 |ambda (e|ntry) (b|
|000029e0| 79 74 65 2d 63 6f 64 65 | 20 22 08 39 86 14 00 08 |yte-code| ".9....|
|000029f0| 3c 85 14 00 08 40 39 85 | 14 00 08 47 c2 57 83 1b |<....@9.|...G.W..|
|00002a00| 00 c1 82 21 00 c3 c4 c5 | 08 21 5c 22 87 22 20 5b |...!....|.!\"." [|
|00002a10| 65 6e 74 72 79 20 74 20 | 34 20 65 72 72 6f 72 20 |entry t |4 error |
|00002a20| 22 49 6e 69 74 2f 53 74 | 65 70 20 6d 75 73 74 20 |"Init/St|ep must |
|00002a30| 62 65 20 73 79 6d 62 6f | 6c 20 6f 72 20 28 73 79 |be symbo|l or (sy|
|00002a40| 6d 62 6f 6c 20 5b 69 6e | 69 74 20 5b 73 74 65 70 |mbol [in|it [step|
|00002a50| 5d 5d 29 2c 20 6e 6f 74 | 20 60 25 73 27 22 20 70 |]]), not| `%s'" p|
|00002a60| 72 69 6e 31 2d 74 6f 2d | 73 74 72 69 6e 67 5d 20 |rin1-to-|string] |
|00002a70| 34 29 29 5d 20 36 29 29 | 0a 0a 28 64 65 66 75 6e |4))] 6))|..(defun|
|00002a80| 20 63 68 65 63 6b 2d 64 | 6f 2d 65 6e 64 66 6f 72 | check-d|o-endfor|
|00002a90| 6d 73 20 28 66 6f 72 6d | 73 29 20 22 5c 0a 54 72 |ms (form|s) "\.Tr|
|00002aa0| 75 65 20 69 66 20 46 4f | 52 4d 53 20 69 73 20 61 |ue if FO|RMS is a|
|00002ab0| 20 76 61 6c 69 64 20 65 | 6e 64 66 6f 72 6d 73 20 | valid e|ndforms |
|00002ac0| 66 6f 72 20 74 68 65 20 | 64 6f 5b 2a 5d 20 6d 61 |for the |do[*] ma|
|00002ad0| 63 72 6f 20 28 71 2e 76 | 2e 29 22 20 28 62 79 74 |cro (q.v|.)" (byt|
|00002ae0| 65 2d 63 6f 64 65 20 22 | 08 3c 83 09 00 c1 82 0f |e-code "|.<......|
|00002af0| 00 c2 c3 c4 08 21 5c 22 | 87 22 20 5b 66 6f 72 6d |.....!\"|." [form|
|00002b00| 73 20 74 20 65 72 72 6f | 72 20 22 54 65 72 6d 69 |s t erro|r "Termi|
|00002b10| 6e 61 74 69 6f 6e 20 66 | 6f 72 6d 20 66 6f 72 20 |nation f|orm for |
|00002b20| 64 6f 20 6d 61 63 72 6f | 20 73 68 6f 75 6c 64 20 |do macro| should |
|00002b30| 62 65 20 61 20 6c 69 73 | 74 2c 20 6e 6f 74 20 60 |be a lis|t, not `|
|00002b40| 25 73 27 22 20 70 72 69 | 6e 31 2d 74 6f 2d 73 74 |%s'" pri|n1-to-st|
|00002b50| 72 69 6e 67 5d 20 34 29 | 29 0a 0a 28 64 65 66 75 |ring] 4)|)..(defu|
|00002b60| 6e 20 65 78 74 72 61 63 | 74 2d 64 6f 2d 69 6e 69 |n extrac|t-do-ini|
|00002b70| 74 73 20 28 66 6f 72 6d | 73 29 20 22 5c 0a 52 65 |ts (form|s) "\.Re|
|00002b80| 74 75 72 6e 73 20 61 20 | 6c 69 73 74 20 6f 66 20 |turns a |list of |
|00002b90| 74 68 65 20 69 6e 69 74 | 69 61 6c 69 7a 61 74 69 |the init|ializati|
|00002ba0| 6f 6e 73 20 28 66 6f 72 | 20 64 6f 29 20 69 6e 20 |ons (for| do) in |
|00002bb0| 46 4f 52 4d 53 0a 2d 61 | 20 73 74 65 70 66 6f 72 |FORMS.-a| stepfor|
|00002bc0| 6d 73 2c 20 73 65 65 20 | 74 68 65 20 64 6f 20 6d |ms, see |the do m|
|00002bd0| 61 63 72 6f 2d 2e 20 46 | 6f 72 6d 73 20 69 73 20 |acro-. F|orms is |
|00002be0| 61 73 73 75 6d 65 64 20 | 73 79 6e 74 61 63 74 69 |assumed |syntacti|
|00002bf0| 63 61 6c 6c 79 20 76 61 | 6c 69 64 2e 22 20 28 62 |cally va|lid." (b|
|00002c00| 79 74 65 2d 63 6f 64 65 | 20 22 c1 c2 08 5c 22 87 |yte-code| "...\".|
|00002c10| 22 20 5b 66 6f 72 6d 73 | 20 6d 61 70 63 61 72 20 |" [forms| mapcar |
|00002c20| 28 6c 61 6d 62 64 61 20 | 28 65 6e 74 72 79 29 20 |(lambda |(entry) |
|00002c30| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 39 83 0b |(byte-co|de ".9..|
|00002c40| 00 08 c1 44 82 16 00 08 | 3c 85 16 00 08 40 c2 08 |...D....|<....@..|
|00002c50| 21 44 87 22 20 5b 65 6e | 74 72 79 20 6e 69 6c 20 |!D." [en|try nil |
|00002c60| 63 61 64 72 5d 20 33 29 | 29 5d 20 33 29 29 0a 0a |cadr] 3)|)] 3))..|
|00002c70| 28 64 65 66 75 6e 20 65 | 78 74 72 61 63 74 2d 64 |(defun e|xtract-d|
|00002c80| 6f 2d 73 74 65 70 73 20 | 28 66 6f 72 6d 73 29 20 |o-steps |(forms) |
|00002c90| 22 5c 0a 45 58 54 52 41 | 43 54 2d 44 4f 2d 53 54 |"\.EXTRA|CT-DO-ST|
|00002ca0| 45 50 53 20 46 4f 52 4d | 53 20 3d 3e 20 61 6e 20 |EPS FORM|S => an |
|00002cb0| 73 2d 65 78 70 72 0a 46 | 4f 52 4d 53 20 69 73 20 |s-expr.F|ORMS is |
|00002cc0| 74 68 65 20 73 74 65 70 | 66 6f 72 6d 73 20 70 61 |the step|forms pa|
|00002cd0| 72 74 20 6f 66 20 61 20 | 44 4f 20 6d 61 63 72 6f |rt of a |DO macro|
|00002ce0| 20 28 71 2e 76 2e 29 2e | 20 20 54 68 69 73 20 66 | (q.v.).| This f|
|00002cf0| 75 6e 63 74 69 6f 6e 0a | 63 6f 6e 73 74 72 75 63 |unction.|construc|
|00002d00| 74 73 20 61 6e 20 73 2d | 65 78 70 72 65 73 73 69 |ts an s-|expressi|
|00002d10| 6f 6e 20 74 68 61 74 20 | 64 6f 65 73 20 74 68 65 |on that |does the|
|00002d20| 20 73 74 65 70 70 69 6e | 67 20 61 74 20 74 68 65 | steppin|g at the|
|00002d30| 20 65 6e 64 20 6f 66 20 | 61 6e 0a 69 74 65 72 61 | end of |an.itera|
|00002d40| 74 69 6f 6e 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |tion." (|byte-cod|
|00002d50| 65 20 22 c1 c2 08 21 42 | 43 87 22 20 5b 66 6f 72 |e "...!B|C." [for|
|00002d60| 6d 73 20 70 73 65 74 71 | 20 73 65 6c 65 63 74 2d |ms psetq| select-|
|00002d70| 73 74 65 70 70 69 6e 67 | 2d 66 6f 72 6d 73 5d 20 |stepping|-forms] |
|00002d80| 33 29 29 0a 0a 28 64 65 | 66 75 6e 20 65 78 74 72 |3))..(de|fun extr|
|00002d90| 61 63 74 2d 64 6f 2a 2d | 73 74 65 70 73 20 28 66 |act-do*-|steps (f|
|00002da0| 6f 72 6d 73 29 20 22 5c | 0a 45 58 54 52 41 43 54 |orms) "\|.EXTRACT|
|00002db0| 2d 44 4f 2a 2d 53 54 45 | 50 53 20 46 4f 52 4d 53 |-DO*-STE|PS FORMS|
|00002dc0| 20 3d 3e 20 61 6e 20 73 | 2d 65 78 70 72 0a 46 4f | => an s|-expr.FO|
|00002dd0| 52 4d 53 20 69 73 20 74 | 68 65 20 73 74 65 70 66 |RMS is t|he stepf|
|00002de0| 6f 72 6d 73 20 70 61 72 | 74 20 6f 66 20 61 20 44 |orms par|t of a D|
|00002df0| 4f 2a 20 6d 61 63 72 6f | 20 28 71 2e 76 2e 29 2e |O* macro| (q.v.).|
|00002e00| 20 20 54 68 69 73 20 66 | 75 6e 63 74 69 6f 6e 0a | This f|unction.|
|00002e10| 63 6f 6e 73 74 72 75 63 | 74 73 20 61 6e 20 73 2d |construc|ts an s-|
|00002e20| 65 78 70 72 65 73 73 69 | 6f 6e 20 74 68 61 74 20 |expressi|on that |
|00002e30| 64 6f 65 73 20 74 68 65 | 20 73 74 65 70 70 69 6e |does the| steppin|
|00002e40| 67 20 61 74 20 74 68 65 | 20 65 6e 64 20 6f 66 20 |g at the| end of |
|00002e50| 61 6e 0a 69 74 65 72 61 | 74 69 6f 6e 2e 22 20 28 |an.itera|tion." (|
|00002e60| 62 79 74 65 2d 63 6f 64 | 65 20 22 c1 c2 08 21 42 |byte-cod|e "...!B|
|00002e70| 43 87 22 20 5b 66 6f 72 | 6d 73 20 73 65 74 71 20 |C." [for|ms setq |
|00002e80| 73 65 6c 65 63 74 2d 73 | 74 65 70 70 69 6e 67 2d |select-s|tepping-|
|00002e90| 66 6f 72 6d 73 5d 20 33 | 29 29 0a 0a 28 64 65 66 |forms] 3|))..(def|
|00002ea0| 75 6e 20 73 65 6c 65 63 | 74 2d 73 74 65 70 70 69 |un selec|t-steppi|
|00002eb0| 6e 67 2d 66 6f 72 6d 73 | 20 28 66 6f 72 6d 73 29 |ng-forms| (forms)|
|00002ec0| 20 22 5c 0a 53 65 70 61 | 72 61 74 65 20 6f 6e 6c | "\.Sepa|rate onl|
|00002ed0| 79 20 74 68 65 20 66 6f | 72 6d 73 20 74 68 61 74 |y the fo|rms that|
|00002ee0| 20 63 61 75 73 65 20 73 | 74 65 70 70 69 6e 67 2e | cause s|tepping.|
|00002ef0| 22 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c4 0a |" (byte-|code "..|
|00002f00| c4 1b 19 18 09 85 2f 00 | 09 40 89 13 88 0b 3c 85 |....../.|.@....<.|
|00002f10| 18 00 0b 47 c5 55 85 26 | 00 c6 c7 0b 21 0b 40 44 |...G.U.&|....!.@D|
|00002f20| 08 5c 22 89 10 88 09 41 | 89 11 88 82 06 00 88 c8 |.\"....A|........|
|00002f30| 08 21 2b 87 22 20 5b 72 | 65 73 75 6c 74 20 70 74 |.!+." [r|esult pt|
|00002f40| 72 20 66 6f 72 6d 73 20 | 65 6e 74 72 79 20 6e 69 |r forms |entry ni|
|00002f50| 6c 20 33 20 61 70 70 65 | 6e 64 20 63 61 64 64 72 |l 3 appe|nd caddr|
|00002f60| 20 6e 72 65 76 65 72 73 | 65 5d 20 35 29 29 0a 0a | nrevers|e] 5))..|
|00002f70| 28 64 65 66 6d 61 63 72 | 6f 20 64 6f 6c 69 73 74 |(defmacr|o dolist|
|00002f80| 20 28 73 74 65 70 66 6f | 72 6d 20 26 72 65 73 74 | (stepfo|rm &rest|
|00002f90| 20 62 6f 64 79 29 20 22 | 28 64 6f 6c 69 73 74 20 | body) "|(dolist |
|00002fa0| 28 56 41 52 20 4c 49 53 | 54 20 5b 52 45 53 55 4c |(VAR LIS|T [RESUL|
|00002fb0| 54 46 4f 52 4d 5d 29 20 | 2e 20 42 4f 44 59 29 3a |TFORM]) |. BODY):|
|00002fc0| 20 64 6f 20 42 4f 44 59 | 20 66 6f 72 20 65 61 63 | do BODY| for eac|
|00002fd0| 68 20 65 6c 74 20 6f 66 | 20 4c 49 53 54 2e 0a 54 |h elt of| LIST..T|
|00002fe0| 68 65 20 52 45 53 55 4c | 54 46 4f 52 4d 20 64 65 |he RESUL|TFORM de|
|00002ff0| 66 61 75 6c 74 73 20 74 | 6f 20 6e 69 6c 2e 20 20 |faults t|o nil. |
|00003000| 54 68 65 20 56 41 52 20 | 69 73 20 62 6f 75 6e 64 |The VAR |is bound|
|00003010| 20 74 6f 20 73 75 63 63 | 65 73 73 69 76 65 0a 65 | to succ|essive.e|
|00003020| 6c 65 6d 65 6e 74 73 20 | 6f 66 20 74 68 65 20 76 |lements |of the v|
|00003030| 61 6c 75 65 20 6f 66 20 | 4c 49 53 54 20 61 6e 64 |alue of |LIST and|
|00003040| 20 72 65 6d 61 69 6e 73 | 20 62 6f 75 6e 64 20 28 | remains| bound (|
|00003050| 74 6f 20 74 68 65 20 6e | 69 6c 20 76 61 6c 75 65 |to the n|il value|
|00003060| 29 20 77 68 65 6e 20 74 | 68 65 0a 52 45 53 55 4c |) when t|he.RESUL|
|00003070| 54 46 4f 52 4d 20 69 73 | 20 65 76 61 6c 75 61 74 |TFORM is| evaluat|
|00003080| 65 64 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ed." (by|te-code |
|00003090| 22 c6 08 21 83 0f 00 c7 | c8 c9 08 21 5c 22 82 2d |"..!....|...!\".-|
|000030a0| 00 08 40 39 3f 83 20 00 | c7 ca c9 08 40 21 5c 22 |..@9?. .|....@!\"|
|000030b0| 82 2d 00 08 47 cb 56 85 | 2d 00 c7 cc c9 08 21 5c |.-..G.V.|-.....!\|
|000030c0| 22 88 08 40 19 cd 08 21 | 1a ce 08 21 1b cf d0 d1 |"..@...!|...!....|
|000030d0| d2 09 43 0c 42 42 44 0a | 45 d3 09 c5 44 43 0b 45 |..C.BBD.|E...DC.E|
|000030e0| 45 2b 87 22 20 5b 73 74 | 65 70 66 6f 72 6d 20 76 |E+." [st|epform v|
|000030f0| 61 72 20 6c 69 73 74 66 | 6f 72 6d 20 72 65 73 75 |ar listf|orm resu|
|00003100| 6c 74 66 6f 72 6d 20 62 | 6f 64 79 20 6e 69 6c 20 |ltform b|ody nil |
|00003110| 6e 6c 69 73 74 70 20 65 | 72 72 6f 72 20 22 53 74 |nlistp e|rror "St|
|00003120| 65 70 66 6f 72 6d 20 66 | 6f 72 20 60 64 6f 6c 69 |epform f|or `doli|
|00003130| 73 74 27 20 73 68 6f 75 | 6c 64 20 62 65 20 28 56 |st' shou|ld be (V|
|00003140| 41 52 20 4c 49 53 54 20 | 5b 52 45 53 55 4c 54 5d |AR LIST |[RESULT]|
|00003150| 29 2c 20 6e 6f 74 20 60 | 25 73 27 22 20 70 72 69 |), not `|%s'" pri|
|00003160| 6e 31 2d 74 6f 2d 73 74 | 72 69 6e 67 20 22 46 69 |n1-to-st|ring "Fi|
|00003170| 72 73 74 20 63 6f 6d 70 | 6f 6e 65 6e 74 20 6f 66 |rst comp|onent of|
|00003180| 20 73 74 65 70 66 6f 72 | 6d 20 73 68 6f 75 6c 64 | stepfor|m should|
|00003190| 20 62 65 20 61 20 73 79 | 6d 62 6f 6c 2c 20 6e 6f | be a sy|mbol, no|
|000031a0| 74 20 60 25 73 27 22 20 | 33 20 22 54 6f 6f 20 6d |t `%s'" |3 "Too m|
|000031b0| 61 6e 79 20 63 6f 6d 70 | 6f 6e 65 6e 74 73 20 69 |any comp|onents i|
|000031c0| 6e 20 73 74 65 70 66 6f | 72 6d 20 60 25 73 27 22 |n stepfo|rm `%s'"|
|000031d0| 20 63 61 64 72 20 63 61 | 64 64 72 20 70 72 6f 67 | cadr ca|ddr prog|
|000031e0| 6e 20 6d 61 70 63 61 72 | 20 66 75 6e 63 74 69 6f |n mapcar| functio|
|000031f0| 6e 20 6c 61 6d 62 64 61 | 20 6c 65 74 5d 20 31 35 |n lambda| let] 15|
|00003200| 29 29 0a 0a 28 64 65 66 | 6d 61 63 72 6f 20 64 6f |))..(def|macro do|
|00003210| 74 69 6d 65 73 20 28 73 | 74 65 70 66 6f 72 6d 20 |times (s|tepform |
|00003220| 26 72 65 73 74 20 62 6f | 64 79 29 20 22 28 64 6f |&rest bo|dy) "(do|
|00003230| 74 69 6d 65 73 20 28 56 | 41 52 20 43 4f 55 4e 54 |times (V|AR COUNT|
|00003240| 46 4f 52 4d 20 5b 52 45 | 53 55 4c 54 46 4f 52 4d |FORM [RE|SULTFORM|
|00003250| 5d 29 20 2e 20 20 42 4f | 44 59 29 3a 20 52 65 70 |]) . BO|DY): Rep|
|00003260| 65 61 74 20 42 4f 44 59 | 2c 20 63 6f 75 6e 74 69 |eat BODY|, counti|
|00003270| 6e 67 20 69 6e 20 56 41 | 52 2e 0a 54 68 65 20 43 |ng in VA|R..The C|
|00003280| 4f 55 4e 54 46 4f 52 4d | 20 73 68 6f 75 6c 64 20 |OUNTFORM| should |
|00003290| 72 65 74 75 72 6e 20 61 | 20 70 6f 73 69 74 69 76 |return a| positiv|
|000032a0| 65 20 69 6e 74 65 67 65 | 72 2e 20 20 54 68 65 20 |e intege|r. The |
|000032b0| 56 41 52 20 69 73 20 62 | 6f 75 6e 64 20 74 6f 0a |VAR is b|ound to.|
|000032c0| 73 75 63 63 65 73 73 69 | 76 65 20 69 6e 74 65 67 |successi|ve integ|
|000032d0| 65 72 73 20 66 72 6f 6d | 20 30 20 74 6f 20 43 4f |ers from| 0 to CO|
|000032e0| 55 4e 54 46 4f 52 4d 2d | 31 20 61 6e 64 20 74 68 |UNTFORM-|1 and th|
|000032f0| 65 20 42 4f 44 59 20 69 | 73 20 72 65 70 65 61 74 |e BODY i|s repeat|
|00003300| 65 64 20 66 6f 72 0a 65 | 61 63 68 20 6f 66 20 74 |ed for.e|ach of t|
|00003310| 68 65 6d 2e 20 20 41 74 | 20 74 68 65 20 65 6e 64 |hem. At| the end|
|00003320| 2c 20 74 68 65 20 52 45 | 53 55 4c 54 46 4f 52 4d |, the RE|SULTFORM|
|00003330| 20 69 73 20 65 76 61 6c | 75 61 74 65 64 20 61 6e | is eval|uated an|
|00003340| 64 20 69 74 73 20 76 61 | 6c 75 65 0a 72 65 74 75 |d its va|lue.retu|
|00003350| 72 6e 65 64 2e 20 44 75 | 72 69 6e 67 20 74 68 69 |rned. Du|ring thi|
|00003360| 73 20 6c 61 73 74 20 65 | 76 61 6c 75 61 74 69 6f |s last e|valuatio|
|00003370| 6e 2c 20 74 68 65 20 56 | 41 52 20 69 73 20 73 74 |n, the V|AR is st|
|00003380| 69 6c 6c 20 62 6f 75 6e | 64 2c 20 61 6e 64 20 69 |ill boun|d, and i|
|00003390| 74 73 0a 76 61 6c 75 65 | 20 69 73 20 74 68 65 20 |ts.value| is the |
|000033a0| 6e 75 6d 62 65 72 20 6f | 66 20 74 69 6d 65 73 20 |number o|f times |
|000033b0| 74 68 65 20 69 74 65 72 | 61 74 69 6f 6e 20 6f 63 |the iter|ation oc|
|000033c0| 63 75 72 72 65 64 2e 20 | 41 6e 20 6f 6d 69 74 74 |curred. |An omitt|
|000033d0| 65 64 20 52 45 53 55 4c | 54 46 4f 52 4d 0a 64 65 |ed RESUL|TFORM.de|
|000033e0| 66 61 75 6c 74 73 20 74 | 6f 20 6e 69 6c 2e 22 20 |faults t|o nil." |
|000033f0| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c6 08 21 83 |(byte-co|de "..!.|
|00003400| 0f 00 c7 c8 c9 08 21 5c | 22 82 2d 00 08 40 39 3f |......!\|".-..@9?|
|00003410| 83 20 00 c7 ca c9 08 40 | 21 5c 22 82 2d 00 08 47 |. .....@|!\".-..G|
|00003420| cb 56 85 2d 00 c7 cc c9 | 08 21 5c 22 88 08 40 19 |.V.-....|.!\"..@.|
|00003430| cd 08 21 1a ce 08 21 1b | cf 20 1c d0 0c 0a 44 43 |..!...!.|. ....DC|
|00003440| d1 d2 09 d3 d4 09 d5 45 | 45 43 d6 09 0c 45 0b 44 |.......E|EC...E.D|
|00003450| 0d 24 45 2c 87 22 20 5b | 73 74 65 70 66 6f 72 6d |.$E,." [|stepform|
|00003460| 20 76 61 72 20 63 6f 75 | 6e 74 66 6f 72 6d 20 72 | var cou|ntform r|
|00003470| 65 73 75 6c 74 66 6f 72 | 6d 20 6e 65 77 73 79 6d |esultfor|m newsym|
|00003480| 20 62 6f 64 79 20 6e 6c | 69 73 74 70 20 65 72 72 | body nl|istp err|
|00003490| 6f 72 20 22 53 74 65 70 | 66 6f 72 6d 20 66 6f 72 |or "Step|form for|
|000034a0| 20 60 64 6f 74 69 6d 65 | 73 27 20 73 68 6f 75 6c | `dotime|s' shoul|
|000034b0| 64 20 62 65 20 28 56 41 | 52 20 43 4f 55 4e 54 20 |d be (VA|R COUNT |
|000034c0| 5b 52 45 53 55 4c 54 5d | 29 2c 20 6e 6f 74 20 60 |[RESULT]|), not `|
|000034d0| 25 73 27 22 20 70 72 69 | 6e 31 2d 74 6f 2d 73 74 |%s'" pri|n1-to-st|
|000034e0| 72 69 6e 67 20 22 46 69 | 72 73 74 20 63 6f 6d 70 |ring "Fi|rst comp|
|000034f0| 6f 6e 65 6e 74 20 6f 66 | 20 73 74 65 70 66 6f 72 |onent of| stepfor|
|00003500| 6d 20 73 68 6f 75 6c 64 | 20 62 65 20 61 20 73 79 |m should| be a sy|
|00003510| 6d 62 6f 6c 2c 20 6e 6f | 74 20 60 25 73 27 22 20 |mbol, no|t `%s'" |
|00003520| 33 20 22 54 6f 6f 20 6d | 61 6e 79 20 63 6f 6d 70 |3 "Too m|any comp|
|00003530| 6f 6e 65 6e 74 73 20 69 | 6e 20 73 74 65 70 66 6f |onents i|n stepfo|
|00003540| 72 6d 20 60 25 73 27 22 | 20 63 61 64 72 20 63 61 |rm `%s'"| cadr ca|
|00003550| 64 64 72 20 67 65 6e 74 | 65 6d 70 20 6c 65 74 2a |ddr gent|emp let*|
|00003560| 20 6c 69 73 74 2a 20 64 | 6f 2a 20 30 20 2b 20 31 | list* d|o* 0 + 1|
|00003570| 20 3e 3d 5d 20 31 39 29 | 29 0a 0a 28 64 65 66 6d | >=] 19)|)..(defm|
|00003580| 61 63 72 6f 20 64 6f 2d | 73 79 6d 62 6f 6c 73 20 |acro do-|symbols |
|00003590| 28 73 74 65 70 66 6f 72 | 6d 20 26 72 65 73 74 20 |(stepfor|m &rest |
|000035a0| 62 6f 64 79 29 20 22 28 | 64 6f 5f 73 79 6d 62 6f |body) "(|do_symbo|
|000035b0| 6c 73 20 28 56 41 52 20 | 5b 4f 42 41 52 52 41 59 |ls (VAR |[OBARRAY|
|000035c0| 20 5b 52 45 53 55 4c 54 | 46 4f 52 4d 5d 5d 29 20 | [RESULT|FORM]]) |
|000035d0| 2e 20 42 4f 44 59 29 0a | 54 68 65 20 56 41 52 20 |. BODY).|The VAR |
|000035e0| 69 73 20 62 6f 75 6e 64 | 20 74 6f 20 65 61 63 68 |is bound| to each|
|000035f0| 20 6f 66 20 74 68 65 20 | 73 79 6d 62 6f 6c 73 20 | of the |symbols |
|00003600| 69 6e 20 4f 42 41 52 52 | 41 59 20 28 64 65 66 2e |in OBARR|AY (def.|
|00003610| 20 6f 62 61 72 72 61 79 | 29 20 61 6e 64 0a 74 68 | obarray|) and.th|
|00003620| 65 20 42 4f 44 59 20 69 | 73 20 72 65 70 65 61 74 |e BODY i|s repeat|
|00003630| 65 64 6c 79 20 70 65 72 | 66 6f 72 6d 65 64 20 66 |edly per|formed f|
|00003640| 6f 72 20 65 61 63 68 20 | 6f 66 20 74 68 6f 73 65 |or each |of those|
|00003650| 20 62 69 6e 64 69 6e 67 | 73 2e 20 41 74 20 74 68 | binding|s. At th|
|00003660| 65 0a 65 6e 64 2c 20 52 | 45 53 55 4c 54 46 4f 52 |e.end, R|ESULTFOR|
|00003670| 4d 20 28 64 65 66 2e 20 | 6e 69 6c 29 20 69 73 20 |M (def. |nil) is |
|00003680| 65 76 61 6c 75 61 74 65 | 64 20 61 6e 64 20 69 74 |evaluate|d and it|
|00003690| 73 20 76 61 6c 75 65 20 | 72 65 74 75 72 6e 65 64 |s value |returned|
|000036a0| 2e 0a 44 75 72 69 6e 67 | 20 74 68 69 73 20 6c 61 |..During| this la|
|000036b0| 73 74 20 65 76 61 6c 75 | 61 74 69 6f 6e 2c 20 74 |st evalu|ation, t|
|000036c0| 68 65 20 56 41 52 20 69 | 73 20 73 74 69 6c 6c 20 |he VAR i|s still |
|000036d0| 62 6f 75 6e 64 20 61 6e | 64 20 69 74 73 20 76 61 |bound an|d its va|
|000036e0| 6c 75 65 20 69 73 20 6e | 69 6c 2e 0a 53 65 65 20 |lue is n|il..See |
|000036f0| 61 6c 73 6f 20 74 68 65 | 20 66 75 6e 63 74 69 6f |also the| functio|
|00003700| 6e 20 60 6d 61 70 61 74 | 6f 6d 73 27 2e 22 20 28 |n `mapat|oms'." (|
|00003710| 62 79 74 65 2d 63 6f 64 | 65 20 22 c6 08 21 83 0f |byte-cod|e "..!..|
|00003720| 00 c7 c8 c9 08 21 5c 22 | 82 2d 00 08 40 39 3f 83 |.....!\"|.-..@9?.|
|00003730| 20 00 c7 ca c9 08 40 21 | 5c 22 82 2d 00 08 47 cb | .....@!|\".-..G.|
|00003740| 56 85 2d 00 c7 cc c9 08 | 21 5c 22 88 08 40 19 cd |V.-.....|!\"..@..|
|00003750| 08 21 1a ce 08 21 1b cf | d0 d1 d2 09 43 0c 42 42 |.!...!..|....C.BB|
|00003760| 44 0a 45 d3 09 c5 44 43 | 0b 45 45 2b 87 22 20 5b |D.E...DC|.EE+." [|
|00003770| 73 74 65 70 66 6f 72 6d | 20 76 61 72 20 6f 62 6c |stepform| var obl|
|00003780| 69 73 74 20 72 65 73 75 | 6c 74 66 6f 72 6d 20 62 |ist resu|ltform b|
|00003790| 6f 64 79 20 6e 69 6c 20 | 6e 6c 69 73 74 70 20 65 |ody nil |nlistp e|
|000037a0| 72 72 6f 72 20 22 53 74 | 65 70 66 6f 72 6d 20 66 |rror "St|epform f|
|000037b0| 6f 72 20 60 64 6f 2d 73 | 79 6d 62 6f 6c 73 27 20 |or `do-s|ymbols' |
|000037c0| 73 68 6f 75 6c 64 20 62 | 65 20 28 56 41 52 20 4f |should b|e (VAR O|
|000037d0| 42 41 52 52 41 59 20 5b | 52 45 53 55 4c 54 5d 29 |BARRAY [|RESULT])|
|000037e0| 2c 20 6e 6f 74 20 60 25 | 73 27 22 20 70 72 69 6e |, not `%|s'" prin|
|000037f0| 31 2d 74 6f 2d 73 74 72 | 69 6e 67 20 22 46 69 72 |1-to-str|ing "Fir|
|00003800| 73 74 20 63 6f 6d 70 6f | 6e 65 6e 74 20 6f 66 20 |st compo|nent of |
|00003810| 73 74 65 70 66 6f 72 6d | 20 73 68 6f 75 6c 64 20 |stepform| should |
|00003820| 62 65 20 61 20 73 79 6d | 62 6f 6c 2c 20 6e 6f 74 |be a sym|bol, not|
|00003830| 20 60 25 73 27 22 20 33 | 20 22 54 6f 6f 20 6d 61 | `%s'" 3| "Too ma|
|00003840| 6e 79 20 63 6f 6d 70 6f | 6e 65 6e 74 73 20 69 6e |ny compo|nents in|
|00003850| 20 73 74 65 70 66 6f 72 | 6d 20 60 25 73 27 22 20 | stepfor|m `%s'" |
|00003860| 63 61 64 72 20 63 61 64 | 64 72 20 70 72 6f 67 6e |cadr cad|dr progn|
|00003870| 20 6d 61 70 61 74 6f 6d | 73 20 66 75 6e 63 74 69 | mapatom|s functi|
|00003880| 6f 6e 20 6c 61 6d 62 64 | 61 20 6c 65 74 5d 20 31 |on lambd|a let] 1|
|00003890| 35 29 29 0a 0a 28 64 65 | 66 6d 61 63 72 6f 20 64 |5))..(de|fmacro d|
|000038a0| 6f 2d 61 6c 6c 2d 73 79 | 6d 62 6f 6c 73 20 28 73 |o-all-sy|mbols (s|
|000038b0| 74 65 70 66 6f 72 6d 20 | 26 72 65 73 74 20 62 6f |tepform |&rest bo|
|000038c0| 64 79 29 20 22 28 64 6f | 2d 61 6c 6c 2d 73 79 6d |dy) "(do|-all-sym|
|000038d0| 62 6f 6c 73 20 28 56 41 | 52 20 5b 52 45 53 55 4c |bols (VA|R [RESUL|
|000038e0| 54 46 4f 52 4d 5d 29 20 | 2e 20 42 4f 44 59 29 0a |TFORM]) |. BODY).|
|000038f0| 49 73 20 74 68 65 20 73 | 61 6d 65 20 61 73 20 28 |Is the s|ame as (|
|00003900| 64 6f 2d 73 79 6d 62 6f | 6c 73 20 28 56 41 52 20 |do-symbo|ls (VAR |
|00003910| 6f 62 61 72 72 61 79 20 | 52 45 53 55 4c 54 46 4f |obarray |RESULTFO|
|00003920| 52 4d 29 20 2e 20 42 4f | 44 59 29 2e 22 20 28 62 |RM) . BO|DY)." (b|
|00003930| 79 74 65 2d 63 6f 64 65 | 20 22 c2 c3 08 40 c4 c5 |yte-code| "...@..|
|00003940| 08 21 45 09 23 87 22 20 | 5b 73 74 65 70 66 6f 72 |.!E.#." |[stepfor|
|00003950| 6d 20 62 6f 64 79 20 6c | 69 73 74 2a 20 64 6f 2d |m body l|ist* do-|
|00003960| 73 79 6d 62 6f 6c 73 20 | 6f 62 61 72 72 61 79 20 |symbols |obarray |
|00003970| 63 61 64 72 5d 20 36 29 | 29 0a 0a 28 64 65 66 6d |cadr] 6)|)..(defm|
|00003980| 61 63 72 6f 20 6c 6f 6f | 70 20 28 26 72 65 73 74 |acro loo|p (&rest|
|00003990| 20 62 6f 64 79 29 20 22 | 28 6c 6f 6f 70 20 2e 20 | body) "|(loop . |
|000039a0| 42 4f 44 59 29 20 72 65 | 70 65 61 74 73 20 42 4f |BODY) re|peats BO|
|000039b0| 44 59 20 69 6e 64 65 66 | 69 6e 69 74 65 6c 79 20 |DY indef|initely |
|000039c0| 61 6e 64 20 64 6f 65 73 | 20 6e 6f 74 20 72 65 74 |and does| not ret|
|000039d0| 75 72 6e 2e 0a 4e 6f 72 | 6d 61 6c 6c 79 20 42 4f |urn..Nor|mally BO|
|000039e0| 44 59 20 75 73 65 73 20 | 60 74 68 72 6f 77 27 20 |DY uses |`throw' |
|000039f0| 6f 72 20 60 73 69 67 6e | 61 6c 27 20 74 6f 20 63 |or `sign|al' to c|
|00003a00| 61 75 73 65 20 61 6e 20 | 65 78 69 74 2e 0a 54 68 |ause an |exit..Th|
|00003a10| 65 20 66 6f 72 6d 73 20 | 69 6e 20 42 4f 44 59 20 |e forms |in BODY |
|00003a20| 73 68 6f 75 6c 64 20 62 | 65 20 6c 69 73 74 73 2c |should b|e lists,|
|00003a30| 20 61 73 20 6e 6f 6e 2d | 6c 69 73 74 73 20 61 72 | as non-|lists ar|
|00003a40| 65 20 72 65 73 65 72 76 | 65 64 20 66 6f 72 20 6e |e reserv|ed for n|
|00003a50| 65 77 20 66 65 61 74 75 | 72 65 73 2e 22 20 28 62 |ew featu|res." (b|
|00003a60| 79 74 65 2d 63 6f 64 65 | 20 22 c1 08 21 83 0c 00 |yte-code| "..!...|
|00003a70| c2 c3 21 82 16 00 c4 c5 | 08 5c 22 88 c6 c7 08 42 |..!.....|.\"....B|
|00003a80| 42 87 22 20 5b 62 6f 64 | 79 20 6e 6c 69 73 74 70 |B." [bod|y nlistp|
|00003a90| 20 65 72 72 6f 72 20 22 | 42 6f 64 79 20 6f 66 20 | error "|Body of |
|00003aa0| 60 6c 6f 6f 70 27 20 73 | 68 6f 75 6c 64 20 62 65 |`loop' s|hould be|
|00003ab0| 20 61 20 6c 69 73 74 20 | 6f 66 20 6c 69 73 74 73 | a list |of lists|
|00003ac0| 20 6f 72 20 6e 69 6c 22 | 20 6d 61 70 63 61 72 20 | or nil"| mapcar |
|00003ad0| 28 6c 61 6d 62 64 61 20 | 28 63 6f 6d 70 6f 6e 65 |(lambda |(compone|
|00003ae0| 6e 74 29 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |nt) (byt|e-code "|
|00003af0| c1 08 21 85 09 00 c2 c3 | 21 87 22 20 5b 63 6f 6d |..!.....|!." [com|
|00003b00| 70 6f 6e 65 6e 74 20 6e | 6c 69 73 74 70 20 65 72 |ponent n|listp er|
|00003b10| 72 6f 72 20 22 43 6f 6d | 70 6f 6e 65 6e 74 73 20 |ror "Com|ponents |
|00003b20| 6f 66 20 60 6c 6f 6f 70 | 27 20 73 68 6f 75 6c 64 |of `loop|' should|
|00003b30| 20 62 65 20 6c 69 73 74 | 73 22 5d 20 33 29 29 20 | be list|s"] 3)) |
|00003b40| 77 68 69 6c 65 20 74 5d | 20 36 29 29 0a 0a 28 64 |while t]| 6))..(d|
|00003b50| 65 66 75 6e 20 66 69 72 | 73 74 20 28 78 29 20 22 |efun fir|st (x) "|
|00003b60| 5c 0a 53 79 6e 6f 6e 79 | 6d 20 66 6f 72 20 60 63 |\.Synony|m for `c|
|00003b70| 61 72 27 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ar'" (by|te-code |
|00003b80| 22 08 40 87 22 20 5b 78 | 5d 20 31 29 29 0a 0a 28 |".@." [x|] 1))..(|
|00003b90| 64 65 66 75 6e 20 73 65 | 63 6f 6e 64 20 28 78 29 |defun se|cond (x)|
|00003ba0| 20 22 5c 0a 52 65 74 75 | 72 6e 20 74 68 65 20 73 | "\.Retu|rn the s|
|00003bb0| 65 63 6f 6e 64 20 65 6c | 65 6d 65 6e 74 20 6f 66 |econd el|ement of|
|00003bc0| 20 74 68 65 20 6c 69 73 | 74 20 4c 49 53 54 2e 22 | the lis|t LIST."|
|00003bd0| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c1 08 38 | (byte-c|ode "..8|
|00003be0| 87 22 20 5b 78 20 31 5d | 20 32 29 29 0a 0a 28 64 |." [x 1]| 2))..(d|
|00003bf0| 65 66 75 6e 20 74 68 69 | 72 64 20 28 78 29 20 22 |efun thi|rd (x) "|
|00003c00| 5c 0a 52 65 74 75 72 6e | 20 74 68 65 20 74 68 69 |\.Return| the thi|
|00003c10| 72 64 20 65 6c 65 6d 65 | 6e 74 20 6f 66 20 74 68 |rd eleme|nt of th|
|00003c20| 65 20 6c 69 73 74 20 4c | 49 53 54 2e 22 20 28 62 |e list L|IST." (b|
|00003c30| 79 74 65 2d 63 6f 64 65 | 20 22 c1 08 38 87 22 20 |yte-code| "..8." |
|00003c40| 5b 78 20 32 5d 20 32 29 | 29 0a 0a 28 64 65 66 75 |[x 2] 2)|)..(defu|
|00003c50| 6e 20 66 6f 75 72 74 68 | 20 28 78 29 20 22 5c 0a |n fourth| (x) "\.|
|00003c60| 52 65 74 75 72 6e 20 74 | 68 65 20 66 6f 75 72 74 |Return t|he fourt|
|00003c70| 68 20 65 6c 65 6d 65 6e | 74 20 6f 66 20 74 68 65 |h elemen|t of the|
|00003c80| 20 6c 69 73 74 20 4c 49 | 53 54 2e 22 20 28 62 79 | list LI|ST." (by|
|00003c90| 74 65 2d 63 6f 64 65 20 | 22 c1 08 38 87 22 20 5b |te-code |"..8." [|
|00003ca0| 78 20 33 5d 20 32 29 29 | 0a 0a 28 64 65 66 75 6e |x 3] 2))|..(defun|
|00003cb0| 20 66 69 66 74 68 20 28 | 78 29 20 22 5c 0a 52 65 | fifth (|x) "\.Re|
|00003cc0| 74 75 72 6e 20 74 68 65 | 20 66 69 66 74 68 20 65 |turn the| fifth e|
|00003cd0| 6c 65 6d 65 6e 74 20 6f | 66 20 74 68 65 20 6c 69 |lement o|f the li|
|00003ce0| 73 74 20 4c 49 53 54 2e | 22 20 28 62 79 74 65 2d |st LIST.|" (byte-|
|00003cf0| 63 6f 64 65 20 22 c1 08 | 38 87 22 20 5b 78 20 34 |code "..|8." [x 4|
|00003d00| 5d 20 32 29 29 0a 0a 28 | 64 65 66 75 6e 20 73 69 |] 2))..(|defun si|
|00003d10| 78 74 68 20 28 78 29 20 | 22 5c 0a 52 65 74 75 72 |xth (x) |"\.Retur|
|00003d20| 6e 20 74 68 65 20 73 69 | 78 74 68 20 65 6c 65 6d |n the si|xth elem|
|00003d30| 65 6e 74 20 6f 66 20 74 | 68 65 20 6c 69 73 74 20 |ent of t|he list |
|00003d40| 4c 49 53 54 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |LIST." (|byte-cod|
|00003d50| 65 20 22 c1 08 38 87 22 | 20 5b 78 20 35 5d 20 32 |e "..8."| [x 5] 2|
|00003d60| 29 29 0a 0a 28 64 65 66 | 75 6e 20 73 65 76 65 6e |))..(def|un seven|
|00003d70| 74 68 20 28 78 29 20 22 | 5c 0a 52 65 74 75 72 6e |th (x) "|\.Return|
|00003d80| 20 74 68 65 20 73 65 76 | 65 6e 74 68 20 65 6c 65 | the sev|enth ele|
|00003d90| 6d 65 6e 74 20 6f 66 20 | 74 68 65 20 6c 69 73 74 |ment of |the list|
|00003da0| 20 4c 49 53 54 2e 22 20 | 28 62 79 74 65 2d 63 6f | LIST." |(byte-co|
|00003db0| 64 65 20 22 c1 08 38 87 | 22 20 5b 78 20 36 5d 20 |de "..8.|" [x 6] |
|00003dc0| 32 29 29 0a 0a 28 64 65 | 66 75 6e 20 65 69 67 68 |2))..(de|fun eigh|
|00003dd0| 74 68 20 28 78 29 20 22 | 5c 0a 52 65 74 75 72 6e |th (x) "|\.Return|
|00003de0| 20 74 68 65 20 65 69 67 | 68 74 68 20 65 6c 65 6d | the eig|hth elem|
|00003df0| 65 6e 74 20 6f 66 20 74 | 68 65 20 6c 69 73 74 20 |ent of t|he list |
|00003e00| 4c 49 53 54 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |LIST." (|byte-cod|
|00003e10| 65 20 22 c1 08 38 87 22 | 20 5b 78 20 37 5d 20 32 |e "..8."| [x 7] 2|
|00003e20| 29 29 0a 0a 28 64 65 66 | 75 6e 20 6e 69 6e 74 68 |))..(def|un ninth|
|00003e30| 20 28 78 29 20 22 5c 0a | 52 65 74 75 72 6e 20 74 | (x) "\.|Return t|
|00003e40| 68 65 20 6e 69 6e 74 68 | 20 65 6c 65 6d 65 6e 74 |he ninth| element|
|00003e50| 20 6f 66 20 74 68 65 20 | 6c 69 73 74 20 4c 49 53 | of the |list LIS|
|00003e60| 54 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |T." (byt|e-code "|
|00003e70| c1 08 38 87 22 20 5b 78 | 20 38 5d 20 32 29 29 0a |..8." [x| 8] 2)).|
|00003e80| 0a 28 64 65 66 75 6e 20 | 74 65 6e 74 68 20 28 78 |.(defun |tenth (x|
|00003e90| 29 20 22 5c 0a 52 65 74 | 75 72 6e 20 74 68 65 20 |) "\.Ret|urn the |
|00003ea0| 74 65 6e 74 68 20 65 6c | 65 6d 65 6e 74 20 6f 66 |tenth el|ement of|
|00003eb0| 20 74 68 65 20 6c 69 73 | 74 20 4c 49 53 54 2e 22 | the lis|t LIST."|
|00003ec0| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c1 08 38 | (byte-c|ode "..8|
|00003ed0| 87 22 20 5b 78 20 39 5d | 20 32 29 29 0a 0a 28 64 |." [x 9]| 2))..(d|
|00003ee0| 65 66 75 6e 20 72 65 73 | 74 20 28 78 29 20 22 5c |efun res|t (x) "\|
|00003ef0| 0a 53 79 6e 6f 6e 79 6d | 20 66 6f 72 20 60 63 64 |.Synonym| for `cd|
|00003f00| 72 27 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |r'" (byt|e-code "|
|00003f10| 08 41 87 22 20 5b 78 5d | 20 31 29 29 0a 0a 28 64 |.A." [x]| 1))..(d|
|00003f20| 65 66 75 6e 20 65 6e 64 | 70 20 28 78 29 20 22 5c |efun end|p (x) "\|
|00003f30| 0a 74 20 69 66 20 58 20 | 69 73 20 6e 69 6c 2c 20 |.t if X |is nil, |
|00003f40| 6e 69 6c 20 69 66 20 58 | 20 69 73 20 61 20 63 6f |nil if X| is a co|
|00003f50| 6e 73 3b 20 65 72 72 6f | 72 20 6f 74 68 65 72 77 |ns; erro|r otherw|
|00003f60| 69 73 65 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |ise." (b|yte-code|
|00003f70| 20 22 08 3c 83 0a 00 08 | 3f 82 10 00 c1 c2 c3 08 | ".<....|?.......|
|00003f80| 21 5c 22 87 22 20 5b 78 | 20 65 72 72 6f 72 20 22 |!\"." [x| error "|
|00003f90| 65 6e 64 70 20 72 65 63 | 65 69 76 65 64 20 61 20 |endp rec|eived a |
|00003fa0| 6e 6f 6e 2d 63 6f 6e 73 | 2c 20 6e 6f 6e 2d 6e 75 |non-cons|, non-nu|
|00003fb0| 6c 6c 20 61 72 67 75 6d | 65 6e 74 20 60 25 73 27 |ll argum|ent `%s'|
|00003fc0| 22 20 70 72 69 6e 31 2d | 74 6f 2d 73 74 72 69 6e |" prin1-|to-strin|
|00003fd0| 67 5d 20 34 29 29 0a 0a | 28 64 65 66 75 6e 20 6c |g] 4))..|(defun l|
|00003fe0| 61 73 74 20 28 78 29 20 | 22 5c 0a 52 65 74 75 72 |ast (x) |"\.Retur|
|00003ff0| 6e 73 20 74 68 65 20 6c | 61 73 74 20 6c 69 6e 6b |ns the l|ast link|
|00004000| 20 69 6e 20 74 68 65 20 | 6c 69 73 74 20 4c 49 53 | in the |list LIS|
|00004010| 54 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |T." (byt|e-code "|
|00004020| c6 08 21 85 09 00 c7 c8 | 21 88 08 08 41 1a 19 c9 |..!.....|!...A...|
|00004030| 0a 21 3f 85 28 00 09 41 | 0a 41 1c 1b 0b 11 0c 89 |.!?.(..A|.A......|
|00004040| 12 88 c5 2a 88 82 0f 00 | 88 09 2a 87 22 20 5b 78 |...*....|..*." [x|
|00004050| 20 63 75 72 72 65 6e 74 | 2d 63 6f 6e 73 20 6e 65 | current|-cons ne|
|00004060| 78 74 2d 63 6f 6e 73 20 | 47 24 24 5f 39 20 47 24 |xt-cons |G$$_9 G$|
|00004070| 24 5f 38 20 6e 69 6c 20 | 6e 6c 69 73 74 70 20 65 |$_8 nil |nlistp e|
|00004080| 72 72 6f 72 20 22 41 72 | 67 20 74 6f 20 60 6c 61 |rror "Ar|g to `la|
|00004090| 73 74 27 20 6d 75 73 74 | 20 62 65 20 61 20 6c 69 |st' must| be a li|
|000040a0| 73 74 22 20 65 6e 64 70 | 5d 20 36 29 29 0a 0a 28 |st" endp|] 6))..(|
|000040b0| 64 65 66 75 6e 20 6c 69 | 73 74 2d 6c 65 6e 67 74 |defun li|st-lengt|
|000040c0| 68 20 28 78 29 20 22 5c | 0a 52 65 74 75 72 6e 73 |h (x) "\|.Returns|
|000040d0| 20 74 68 65 20 6c 65 6e | 67 74 68 20 6f 66 20 61 | the len|gth of a|
|000040e0| 20 6e 6f 6e 2d 63 69 72 | 63 75 6c 61 72 20 6c 69 | non-cir|cular li|
|000040f0| 73 74 2c 20 6f 72 20 60 | 6e 69 6c 27 20 66 6f 72 |st, or `|nil' for|
|00004100| 20 61 20 63 69 72 63 75 | 6c 61 72 20 6f 6e 65 2e | a circu|lar one.|
|00004110| 22 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c9 0a |" (byte-|code "..|
|00004120| 0a c5 1c 1b 19 18 0c 3f | 85 5f 00 ca 09 21 83 19 |.......?|._...!..|
|00004130| 00 c6 89 14 82 47 00 ca | 09 41 21 83 2c 00 08 cb |.....G..|.A!.,...|
|00004140| 5c 5c 89 10 88 c6 89 14 | 82 47 00 09 0b 3d 85 35 |\\......|.G...=.5|
|00004150| 00 08 c9 56 83 42 00 c5 | 89 10 88 c6 89 14 82 47 |...V.B..|.......G|
|00004160| 00 08 cc 5c 5c 89 10 88 | cd 09 21 0b 41 1e 08 1e |...\\...|..!.A...|
|00004170| 07 0e 07 11 0e 08 89 13 | 88 c5 2a 88 82 08 00 88 |........|..*.....|
|00004180| 08 2c 87 22 20 5b 6e 20 | 66 61 73 74 20 78 20 73 |.,." [n |fast x s|
|00004190| 6c 6f 77 20 72 65 61 64 | 79 20 6e 69 6c 20 74 20 |low read|y nil t |
|000041a0| 47 24 24 5f 31 31 20 47 | 24 24 5f 31 30 20 30 20 |G$$_11 G|$$_10 0 |
|000041b0| 65 6e 64 70 20 31 20 32 | 20 63 64 64 72 5d 20 36 |endp 1 2| cddr] 6|
|000041c0| 29 29 0a 0a 28 64 65 66 | 75 6e 20 6d 65 6d 62 65 |))..(def|un membe|
|000041d0| 72 20 28 69 74 65 6d 20 | 6c 69 73 74 29 20 22 5c |r (item |list) "\|
|000041e0| 0a 4c 6f 6f 6b 20 66 6f | 72 20 49 54 45 4d 20 69 |.Look fo|r ITEM i|
|000041f0| 6e 20 4c 49 53 54 3b 20 | 72 65 74 75 72 6e 20 66 |n LIST; |return f|
|00004200| 69 72 73 74 20 6c 69 6e | 6b 20 69 6e 20 4c 49 53 |irst lin|k in LIS|
|00004210| 54 20 77 68 6f 73 65 20 | 63 61 72 20 69 73 20 60 |T whose |car is `|
|00004220| 65 71 6c 27 20 74 6f 20 | 49 54 45 4d 2e 22 20 28 |eql' to |ITEM." (|
|00004230| 62 79 74 65 2d 63 6f 64 | 65 20 22 09 c3 c3 1c 1a |byte-cod|e ".....|
|00004240| 18 0a 86 0d 00 c7 08 21 | 3f 85 28 00 0d 08 40 3d |.......!|?.(...@=|
|00004250| 85 1f 00 c6 89 12 88 08 | 89 14 88 08 41 89 10 88 |........|....A...|
|00004260| 82 06 00 88 0c 2b 87 22 | 20 5b 70 74 72 20 6c 69 |.....+."| [ptr li|
|00004270| 73 74 20 64 6f 6e 65 20 | 6e 69 6c 20 72 65 73 75 |st done |nil resu|
|00004280| 6c 74 20 69 74 65 6d 20 | 74 20 65 6e 64 70 5d 20 |lt item |t endp] |
|00004290| 34 29 29 0a 0a 28 64 65 | 66 75 6e 20 62 75 74 6c |4))..(de|fun butl|
|000042a0| 61 73 74 20 28 6c 69 73 | 74 20 26 6f 70 74 69 6f |ast (lis|t &optio|
|000042b0| 6e 61 6c 20 6e 29 20 22 | 5c 0a 52 65 74 75 72 6e |nal n) "|\.Return|
|000042c0| 20 61 20 6e 65 77 20 6c | 69 73 74 20 6c 69 6b 65 | a new l|ist like|
|000042d0| 20 4c 49 53 54 20 62 75 | 74 20 73 61 6e 73 20 74 | LIST bu|t sans t|
|000042e0| 68 65 20 6c 61 73 74 20 | 4e 20 65 6c 65 6d 65 6e |he last |N elemen|
|000042f0| 74 73 2e 0a 4e 20 64 65 | 66 61 75 6c 74 73 20 74 |ts..N de|faults t|
|00004300| 6f 20 31 2e 20 20 49 66 | 20 74 68 65 20 6c 69 73 |o 1. If| the lis|
|00004310| 74 20 64 6f 65 73 6e 27 | 74 20 68 61 76 65 20 4e |t doesn'|t have N|
|00004320| 20 65 6c 65 6d 65 6e 74 | 73 2c 20 6e 69 6c 20 69 | element|s, nil i|
|00004330| 73 20 72 65 74 75 72 6e | 65 64 2e 22 20 28 62 79 |s return|ed." (by|
|00004340| 74 65 2d 63 6f 64 65 20 | 22 08 3f 85 08 00 c2 89 |te-code |".?.....|
|00004350| 10 88 c3 c4 08 c3 09 21 | 5c 22 21 87 22 20 5b 6e |.......!|\"!." [n|
|00004360| 20 6c 69 73 74 20 31 20 | 72 65 76 65 72 73 65 20 | list 1 |reverse |
|00004370| 6e 74 68 63 64 72 5d 20 | 35 29 29 0a 0a 28 64 65 |nthcdr] |5))..(de|
|00004380| 66 75 6e 20 6c 69 73 74 | 2a 20 28 61 72 67 20 26 |fun list|* (arg &|
|00004390| 72 65 73 74 20 6f 74 68 | 65 72 73 29 20 22 5c 0a |rest oth|ers) "\.|
|000043a0| 52 65 74 75 72 6e 20 61 | 20 6e 65 77 20 6c 69 73 |Return a| new lis|
|000043b0| 74 20 63 6f 6e 74 61 69 | 6e 69 6e 67 20 74 68 65 |t contai|ning the|
|000043c0| 20 66 69 72 73 74 20 61 | 72 67 75 6d 65 6e 74 73 | first a|rguments|
|000043d0| 20 63 6f 6e 73 65 64 20 | 6f 6e 74 6f 20 74 68 65 | consed |onto the|
|000043e0| 20 6c 61 73 74 20 61 72 | 67 2e 0a 54 68 75 73 2c | last ar|g..Thus,|
|000043f0| 20 28 6c 69 73 74 2a 20 | 31 20 32 20 33 20 27 28 | (list* |1 2 3 '(|
|00004400| 61 20 62 29 29 20 72 65 | 74 75 72 6e 73 20 28 31 |a b)) re|turns (1|
|00004410| 20 32 20 33 20 61 20 62 | 29 2e 22 20 28 62 79 74 | 2 3 a b|)." (byt|
|00004420| 65 2d 63 6f 64 65 20 22 | 08 3f 83 09 00 09 82 1f |e-code "|.?......|
|00004430| 00 09 08 42 1a c5 0a 21 | 1b c6 0a 21 1c c7 c6 0b |...B...!|...!....|
|00004440| 21 0c 40 5c 22 88 0b 2b | 87 22 20 5b 6f 74 68 65 |!.@\"..+|." [othe|
|00004450| 72 73 20 61 72 67 20 61 | 6c 6c 61 72 67 73 20 66 |rs arg a|llargs f|
|00004460| 72 6f 6e 74 20 62 61 63 | 6b 20 62 75 74 6c 61 73 |ront bac|k butlas|
|00004470| 74 20 6c 61 73 74 20 72 | 70 6c 61 63 64 5d 20 36 |t last r|placd] 6|
|00004480| 29 29 0a 0a 28 64 65 66 | 75 6e 20 61 64 6a 6f 69 |))..(def|un adjoi|
|00004490| 6e 20 28 69 74 65 6d 20 | 6c 69 73 74 29 20 22 5c |n (item |list) "\|
|000044a0| 0a 52 65 74 75 72 6e 20 | 61 20 6c 69 73 74 20 77 |.Return |a list w|
|000044b0| 68 69 63 68 20 63 6f 6e | 74 61 69 6e 73 20 49 54 |hich con|tains IT|
|000044c0| 45 4d 20 62 75 74 20 69 | 73 20 6f 74 68 65 72 77 |EM but i|s otherw|
|000044d0| 69 73 65 20 6c 69 6b 65 | 20 4c 49 53 54 2e 0a 49 |ise like| LIST..I|
|000044e0| 66 20 49 54 45 4d 20 6f | 63 63 75 72 73 20 69 6e |f ITEM o|ccurs in|
|000044f0| 20 4c 49 53 54 2c 20 74 | 68 65 20 76 61 6c 75 65 | LIST, t|he value|
|00004500| 20 69 73 20 4c 49 53 54 | 2e 20 20 4f 74 68 65 72 | is LIST|. Other|
|00004510| 77 69 73 65 20 69 74 20 | 69 73 20 28 63 6f 6e 73 |wise it |is (cons|
|00004520| 20 49 54 45 4d 20 4c 49 | 53 54 29 2e 0a 57 68 65 | ITEM LI|ST)..Whe|
|00004530| 6e 20 63 6f 6d 70 61 72 | 69 6e 67 20 49 54 45 4d |n compar|ing ITEM|
|00004540| 20 61 67 61 69 6e 73 74 | 20 65 6c 65 6d 65 6e 74 | against| element|
|00004550| 73 2c 20 60 65 71 6c 27 | 20 69 73 20 75 73 65 64 |s, `eql'| is used|
|00004560| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c3 |." (byte|-code ".|
|00004570| 08 09 5c 22 83 0b 00 09 | 82 0e 00 08 09 42 87 22 |..\"....|.....B."|
|00004580| 20 5b 69 74 65 6d 20 6c | 69 73 74 20 74 20 6d 65 | [item l|ist t me|
|00004590| 6d 62 65 72 5d 20 33 29 | 29 0a 0a 28 64 65 66 75 |mber] 3)|)..(defu|
|000045a0| 6e 20 6c 64 69 66 66 20 | 28 6c 69 73 74 20 73 75 |n ldiff |(list su|
|000045b0| 62 6c 69 73 74 29 20 22 | 5c 0a 52 65 74 75 72 6e |blist) "|\.Return|
|000045c0| 20 61 20 6e 65 77 20 6c | 69 73 74 20 6c 69 6b 65 | a new l|ist like|
|000045d0| 20 4c 49 53 54 20 62 75 | 74 20 73 61 6e 73 20 53 | LIST bu|t sans S|
|000045e0| 55 42 4c 49 53 54 2e 0a | 53 55 42 4c 49 53 54 20 |UBLIST..|SUBLIST |
|000045f0| 6d 75 73 74 20 62 65 20 | 6f 6e 65 20 6f 66 20 74 |must be |one of t|
|00004600| 68 65 20 6c 69 6e 6b 73 | 20 69 6e 20 4c 49 53 54 |he links| in LIST|
|00004610| 3b 20 6f 74 68 65 72 77 | 69 73 65 20 74 68 65 20 |; otherw|ise the |
|00004620| 76 61 6c 75 65 20 69 73 | 20 4c 49 53 54 20 69 74 |value is| LIST it|
|00004630| 73 65 6c 66 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |self." (|byte-cod|
|00004640| 65 20 22 c5 0a 19 18 c6 | 09 21 86 0d 00 09 0b 3d |e ".....|.!.....=|
|00004650| 3f 85 25 00 09 40 08 42 | 89 10 88 09 41 1c 0c 89 |?.%..@.B|....A...|
|00004660| 11 88 c5 29 88 82 04 00 | 88 c7 08 21 2a 87 22 20 |...)....|...!*." |
|00004670| 5b 72 65 73 75 6c 74 20 | 63 75 72 63 6f 6e 73 20 |[result |curcons |
|00004680| 6c 69 73 74 20 73 75 62 | 6c 69 73 74 20 47 24 24 |list sub|list G$$|
|00004690| 5f 31 32 20 6e 69 6c 20 | 65 6e 64 70 20 72 65 76 |_12 nil |endp rev|
|000046a0| 65 72 73 65 5d 20 34 29 | 29 0a 0a 28 64 65 66 75 |erse] 4)|)..(defu|
|000046b0| 6e 20 63 61 61 72 20 28 | 58 29 20 22 5c 0a 52 65 |n caar (|X) "\.Re|
|000046c0| 74 75 72 6e 20 74 68 65 | 20 63 61 72 20 6f 66 20 |turn the| car of |
|000046d0| 74 68 65 20 63 61 72 20 | 6f 66 20 58 2e 22 20 28 |the car |of X." (|
|000046e0| 62 79 74 65 2d 63 6f 64 | 65 20 22 08 40 40 87 22 |byte-cod|e ".@@."|
|000046f0| 20 5b 58 5d 20 31 29 29 | 0a 0a 28 64 65 66 75 6e | [X] 1))|..(defun|
|00004700| 20 63 61 64 72 20 28 58 | 29 20 22 5c 0a 52 65 74 | cadr (X|) "\.Ret|
|00004710| 75 72 6e 20 74 68 65 20 | 63 61 72 20 6f 66 20 74 |urn the |car of t|
|00004720| 68 65 20 63 64 72 20 6f | 66 20 58 2e 22 20 28 62 |he cdr o|f X." (b|
|00004730| 79 74 65 2d 63 6f 64 65 | 20 22 08 41 40 87 22 20 |yte-code| ".A@." |
|00004740| 5b 58 5d 20 31 29 29 0a | 0a 28 64 65 66 75 6e 20 |[X] 1)).|.(defun |
|00004750| 63 64 61 72 20 28 58 29 | 20 22 5c 0a 52 65 74 75 |cdar (X)| "\.Retu|
|00004760| 72 6e 20 74 68 65 20 63 | 64 72 20 6f 66 20 74 68 |rn the c|dr of th|
|00004770| 65 20 63 61 72 20 6f 66 | 20 58 2e 22 20 28 62 79 |e car of| X." (by|
|00004780| 74 65 2d 63 6f 64 65 20 | 22 08 40 41 87 22 20 5b |te-code |".@A." [|
|00004790| 58 5d 20 31 29 29 0a 0a | 28 64 65 66 75 6e 20 63 |X] 1))..|(defun c|
|000047a0| 64 64 72 20 28 58 29 20 | 22 5c 0a 52 65 74 75 72 |ddr (X) |"\.Retur|
|000047b0| 6e 20 74 68 65 20 63 64 | 72 20 6f 66 20 74 68 65 |n the cd|r of the|
|000047c0| 20 63 64 72 20 6f 66 20 | 58 2e 22 20 28 62 79 74 | cdr of |X." (byt|
|000047d0| 65 2d 63 6f 64 65 20 22 | 08 41 41 87 22 20 5b 58 |e-code "|.AA." [X|
|000047e0| 5d 20 31 29 29 0a 0a 28 | 64 65 66 75 6e 20 63 61 |] 1))..(|defun ca|
|000047f0| 61 61 72 20 28 58 29 20 | 22 5c 0a 52 65 74 75 72 |aar (X) |"\.Retur|
|00004800| 6e 20 74 68 65 20 63 61 | 72 20 6f 66 20 74 68 65 |n the ca|r of the|
|00004810| 20 63 61 72 20 6f 66 20 | 74 68 65 20 63 61 72 20 | car of |the car |
|00004820| 6f 66 20 58 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |of X." (|byte-cod|
|00004830| 65 20 22 08 40 40 40 87 | 22 20 5b 58 5d 20 31 29 |e ".@@@.|" [X] 1)|
|00004840| 29 0a 0a 28 64 65 66 75 | 6e 20 63 61 61 64 72 20 |)..(defu|n caadr |
|00004850| 28 58 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 74 68 |(X) "\.R|eturn th|
|00004860| 65 20 63 61 72 20 6f 66 | 20 74 68 65 20 63 61 72 |e car of| the car|
|00004870| 20 6f 66 20 74 68 65 20 | 63 64 72 20 6f 66 20 58 | of the |cdr of X|
|00004880| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|00004890| 41 40 40 87 22 20 5b 58 | 5d 20 31 29 29 0a 0a 28 |A@@." [X|] 1))..(|
|000048a0| 64 65 66 75 6e 20 63 61 | 64 61 72 20 28 58 29 20 |defun ca|dar (X) |
|000048b0| 22 5c 0a 52 65 74 75 72 | 6e 20 74 68 65 20 63 61 |"\.Retur|n the ca|
|000048c0| 72 20 6f 66 20 74 68 65 | 20 63 64 72 20 6f 66 20 |r of the| cdr of |
|000048d0| 74 68 65 20 63 61 72 20 | 6f 66 20 58 2e 22 20 28 |the car |of X." (|
|000048e0| 62 79 74 65 2d 63 6f 64 | 65 20 22 08 40 41 40 87 |byte-cod|e ".@A@.|
|000048f0| 22 20 5b 58 5d 20 31 29 | 29 0a 0a 28 64 65 66 75 |" [X] 1)|)..(defu|
|00004900| 6e 20 63 64 61 61 72 20 | 28 58 29 20 22 5c 0a 52 |n cdaar |(X) "\.R|
|00004910| 65 74 75 72 6e 20 74 68 | 65 20 63 64 72 20 6f 66 |eturn th|e cdr of|
|00004920| 20 74 68 65 20 63 61 72 | 20 6f 66 20 74 68 65 20 | the car| of the |
|00004930| 63 61 72 20 6f 66 20 58 | 2e 22 20 28 62 79 74 65 |car of X|." (byte|
|00004940| 2d 63 6f 64 65 20 22 08 | 40 40 41 87 22 20 5b 58 |-code ".|@@A." [X|
|00004950| 5d 20 31 29 29 0a 0a 28 | 64 65 66 75 6e 20 63 61 |] 1))..(|defun ca|
|00004960| 64 64 72 20 28 58 29 20 | 22 5c 0a 52 65 74 75 72 |ddr (X) |"\.Retur|
|00004970| 6e 20 74 68 65 20 63 61 | 72 20 6f 66 20 74 68 65 |n the ca|r of the|
|00004980| 20 63 64 72 20 6f 66 20 | 74 68 65 20 63 64 72 20 | cdr of |the cdr |
|00004990| 6f 66 20 58 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |of X." (|byte-cod|
|000049a0| 65 20 22 08 41 41 40 87 | 22 20 5b 58 5d 20 31 29 |e ".AA@.|" [X] 1)|
|000049b0| 29 0a 0a 28 64 65 66 75 | 6e 20 63 64 61 64 72 20 |)..(defu|n cdadr |
|000049c0| 28 58 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 74 68 |(X) "\.R|eturn th|
|000049d0| 65 20 63 64 72 20 6f 66 | 20 74 68 65 20 63 61 72 |e cdr of| the car|
|000049e0| 20 6f 66 20 74 68 65 20 | 63 64 72 20 6f 66 20 58 | of the |cdr of X|
|000049f0| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|00004a00| 41 40 41 87 22 20 5b 58 | 5d 20 31 29 29 0a 0a 28 |A@A." [X|] 1))..(|
|00004a10| 64 65 66 75 6e 20 63 64 | 64 61 72 20 28 58 29 20 |defun cd|dar (X) |
|00004a20| 22 5c 0a 52 65 74 75 72 | 6e 20 74 68 65 20 63 64 |"\.Retur|n the cd|
|00004a30| 72 20 6f 66 20 74 68 65 | 20 63 64 72 20 6f 66 20 |r of the| cdr of |
|00004a40| 74 68 65 20 63 61 72 20 | 6f 66 20 58 2e 22 20 28 |the car |of X." (|
|00004a50| 62 79 74 65 2d 63 6f 64 | 65 20 22 08 40 41 41 87 |byte-cod|e ".@AA.|
|00004a60| 22 20 5b 58 5d 20 31 29 | 29 0a 0a 28 64 65 66 75 |" [X] 1)|)..(defu|
|00004a70| 6e 20 63 64 64 64 72 20 | 28 58 29 20 22 5c 0a 52 |n cdddr |(X) "\.R|
|00004a80| 65 74 75 72 6e 20 74 68 | 65 20 63 64 72 20 6f 66 |eturn th|e cdr of|
|00004a90| 20 74 68 65 20 63 64 72 | 20 6f 66 20 74 68 65 20 | the cdr| of the |
|00004aa0| 63 64 72 20 6f 66 20 58 | 2e 22 20 28 62 79 74 65 |cdr of X|." (byte|
|00004ab0| 2d 63 6f 64 65 20 22 08 | 41 41 41 87 22 20 5b 58 |-code ".|AAA." [X|
|00004ac0| 5d 20 31 29 29 0a 0a 28 | 64 65 66 75 6e 20 63 61 |] 1))..(|defun ca|
|00004ad0| 61 61 61 72 20 28 58 29 | 20 22 5c 0a 52 65 74 75 |aaar (X)| "\.Retu|
|00004ae0| 72 6e 20 74 68 65 20 63 | 61 72 20 6f 66 20 74 68 |rn the c|ar of th|
|00004af0| 65 20 63 61 72 20 6f 66 | 20 74 68 65 20 63 61 72 |e car of| the car|
|00004b00| 20 6f 66 20 74 68 65 20 | 63 61 72 20 6f 66 20 58 | of the |car of X|
|00004b10| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|00004b20| 40 40 40 40 87 22 20 5b | 58 5d 20 31 29 29 0a 0a |@@@@." [|X] 1))..|
|00004b30| 28 64 65 66 75 6e 20 63 | 61 61 61 64 72 20 28 58 |(defun c|aaadr (X|
|00004b40| 29 20 22 5c 0a 52 65 74 | 75 72 6e 20 74 68 65 20 |) "\.Ret|urn the |
|00004b50| 63 61 72 20 6f 66 20 74 | 68 65 20 63 61 72 20 6f |car of t|he car o|
|00004b60| 66 20 74 68 65 20 63 61 | 72 20 6f 66 20 74 68 65 |f the ca|r of the|
|00004b70| 20 63 64 72 20 6f 66 20 | 58 2e 22 20 28 62 79 74 | cdr of |X." (byt|
|00004b80| 65 2d 63 6f 64 65 20 22 | 08 41 40 40 40 87 22 20 |e-code "|.A@@@." |
|00004b90| 5b 58 5d 20 31 29 29 0a | 0a 28 64 65 66 75 6e 20 |[X] 1)).|.(defun |
|00004ba0| 63 61 61 64 61 72 20 28 | 58 29 20 22 5c 0a 52 65 |caadar (|X) "\.Re|
|00004bb0| 74 75 72 6e 20 74 68 65 | 20 63 61 72 20 6f 66 20 |turn the| car of |
|00004bc0| 74 68 65 20 63 61 72 20 | 6f 66 20 74 68 65 20 63 |the car |of the c|
|00004bd0| 64 72 20 6f 66 20 74 68 | 65 20 63 61 72 20 6f 66 |dr of th|e car of|
|00004be0| 20 58 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 | X." (by|te-code |
|00004bf0| 22 08 40 41 40 40 87 22 | 20 5b 58 5d 20 31 29 29 |".@A@@."| [X] 1))|
|00004c00| 0a 0a 28 64 65 66 75 6e | 20 63 61 64 61 61 72 20 |..(defun| cadaar |
|00004c10| 28 58 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 74 68 |(X) "\.R|eturn th|
|00004c20| 65 20 63 61 72 20 6f 66 | 20 74 68 65 20 63 64 72 |e car of| the cdr|
|00004c30| 20 6f 66 20 74 68 65 20 | 63 61 72 20 6f 66 20 74 | of the |car of t|
|00004c40| 68 65 20 63 61 72 20 6f | 66 20 58 2e 22 20 28 62 |he car o|f X." (b|
|00004c50| 79 74 65 2d 63 6f 64 65 | 20 22 08 40 40 41 40 87 |yte-code| ".@@A@.|
|00004c60| 22 20 5b 58 5d 20 31 29 | 29 0a 0a 28 64 65 66 75 |" [X] 1)|)..(defu|
|00004c70| 6e 20 63 64 61 61 61 72 | 20 28 58 29 20 22 5c 0a |n cdaaar| (X) "\.|
|00004c80| 52 65 74 75 72 6e 20 74 | 68 65 20 63 64 72 20 6f |Return t|he cdr o|
|00004c90| 66 20 74 68 65 20 63 61 | 72 20 6f 66 20 74 68 65 |f the ca|r of the|
|00004ca0| 20 63 61 72 20 6f 66 20 | 74 68 65 20 63 61 72 20 | car of |the car |
|00004cb0| 6f 66 20 58 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |of X." (|byte-cod|
|00004cc0| 65 20 22 08 40 40 40 41 | 87 22 20 5b 58 5d 20 31 |e ".@@@A|." [X] 1|
|00004cd0| 29 29 0a 0a 28 64 65 66 | 75 6e 20 63 61 61 64 64 |))..(def|un caadd|
|00004ce0| 72 20 28 58 29 20 22 5c | 0a 52 65 74 75 72 6e 20 |r (X) "\|.Return |
|00004cf0| 74 68 65 20 63 61 72 20 | 6f 66 20 74 68 65 20 63 |the car |of the c|
|00004d00| 61 72 20 6f 66 20 74 68 | 65 20 63 64 72 20 6f 66 |ar of th|e cdr of|
|00004d10| 20 74 68 65 20 63 64 72 | 20 6f 66 20 58 2e 22 20 | the cdr| of X." |
|00004d20| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 41 41 40 |(byte-co|de ".AA@|
|00004d30| 40 87 22 20 5b 58 5d 20 | 31 29 29 0a 0a 28 64 65 |@." [X] |1))..(de|
|00004d40| 66 75 6e 20 63 61 64 61 | 64 72 20 28 58 29 20 22 |fun cada|dr (X) "|
|00004d50| 5c 0a 52 65 74 75 72 6e | 20 74 68 65 20 63 61 72 |\.Return| the car|
|00004d60| 20 6f 66 20 74 68 65 20 | 63 64 72 20 6f 66 20 74 | of the |cdr of t|
|00004d70| 68 65 20 63 61 72 20 6f | 66 20 74 68 65 20 63 64 |he car o|f the cd|
|00004d80| 72 20 6f 66 20 58 2e 22 | 20 28 62 79 74 65 2d 63 |r of X."| (byte-c|
|00004d90| 6f 64 65 20 22 08 41 40 | 41 40 87 22 20 5b 58 5d |ode ".A@|A@." [X]|
|00004da0| 20 31 29 29 0a 0a 28 64 | 65 66 75 6e 20 63 64 61 | 1))..(d|efun cda|
|00004db0| 61 64 72 20 28 58 29 20 | 22 5c 0a 52 65 74 75 72 |adr (X) |"\.Retur|
|00004dc0| 6e 20 74 68 65 20 63 64 | 72 20 6f 66 20 74 68 65 |n the cd|r of the|
|00004dd0| 20 63 61 72 20 6f 66 20 | 74 68 65 20 63 61 72 20 | car of |the car |
|00004de0| 6f 66 20 74 68 65 20 63 | 64 72 20 6f 66 20 58 2e |of the c|dr of X.|
|00004df0| 22 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 08 41 |" (byte-|code ".A|
|00004e00| 40 40 41 87 22 20 5b 58 | 5d 20 31 29 29 0a 0a 28 |@@A." [X|] 1))..(|
|00004e10| 64 65 66 75 6e 20 63 61 | 64 64 61 72 20 28 58 29 |defun ca|ddar (X)|
|00004e20| 20 22 5c 0a 52 65 74 75 | 72 6e 20 74 68 65 20 63 | "\.Retu|rn the c|
|00004e30| 61 72 20 6f 66 20 74 68 | 65 20 63 64 72 20 6f 66 |ar of th|e cdr of|
|00004e40| 20 74 68 65 20 63 64 72 | 20 6f 66 20 74 68 65 20 | the cdr| of the |
|00004e50| 63 61 72 20 6f 66 20 58 | 2e 22 20 28 62 79 74 65 |car of X|." (byte|
|00004e60| 2d 63 6f 64 65 20 22 08 | 40 41 41 40 87 22 20 5b |-code ".|@AA@." [|
|00004e70| 58 5d 20 31 29 29 0a 0a | 28 64 65 66 75 6e 20 63 |X] 1))..|(defun c|
|00004e80| 64 61 64 61 72 20 28 58 | 29 20 22 5c 0a 52 65 74 |dadar (X|) "\.Ret|
|00004e90| 75 72 6e 20 74 68 65 20 | 63 64 72 20 6f 66 20 74 |urn the |cdr of t|
|00004ea0| 68 65 20 63 61 72 20 6f | 66 20 74 68 65 20 63 64 |he car o|f the cd|
|00004eb0| 72 20 6f 66 20 74 68 65 | 20 63 61 72 20 6f 66 20 |r of the| car of |
|00004ec0| 58 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |X." (byt|e-code "|
|00004ed0| 08 40 41 40 41 87 22 20 | 5b 58 5d 20 31 29 29 0a |.@A@A." |[X] 1)).|
|00004ee0| 0a 28 64 65 66 75 6e 20 | 63 64 64 61 61 72 20 28 |.(defun |cddaar (|
|00004ef0| 58 29 20 22 5c 0a 52 65 | 74 75 72 6e 20 74 68 65 |X) "\.Re|turn the|
|00004f00| 20 63 64 72 20 6f 66 20 | 74 68 65 20 63 64 72 20 | cdr of |the cdr |
|00004f10| 6f 66 20 74 68 65 20 63 | 61 72 20 6f 66 20 74 68 |of the c|ar of th|
|00004f20| 65 20 63 61 72 20 6f 66 | 20 58 2e 22 20 28 62 79 |e car of| X." (by|
|00004f30| 74 65 2d 63 6f 64 65 20 | 22 08 40 40 41 41 87 22 |te-code |".@@AA."|
|00004f40| 20 5b 58 5d 20 31 29 29 | 0a 0a 28 64 65 66 75 6e | [X] 1))|..(defun|
|00004f50| 20 63 61 64 64 64 72 20 | 28 58 29 20 22 5c 0a 52 | cadddr |(X) "\.R|
|00004f60| 65 74 75 72 6e 20 74 68 | 65 20 63 61 72 20 6f 66 |eturn th|e car of|
|00004f70| 20 74 68 65 20 63 64 72 | 20 6f 66 20 74 68 65 20 | the cdr| of the |
|00004f80| 63 64 72 20 6f 66 20 74 | 68 65 20 63 64 72 20 6f |cdr of t|he cdr o|
|00004f90| 66 20 58 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |f X." (b|yte-code|
|00004fa0| 20 22 08 41 41 41 40 87 | 22 20 5b 58 5d 20 31 29 | ".AAA@.|" [X] 1)|
|00004fb0| 29 0a 0a 28 64 65 66 75 | 6e 20 63 64 64 61 64 72 |)..(defu|n cddadr|
|00004fc0| 20 28 58 29 20 22 5c 0a | 52 65 74 75 72 6e 20 74 | (X) "\.|Return t|
|00004fd0| 68 65 20 63 64 72 20 6f | 66 20 74 68 65 20 63 64 |he cdr o|f the cd|
|00004fe0| 72 20 6f 66 20 74 68 65 | 20 63 61 72 20 6f 66 20 |r of the| car of |
|00004ff0| 74 68 65 20 63 64 72 20 | 6f 66 20 58 2e 22 20 28 |the cdr |of X." (|
|00005000| 62 79 74 65 2d 63 6f 64 | 65 20 22 08 41 40 41 41 |byte-cod|e ".A@AA|
|00005010| 87 22 20 5b 58 5d 20 31 | 29 29 0a 0a 28 64 65 66 |." [X] 1|))..(def|
|00005020| 75 6e 20 63 64 61 64 64 | 72 20 28 58 29 20 22 5c |un cdadd|r (X) "\|
|00005030| 0a 52 65 74 75 72 6e 20 | 74 68 65 20 63 64 72 20 |.Return |the cdr |
|00005040| 6f 66 20 74 68 65 20 63 | 61 72 20 6f 66 20 74 68 |of the c|ar of th|
|00005050| 65 20 63 64 72 20 6f 66 | 20 74 68 65 20 63 64 72 |e cdr of| the cdr|
|00005060| 20 6f 66 20 58 2e 22 20 | 28 62 79 74 65 2d 63 6f | of X." |(byte-co|
|00005070| 64 65 20 22 08 41 41 40 | 41 87 22 20 5b 58 5d 20 |de ".AA@|A." [X] |
|00005080| 31 29 29 0a 0a 28 64 65 | 66 75 6e 20 63 64 64 64 |1))..(de|fun cddd|
|00005090| 61 72 20 28 58 29 20 22 | 5c 0a 52 65 74 75 72 6e |ar (X) "|\.Return|
|000050a0| 20 74 68 65 20 63 64 72 | 20 6f 66 20 74 68 65 20 | the cdr| of the |
|000050b0| 63 64 72 20 6f 66 20 74 | 68 65 20 63 64 72 20 6f |cdr of t|he cdr o|
|000050c0| 66 20 74 68 65 20 63 61 | 72 20 6f 66 20 58 2e 22 |f the ca|r of X."|
|000050d0| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 08 40 41 | (byte-c|ode ".@A|
|000050e0| 41 41 87 22 20 5b 58 5d | 20 31 29 29 0a 0a 28 64 |AA." [X]| 1))..(d|
|000050f0| 65 66 75 6e 20 63 64 64 | 64 64 72 20 28 58 29 20 |efun cdd|ddr (X) |
|00005100| 22 5c 0a 52 65 74 75 72 | 6e 20 74 68 65 20 63 64 |"\.Retur|n the cd|
|00005110| 72 20 6f 66 20 74 68 65 | 20 63 64 72 20 6f 66 20 |r of the| cdr of |
|00005120| 74 68 65 20 63 64 72 20 | 6f 66 20 74 68 65 20 63 |the cdr |of the c|
|00005130| 64 72 20 6f 66 20 58 2e | 22 20 28 62 79 74 65 2d |dr of X.|" (byte-|
|00005140| 63 6f 64 65 20 22 08 41 | 41 41 41 87 22 20 5b 58 |code ".A|AAA." [X|
|00005150| 5d 20 31 29 29 0a 0a 28 | 64 65 66 75 6e 20 73 65 |] 1))..(|defun se|
|00005160| 74 6e 74 68 20 28 6e 20 | 6c 69 73 74 20 6e 65 77 |tnth (n |list new|
|00005170| 76 61 6c 29 20 22 5c 0a | 53 65 74 20 28 6e 74 68 |val) "\.|Set (nth|
|00005180| 20 4e 20 4c 49 53 54 29 | 20 74 6f 20 4e 45 57 56 | N LIST)| to NEWV|
|00005190| 41 4c 2e 20 20 52 65 74 | 75 72 6e 73 20 4e 45 57 |AL. Ret|urns NEW|
|000051a0| 56 41 4c 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |VAL." (b|yte-code|
|000051b0| 20 22 c3 c4 08 09 5c 22 | 0a 5c 22 87 22 20 5b 6e | "....\"|.\"." [n|
|000051c0| 20 6c 69 73 74 20 6e 65 | 77 76 61 6c 20 72 70 6c | list ne|wval rpl|
|000051d0| 61 63 61 20 6e 74 68 63 | 64 72 5d 20 34 29 29 0a |aca nthc|dr] 4)).|
|000051e0| 0a 28 64 65 66 75 6e 20 | 73 65 74 6e 74 68 63 64 |.(defun |setnthcd|
|000051f0| 72 20 28 6e 20 6c 69 73 | 74 20 6e 65 77 76 61 6c |r (n lis|t newval|
|00005200| 29 20 22 5c 0a 53 45 54 | 4e 54 48 43 44 52 20 4e |) "\.SET|NTHCDR N|
|00005210| 20 4c 49 53 54 20 4e 45 | 57 56 41 4c 20 3d 3e 20 | LIST NE|WVAL => |
|00005220| 4e 45 57 56 41 4c 0a 41 | 73 20 61 20 73 69 64 65 |NEWVAL.A|s a side|
|00005230| 20 65 66 66 65 63 74 2c | 20 73 65 74 73 20 74 68 | effect,| sets th|
|00005240| 65 20 4e 74 68 20 63 64 | 72 20 6f 66 20 4c 49 53 |e Nth cd|r of LIS|
|00005250| 54 20 74 6f 20 4e 45 57 | 56 41 4c 2e 22 20 28 62 |T to NEW|VAL." (b|
|00005260| 79 74 65 2d 63 6f 64 65 | 20 22 08 c4 57 83 0d 00 |yte-code| "..W...|
|00005270| c5 c6 08 5c 22 82 2c 00 | 08 c4 55 83 23 00 c7 09 |...\".,.|..U.#...|
|00005280| 0a 40 5c 22 88 c8 09 0a | 41 5c 22 88 0a 82 2c 00 |.@\"....|A\"...,.|
|00005290| c8 c9 08 ca 5a 09 5c 22 | 0a 5c 22 87 22 20 5b 6e |....Z.\"|.\"." [n|
|000052a0| 20 6c 69 73 74 20 6e 65 | 77 76 61 6c 20 74 20 30 | list ne|wval t 0|
|000052b0| 20 65 72 72 6f 72 20 22 | 4e 20 6d 75 73 74 20 62 | error "|N must b|
|000052c0| 65 20 30 20 6f 72 20 67 | 72 65 61 74 65 72 2c 20 |e 0 or g|reater, |
|000052d0| 6e 6f 74 20 25 64 22 20 | 72 70 6c 61 63 61 20 72 |not %d" |rplaca r|
|000052e0| 70 6c 61 63 64 20 6e 74 | 68 63 64 72 20 31 5d 20 |placd nt|hcdr 1] |
|000052f0| 37 29 29 0a 0a 28 64 65 | 66 75 6e 20 61 63 6f 6e |7))..(de|fun acon|
|00005300| 73 20 28 6b 65 79 20 69 | 74 65 6d 20 61 6c 69 73 |s (key i|tem alis|
|00005310| 74 29 20 22 5c 0a 52 65 | 74 75 72 6e 20 61 20 6e |t) "\.Re|turn a n|
|00005320| 65 77 20 61 6c 69 73 74 | 20 77 69 74 68 20 4b 45 |ew alist| with KE|
|00005330| 59 20 70 61 69 72 65 64 | 20 77 69 74 68 20 49 54 |Y paired| with IT|
|00005340| 45 4d 3b 20 6f 74 68 65 | 72 77 69 73 65 20 6c 69 |EM; othe|rwise li|
|00005350| 6b 65 20 41 4c 49 53 54 | 2e 0a 44 6f 65 73 20 6e |ke ALIST|..Does n|
|00005360| 6f 74 20 63 6f 70 79 20 | 41 4c 49 53 54 2e 22 20 |ot copy |ALIST." |
|00005370| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 09 42 0a |(byte-co|de "..B.|
|00005380| 42 87 22 20 5b 6b 65 79 | 20 69 74 65 6d 20 61 6c |B." [key| item al|
|00005390| 69 73 74 5d 20 32 29 29 | 0a 0a 28 64 65 66 75 6e |ist] 2))|..(defun|
|000053a0| 20 70 61 69 72 6c 69 73 | 20 28 6b 65 79 73 20 64 | pairlis| (keys d|
|000053b0| 61 74 61 20 26 6f 70 74 | 69 6f 6e 61 6c 20 61 6c |ata &opt|ional al|
|000053c0| 69 73 74 29 20 22 5c 0a | 52 65 74 75 72 6e 20 61 |ist) "\.|Return a|
|000053d0| 20 6e 65 77 20 61 6c 69 | 73 74 20 77 69 74 68 20 | new ali|st with |
|000053e0| 65 61 63 68 20 65 6c 74 | 20 6f 66 20 4b 45 59 53 |each elt| of KEYS|
|000053f0| 20 70 61 69 72 65 64 20 | 77 69 74 68 20 61 6e 20 | paired |with an |
|00005400| 65 6c 74 20 6f 66 20 44 | 41 54 41 3b 0a 6f 70 74 |elt of D|ATA;.opt|
|00005410| 69 6f 6e 61 6c 20 33 72 | 64 20 61 72 67 20 41 4c |ional 3r|d arg AL|
|00005420| 49 53 54 20 69 73 20 6e | 63 6f 6e 63 27 64 20 61 |IST is n|conc'd a|
|00005430| 74 20 74 68 65 20 65 6e | 64 2e 20 20 4b 45 59 53 |t the en|d. KEYS|
|00005440| 20 61 6e 64 20 44 41 54 | 41 20 6d 75 73 74 0a 68 | and DAT|A must.h|
|00005450| 61 76 65 20 74 68 65 20 | 73 61 6d 65 20 6c 65 6e |ave the |same len|
|00005460| 67 74 68 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |gth." (b|yte-code|
|00005470| 20 22 08 47 09 47 55 83 | 0c 00 c2 82 0f 00 c9 ca | ".G.GU.|........|
|00005480| 21 88 08 1b 09 1c 0b 40 | 1d 0c 40 1e 06 0e 08 1e |!......@|..@.....|
|00005490| 07 cb 0b 21 3f 85 43 00 | cc 0d 0e 06 0e 07 23 89 |...!?.C.|......#.|
|000054a0| 16 07 88 0b 41 13 0c 41 | 14 0b 40 15 0c 40 89 16 |....A..A|..@..@..|
|000054b0| 06 88 82 1f 00 88 0e 07 | 2d 87 22 20 5b 6b 65 79 |........|-." [key|
|000054c0| 73 20 64 61 74 61 20 6e | 69 6c 20 6b 70 74 72 20 |s data n|il kptr |
|000054d0| 64 70 74 72 20 6b 65 79 | 20 69 74 65 6d 20 72 65 |dptr key| item re|
|000054e0| 73 75 6c 74 20 61 6c 69 | 73 74 20 65 72 72 6f 72 |sult ali|st error|
|000054f0| 20 22 4b 65 79 73 20 61 | 6e 64 20 64 61 74 61 20 | "Keys a|nd data |
|00005500| 73 68 6f 75 6c 64 20 62 | 65 20 74 68 65 20 73 61 |should b|e the sa|
|00005510| 6d 65 20 6c 65 6e 67 74 | 68 22 20 65 6e 64 70 20 |me lengt|h" endp |
|00005520| 61 63 6f 6e 73 5d 20 37 | 29 29 0a 0a 28 64 65 66 |acons] 7|))..(def|
|00005530| 6b 65 79 77 6f 72 64 20 | 3a 74 65 73 74 20 22 55 |keyword |:test "U|
|00005540| 73 65 64 20 74 6f 20 64 | 65 73 69 67 6e 61 74 65 |sed to d|esignate|
|00005550| 20 70 6f 73 69 74 69 76 | 65 20 28 73 65 6c 65 63 | positiv|e (selec|
|00005560| 74 69 6f 6e 29 20 74 65 | 73 74 73 2e 22 29 0a 0a |tion) te|sts.")..|
|00005570| 28 64 65 66 6b 65 79 77 | 6f 72 64 20 3a 74 65 73 |(defkeyw|ord :tes|
|00005580| 74 2d 6e 6f 74 20 22 55 | 73 65 64 20 74 6f 20 64 |t-not "U|sed to d|
|00005590| 65 73 69 67 6e 61 74 65 | 20 6e 65 67 61 74 69 76 |esignate| negativ|
|000055a0| 65 20 28 72 65 6a 65 63 | 74 69 6f 6e 29 20 74 65 |e (rejec|tion) te|
|000055b0| 73 74 73 2e 22 29 0a 0a | 28 64 65 66 6b 65 79 77 |sts.")..|(defkeyw|
|000055c0| 6f 72 64 20 3a 6b 65 79 | 20 22 55 73 65 64 20 74 |ord :key| "Used t|
|000055d0| 6f 20 64 65 73 69 67 6e | 61 74 65 20 63 6f 6d 70 |o design|ate comp|
|000055e0| 6f 6e 65 6e 74 20 65 78 | 74 72 61 63 74 69 6f 6e |onent ex|traction|
|000055f0| 73 2e 22 29 0a 0a 28 64 | 65 66 6b 65 79 77 6f 72 |s.")..(d|efkeywor|
|00005600| 64 20 3a 70 72 65 64 69 | 63 61 74 65 20 22 55 73 |d :predi|cate "Us|
|00005610| 65 64 20 74 6f 20 64 65 | 66 69 6e 65 20 6d 61 74 |ed to de|fine mat|
|00005620| 63 68 69 6e 67 20 6f 66 | 20 73 65 71 75 65 6e 63 |ching of| sequenc|
|00005630| 65 20 63 6f 6d 70 6f 6e | 65 6e 74 73 2e 22 29 0a |e compon|ents.").|
|00005640| 0a 28 64 65 66 6b 65 79 | 77 6f 72 64 20 3a 73 74 |.(defkey|word :st|
|00005650| 61 72 74 20 22 49 6e 63 | 6c 75 73 69 76 65 20 6c |art "Inc|lusive l|
|00005660| 6f 77 20 69 6e 64 65 78 | 20 69 6e 20 73 65 71 75 |ow index| in sequ|
|00005670| 65 6e 63 65 22 29 0a 0a | 28 64 65 66 6b 65 79 77 |ence")..|(defkeyw|
|00005680| 6f 72 64 20 3a 65 6e 64 | 20 22 45 78 63 6c 75 73 |ord :end| "Exclus|
|00005690| 69 76 65 20 68 69 67 68 | 20 69 6e 64 65 78 20 69 |ive high| index i|
|000056a0| 6e 20 73 65 71 75 65 6e | 63 65 22 29 0a 0a 28 64 |n sequen|ce")..(d|
|000056b0| 65 66 6b 65 79 77 6f 72 | 64 20 3a 73 74 61 72 74 |efkeywor|d :start|
|000056c0| 31 20 22 49 6e 63 6c 75 | 73 69 76 65 20 6c 6f 77 |1 "Inclu|sive low|
|000056d0| 20 69 6e 64 65 78 20 69 | 6e 20 66 69 72 73 74 20 | index i|n first |
|000056e0| 6f 66 20 74 77 6f 20 73 | 65 71 75 65 6e 63 65 73 |of two s|equences|
|000056f0| 2e 22 29 0a 0a 28 64 65 | 66 6b 65 79 77 6f 72 64 |.")..(de|fkeyword|
|00005700| 20 3a 73 74 61 72 74 32 | 20 22 49 6e 63 6c 75 73 | :start2| "Inclus|
|00005710| 69 76 65 20 6c 6f 77 20 | 69 6e 64 65 78 20 69 6e |ive low |index in|
|00005720| 20 73 65 63 6f 6e 64 20 | 6f 66 20 74 77 6f 20 73 | second |of two s|
|00005730| 65 71 75 65 6e 63 65 73 | 2e 22 29 0a 0a 28 64 65 |equences|.")..(de|
|00005740| 66 6b 65 79 77 6f 72 64 | 20 3a 65 6e 64 31 20 22 |fkeyword| :end1 "|
|00005750| 45 78 63 6c 75 73 69 76 | 65 20 68 69 67 68 20 69 |Exclusiv|e high i|
|00005760| 6e 64 65 78 20 69 6e 20 | 66 69 72 73 74 20 6f 66 |ndex in |first of|
|00005770| 20 74 77 6f 20 73 65 71 | 75 65 6e 63 65 73 2e 22 | two seq|uences."|
|00005780| 29 0a 0a 28 64 65 66 6b | 65 79 77 6f 72 64 20 3a |)..(defk|eyword :|
|00005790| 65 6e 64 32 20 22 45 78 | 63 6c 75 73 69 76 65 20 |end2 "Ex|clusive |
|000057a0| 68 69 67 68 20 69 6e 64 | 65 78 20 69 6e 20 73 65 |high ind|ex in se|
|000057b0| 63 6f 6e 64 20 6f 66 20 | 74 77 6f 20 73 65 71 75 |cond of |two sequ|
|000057c0| 65 6e 63 65 73 2e 22 29 | 0a 0a 28 64 65 66 6b 65 |ences.")|..(defke|
|000057d0| 79 77 6f 72 64 20 3a 63 | 6f 75 6e 74 20 22 4e 75 |yword :c|ount "Nu|
|000057e0| 6d 62 65 72 20 6f 66 20 | 65 6c 65 6d 65 6e 74 73 |mber of |elements|
|000057f0| 20 74 6f 20 61 66 66 65 | 63 74 2e 22 29 0a 0a 28 | to affe|ct.")..(|
|00005800| 64 65 66 6b 65 79 77 6f | 72 64 20 3a 66 72 6f 6d |defkeywo|rd :from|
|00005810| 2d 65 6e 64 20 22 54 20 | 77 68 65 6e 20 63 6f 75 |-end "T |when cou|
|00005820| 6e 74 69 6e 67 20 62 61 | 63 6b 77 61 72 64 73 2e |nting ba|ckwards.|
|00005830| 22 29 0a 0a 28 64 65 66 | 75 6e 20 73 6f 6d 65 20 |")..(def|un some |
|00005840| 28 70 72 65 64 20 73 65 | 71 20 26 72 65 73 74 20 |(pred se|q &rest |
|00005850| 6d 6f 72 65 73 65 71 73 | 29 20 22 5c 0a 54 65 73 |moreseqs|) "\.Tes|
|00005860| 74 20 50 52 45 44 49 43 | 41 54 45 20 6f 6e 20 65 |t PREDIC|ATE on e|
|00005870| 61 63 68 20 65 6c 65 6d | 65 6e 74 20 6f 66 20 53 |ach elem|ent of S|
|00005880| 45 51 55 45 4e 43 45 3b | 20 69 73 20 69 74 20 65 |EQUENCE;| is it e|
|00005890| 76 65 72 20 6e 6f 6e 2d | 6e 69 6c 3f 0a 45 78 74 |ver non-|nil?.Ext|
|000058a0| 72 61 20 61 72 67 73 20 | 61 72 65 20 61 64 64 69 |ra args |are addi|
|000058b0| 74 69 6f 6e 61 6c 20 73 | 65 71 75 65 6e 63 65 73 |tional s|equences|
|000058c0| 3b 20 50 52 45 44 49 43 | 41 54 45 20 67 65 74 73 |; PREDIC|ATE gets|
|000058d0| 20 6f 6e 65 20 61 72 67 | 20 66 72 6f 6d 20 65 61 | one arg| from ea|
|000058e0| 63 68 0a 73 65 71 75 65 | 6e 63 65 20 61 6e 64 20 |ch.seque|nce and |
|000058f0| 77 65 20 61 64 76 61 6e | 63 65 20 64 6f 77 6e 20 |we advan|ce down |
|00005900| 61 6c 6c 20 74 68 65 20 | 73 65 71 75 65 6e 63 65 |all the |sequence|
|00005910| 73 20 74 6f 67 65 74 68 | 65 72 20 69 6e 20 6c 6f |s togeth|er in lo|
|00005920| 63 6b 2d 73 74 65 70 2e | 0a 41 20 73 65 71 75 65 |ck-step.|.A seque|
|00005930| 6e 63 65 20 6d 65 61 6e | 73 20 65 69 74 68 65 72 |nce mean|s either|
|00005940| 20 61 20 6c 69 73 74 20 | 6f 72 20 61 20 76 65 63 | a list |or a vec|
|00005950| 74 6f 72 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |tor." (b|yte-code|
|00005960| 20 22 cb cc 09 0a 5c 22 | 21 18 c4 1b c4 1d c4 1e | "....\"|!.......|
|00005970| 06 08 1e 07 0e 07 40 1e | 08 0b 86 1e 00 cd 0e 07 |......@.|........|
|00005980| 21 3f 85 4e 00 ce 0e 09 | 0e 08 5c 22 89 16 06 88 |!?.N....|..\"....|
|00005990| 0e 06 3f 83 36 00 c4 82 | 3e 00 ca 89 13 88 0e 06 |..?.6...|>.......|
|000059a0| 89 15 88 0e 07 41 16 07 | 0e 07 40 89 16 08 88 82 |.....A..|..@.....|
|000059b0| 16 00 88 0d 2d 29 87 22 | 20 5b 61 72 67 73 20 73 |....-)."| [args s|
|000059c0| 65 71 20 6d 6f 72 65 73 | 65 71 73 20 72 65 61 64 |eq mores|eqs read|
|000059d0| 79 20 6e 69 6c 20 72 65 | 73 75 6c 74 20 61 70 70 |y nil re|sult app|
|000059e0| 6c 79 76 61 6c 20 72 65 | 6d 61 69 6e 69 6e 67 20 |lyval re|maining |
|000059f0| 63 75 72 72 65 6e 74 20 | 70 72 65 64 20 74 20 72 |current |pred t r|
|00005a00| 65 61 73 73 65 6d 62 6c | 65 2d 61 72 67 73 6c 69 |eassembl|e-argsli|
|00005a10| 73 74 73 20 6c 69 73 74 | 2a 20 65 6e 64 70 20 61 |sts list|* endp a|
|00005a20| 70 70 6c 79 5d 20 37 29 | 29 0a 0a 28 64 65 66 75 |pply] 7)|)..(defu|
|00005a30| 6e 20 65 76 65 72 79 20 | 28 70 72 65 64 20 73 65 |n every |(pred se|
|00005a40| 71 20 26 72 65 73 74 20 | 6d 6f 72 65 73 65 71 73 |q &rest |moreseqs|
|00005a50| 29 20 22 5c 0a 54 65 73 | 74 20 50 52 45 44 49 43 |) "\.Tes|t PREDIC|
|00005a60| 41 54 45 20 6f 6e 20 65 | 61 63 68 20 65 6c 65 6d |ATE on e|ach elem|
|00005a70| 65 6e 74 20 6f 66 20 53 | 45 51 55 45 4e 43 45 3b |ent of S|EQUENCE;|
|00005a80| 20 69 73 20 69 74 20 61 | 6c 77 61 79 73 20 6e 6f | is it a|lways no|
|00005a90| 6e 2d 6e 69 6c 3f 0a 45 | 78 74 72 61 20 61 72 67 |n-nil?.E|xtra arg|
|00005aa0| 73 20 61 72 65 20 61 64 | 64 69 74 69 6f 6e 61 6c |s are ad|ditional|
|00005ab0| 20 73 65 71 75 65 6e 63 | 65 73 3b 20 50 52 45 44 | sequenc|es; PRED|
|00005ac0| 49 43 41 54 45 20 67 65 | 74 73 20 6f 6e 65 20 61 |ICATE ge|ts one a|
|00005ad0| 72 67 20 66 72 6f 6d 20 | 65 61 63 68 0a 73 65 71 |rg from |each.seq|
|00005ae0| 75 65 6e 63 65 20 61 6e | 64 20 77 65 20 61 64 76 |uence an|d we adv|
|00005af0| 61 6e 63 65 20 64 6f 77 | 6e 20 61 6c 6c 20 74 68 |ance dow|n all th|
|00005b00| 65 20 73 65 71 75 65 6e | 63 65 73 20 74 6f 67 65 |e sequen|ces toge|
|00005b10| 74 68 65 72 20 69 6e 20 | 6c 6f 63 6b 2d 73 74 65 |ther in |lock-ste|
|00005b20| 70 2e 0a 41 20 73 65 71 | 75 65 6e 63 65 20 6d 65 |p..A seq|uence me|
|00005b30| 61 6e 73 20 65 69 74 68 | 65 72 20 61 20 6c 69 73 |ans eith|er a lis|
|00005b40| 74 20 6f 72 20 61 20 76 | 65 63 74 6f 72 2e 22 20 |t or a v|ector." |
|00005b50| 28 62 79 74 65 2d 63 6f | 64 65 20 22 cb cc 09 0a |(byte-co|de "....|
|00005b60| 5c 22 21 18 c4 1b c6 1d | c4 1e 07 08 1e 08 0e 08 |\"!.....|........|
|00005b70| 40 1e 09 0b 86 1e 00 cd | 0e 08 21 3f 85 4c 00 ce |@.......|..!?.L..|
|00005b80| 0e 0a 0e 09 5c 22 89 16 | 07 88 0e 07 83 35 00 c4 |....\"..|.....5..|
|00005b90| 82 3c 00 c6 89 13 88 c4 | 89 15 88 0e 08 41 16 08 |.<......|.....A..|
|00005ba0| 0e 08 40 89 16 09 88 82 | 16 00 88 0d 2d 29 87 22 |..@.....|....-)."|
|00005bb0| 20 5b 61 72 67 73 20 73 | 65 71 20 6d 6f 72 65 73 | [args s|eq mores|
|00005bc0| 65 71 73 20 72 65 61 64 | 79 20 6e 69 6c 20 72 65 |eqs read|y nil re|
|00005bd0| 73 75 6c 74 20 74 20 61 | 70 70 6c 79 76 61 6c 20 |sult t a|pplyval |
|00005be0| 72 65 6d 61 69 6e 69 6e | 67 20 63 75 72 72 65 6e |remainin|g curren|
|00005bf0| 74 20 70 72 65 64 20 72 | 65 61 73 73 65 6d 62 6c |t pred r|eassembl|
|00005c00| 65 2d 61 72 67 73 6c 69 | 73 74 73 20 6c 69 73 74 |e-argsli|sts list|
|00005c10| 2a 20 65 6e 64 70 20 61 | 70 70 6c 79 5d 20 37 29 |* endp a|pply] 7)|
|00005c20| 29 0a 0a 28 64 65 66 75 | 6e 20 6e 6f 74 61 6e 79 |)..(defu|n notany|
|00005c30| 20 28 70 72 65 64 20 73 | 65 71 20 26 72 65 73 74 | (pred s|eq &rest|
|00005c40| 20 6d 6f 72 65 73 65 71 | 73 29 20 22 5c 0a 54 65 | moreseq|s) "\.Te|
|00005c50| 73 74 20 50 52 45 44 49 | 43 41 54 45 20 6f 6e 20 |st PREDI|CATE on |
|00005c60| 65 61 63 68 20 65 6c 65 | 6d 65 6e 74 20 6f 66 20 |each ele|ment of |
|00005c70| 53 45 51 55 45 4e 43 45 | 3b 20 69 73 20 69 74 20 |SEQUENCE|; is it |
|00005c80| 61 6c 77 61 79 73 20 6e | 69 6c 3f 0a 45 78 74 72 |always n|il?.Extr|
|00005c90| 61 20 61 72 67 73 20 61 | 72 65 20 61 64 64 69 74 |a args a|re addit|
|00005ca0| 69 6f 6e 61 6c 20 73 65 | 71 75 65 6e 63 65 73 3b |ional se|quences;|
|00005cb0| 20 50 52 45 44 49 43 41 | 54 45 20 67 65 74 73 20 | PREDICA|TE gets |
|00005cc0| 6f 6e 65 20 61 72 67 20 | 66 72 6f 6d 20 65 61 63 |one arg |from eac|
|00005cd0| 68 0a 73 65 71 75 65 6e | 63 65 20 61 6e 64 20 77 |h.sequen|ce and w|
|00005ce0| 65 20 61 64 76 61 6e 63 | 65 20 64 6f 77 6e 20 61 |e advanc|e down a|
|00005cf0| 6c 6c 20 74 68 65 20 73 | 65 71 75 65 6e 63 65 73 |ll the s|equences|
|00005d00| 20 74 6f 67 65 74 68 65 | 72 20 69 6e 20 6c 6f 63 | togethe|r in loc|
|00005d10| 6b 2d 73 74 65 70 2e 0a | 41 20 73 65 71 75 65 6e |k-step..|A sequen|
|00005d20| 63 65 20 6d 65 61 6e 73 | 20 65 69 74 68 65 72 20 |ce means| either |
|00005d30| 61 20 6c 69 73 74 20 6f | 72 20 61 20 76 65 63 74 |a list o|r a vect|
|00005d40| 6f 72 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |or." (by|te-code |
|00005d50| 22 cb cc 09 0a 5c 22 21 | 18 c4 1b c6 1d c4 1e 07 |"....\"!|........|
|00005d60| 08 1e 08 0e 08 40 1e 09 | 0b 86 1e 00 cd 0e 08 21 |.....@..|.......!|
|00005d70| 3f 85 4d 00 ce 0e 0a 0e | 09 5c 22 89 16 07 88 0e |?.M.....|.\".....|
|00005d80| 07 3f 83 36 00 c4 82 3d | 00 c6 89 13 88 c4 89 15 |.?.6...=|........|
|00005d90| 88 0e 08 41 16 08 0e 08 | 40 89 16 09 88 82 16 00 |...A....|@.......|
|00005da0| 88 0d 2d 29 87 22 20 5b | 61 72 67 73 20 73 65 71 |..-)." [|args seq|
|00005db0| 20 6d 6f 72 65 73 65 71 | 73 20 72 65 61 64 79 20 | moreseq|s ready |
|00005dc0| 6e 69 6c 20 72 65 73 75 | 6c 74 20 74 20 61 70 70 |nil resu|lt t app|
|00005dd0| 6c 79 76 61 6c 20 72 65 | 6d 61 69 6e 69 6e 67 20 |lyval re|maining |
|00005de0| 63 75 72 72 65 6e 74 20 | 70 72 65 64 20 72 65 61 |current |pred rea|
|00005df0| 73 73 65 6d 62 6c 65 2d | 61 72 67 73 6c 69 73 74 |ssemble-|argslist|
|00005e00| 73 20 6c 69 73 74 2a 20 | 65 6e 64 70 20 61 70 70 |s list* |endp app|
|00005e10| 6c 79 5d 20 37 29 29 0a | 0a 28 64 65 66 75 6e 20 |ly] 7)).|.(defun |
|00005e20| 6e 6f 74 65 76 65 72 79 | 20 28 70 72 65 64 20 73 |notevery| (pred s|
|00005e30| 65 71 20 26 72 65 73 74 | 20 6d 6f 72 65 73 65 71 |eq &rest| moreseq|
|00005e40| 73 29 20 22 5c 0a 54 65 | 73 74 20 50 52 45 44 49 |s) "\.Te|st PREDI|
|00005e50| 43 41 54 45 20 6f 6e 20 | 65 61 63 68 20 65 6c 65 |CATE on |each ele|
|00005e60| 6d 65 6e 74 20 6f 66 20 | 53 45 51 55 45 4e 43 45 |ment of |SEQUENCE|
|00005e70| 3b 20 69 73 20 69 74 20 | 73 6f 6d 65 74 69 6d 65 |; is it |sometime|
|00005e80| 73 20 6e 69 6c 3f 0a 45 | 78 74 72 61 20 61 72 67 |s nil?.E|xtra arg|
|00005e90| 73 20 61 72 65 20 61 64 | 64 69 74 69 6f 6e 61 6c |s are ad|ditional|
|00005ea0| 20 73 65 71 75 65 6e 63 | 65 73 3b 20 50 52 45 44 | sequenc|es; PRED|
|00005eb0| 49 43 41 54 45 20 67 65 | 74 73 20 6f 6e 65 20 61 |ICATE ge|ts one a|
|00005ec0| 72 67 20 66 72 6f 6d 20 | 65 61 63 68 0a 73 65 71 |rg from |each.seq|
|00005ed0| 75 65 6e 63 65 20 61 6e | 64 20 77 65 20 61 64 76 |uence an|d we adv|
|00005ee0| 61 6e 63 65 20 64 6f 77 | 6e 20 61 6c 6c 20 74 68 |ance dow|n all th|
|00005ef0| 65 20 73 65 71 75 65 6e | 63 65 73 20 74 6f 67 65 |e sequen|ces toge|
|00005f00| 74 68 65 72 20 69 6e 20 | 6c 6f 63 6b 2d 73 74 65 |ther in |lock-ste|
|00005f10| 70 2e 0a 41 20 73 65 71 | 75 65 6e 63 65 20 6d 65 |p..A seq|uence me|
|00005f20| 61 6e 73 20 65 69 74 68 | 65 72 20 61 20 6c 69 73 |ans eith|er a lis|
|00005f30| 74 20 6f 72 20 61 20 76 | 65 63 74 6f 72 2e 22 20 |t or a v|ector." |
|00005f40| 28 62 79 74 65 2d 63 6f | 64 65 20 22 cb cc 09 0a |(byte-co|de "....|
|00005f50| 5c 22 21 18 c4 1b c4 1d | c4 1e 06 08 1e 07 0e 07 |\"!.....|........|
|00005f60| 40 1e 08 0b 86 1e 00 cd | 0e 07 21 3f 85 4c 00 ce |@.......|..!?.L..|
|00005f70| 0e 09 0e 08 5c 22 89 16 | 06 88 0e 06 83 35 00 c4 |....\"..|.....5..|
|00005f80| 82 3c 00 ca 89 13 88 ca | 89 15 88 0e 07 41 16 07 |.<......|.....A..|
|00005f90| 0e 07 40 89 16 08 88 82 | 16 00 88 0d 2d 29 87 22 |..@.....|....-)."|
|00005fa0| 20 5b 61 72 67 73 20 73 | 65 71 20 6d 6f 72 65 73 | [args s|eq mores|
|00005fb0| 65 71 73 20 72 65 61 64 | 79 20 6e 69 6c 20 72 65 |eqs read|y nil re|
|00005fc0| 73 75 6c 74 20 61 70 70 | 6c 79 76 61 6c 20 72 65 |sult app|lyval re|
|00005fd0| 6d 61 69 6e 69 6e 67 20 | 63 75 72 72 65 6e 74 20 |maining |current |
|00005fe0| 70 72 65 64 20 74 20 72 | 65 61 73 73 65 6d 62 6c |pred t r|eassembl|
|00005ff0| 65 2d 61 72 67 73 6c 69 | 73 74 73 20 6c 69 73 74 |e-argsli|sts list|
|00006000| 2a 20 65 6e 64 70 20 61 | 70 70 6c 79 5d 20 37 29 |* endp a|pply] 7)|
|00006010| 29 0a 0a 28 64 65 66 75 | 6e 20 73 65 74 65 6c 74 |)..(defu|n setelt|
|00006020| 20 28 73 65 71 20 6e 20 | 6e 65 77 76 61 6c 29 20 | (seq n |newval) |
|00006030| 22 5c 0a 49 6e 20 53 45 | 51 55 45 4e 43 45 2c 20 |"\.In SE|QUENCE, |
|00006040| 73 65 74 20 74 68 65 20 | 4e 74 68 20 65 6c 65 6d |set the |Nth elem|
|00006050| 65 6e 74 20 74 6f 20 4e | 45 57 56 41 4c 2e 20 20 |ent to N|EWVAL. |
|00006060| 52 65 74 75 72 6e 73 20 | 4e 45 57 56 41 4c 2e 0a |Returns |NEWVAL..|
|00006070| 41 20 73 65 71 75 65 6e | 63 65 20 6d 65 61 6e 73 |A sequen|ce means|
|00006080| 20 65 69 74 68 65 72 20 | 61 20 6c 69 73 74 20 6f | either |a list o|
|00006090| 72 20 61 20 76 65 63 74 | 6f 72 2e 22 20 28 62 79 |r a vect|or." (by|
|000060a0| 74 65 2d 63 6f 64 65 20 | 22 09 47 18 0a c5 57 86 |te-code |".G...W.|
|000060b0| 0c 00 0a 08 59 83 17 00 | c6 c7 0a 08 23 82 37 00 |....Y...|....#.7.|
|000060c0| 09 3c 83 24 00 c8 0a 09 | 0c 23 82 37 00 c9 09 21 |.<.$....|.#.7...!|
|000060d0| 83 31 00 09 0a 0c 49 82 | 37 00 c6 ca cb 09 21 5c |.1....I.|7.....!\|
|000060e0| 22 29 87 22 20 5b 6c 20 | 73 65 71 20 6e 20 74 20 |")." [l |seq n t |
|000060f0| 6e 65 77 76 61 6c 20 30 | 20 65 72 72 6f 72 20 22 |newval 0| error "|
|00006100| 4e 28 25 64 29 20 73 68 | 6f 75 6c 64 20 62 65 20 |N(%d) sh|ould be |
|00006110| 62 65 74 77 65 65 6e 20 | 30 20 61 6e 64 20 25 64 |between |0 and %d|
|00006120| 22 20 73 65 74 6e 74 68 | 20 61 72 72 61 79 70 20 |" setnth| arrayp |
|00006130| 22 53 45 51 20 73 68 6f | 75 6c 64 20 62 65 20 61 |"SEQ sho|uld be a|
|00006140| 20 73 65 71 75 65 6e 63 | 65 2c 20 6e 6f 74 20 60 | sequenc|e, not `|
|00006150| 25 73 27 22 20 70 72 69 | 6e 31 2d 74 6f 2d 73 74 |%s'" pri|n1-to-st|
|00006160| 72 69 6e 67 5d 20 37 29 | 29 0a 0a 28 64 65 66 75 |ring] 7)|)..(defu|
|00006170| 6e 20 65 78 74 72 61 63 | 74 2d 66 72 6f 6d 2d 6b |n extrac|t-from-k|
|00006180| 6c 69 73 74 20 28 6b 65 | 79 20 6b 6c 69 73 74 20 |list (ke|y klist |
|00006190| 26 6f 70 74 69 6f 6e 61 | 6c 20 64 65 66 61 75 6c |&optiona|l defaul|
|000061a0| 74 29 20 22 5c 0a 45 58 | 54 52 41 43 54 2d 46 52 |t) "\.EX|TRACT-FR|
|000061b0| 4f 4d 2d 4b 4c 49 53 54 | 20 4b 45 59 20 4b 4c 49 |OM-KLIST| KEY KLI|
|000061c0| 53 54 20 5b 44 45 46 41 | 55 4c 54 5d 20 3d 3e 20 |ST [DEFA|ULT] => |
|000061d0| 76 61 6c 75 65 20 6f 66 | 20 4b 45 59 20 6f 72 20 |value of| KEY or |
|000061e0| 44 45 46 41 55 4c 54 0a | 45 78 74 72 61 63 74 20 |DEFAULT.|Extract |
|000061f0| 76 61 6c 75 65 20 61 73 | 73 6f 63 69 61 74 65 64 |value as|sociated|
|00006200| 20 77 69 74 68 20 4b 45 | 59 20 69 6e 20 4b 4c 49 | with KE|Y in KLI|
|00006210| 53 54 20 28 72 65 74 75 | 72 6e 20 44 45 46 41 55 |ST (retu|rn DEFAU|
|00006220| 4c 54 20 69 66 20 6e 69 | 6c 29 2e 22 20 28 62 79 |LT if ni|l)." (by|
|00006230| 74 65 2d 63 6f 64 65 20 | 22 c4 09 0a 5c 22 41 18 |te-code |"...\"A.|
|00006240| 08 86 0b 00 0b 29 87 22 | 20 5b 72 65 74 72 69 65 |.....)."| [retrie|
|00006250| 76 65 64 20 6b 65 79 20 | 6b 6c 69 73 74 20 64 65 |ved key |klist de|
|00006260| 66 61 75 6c 74 20 61 73 | 73 6f 63 5d 20 33 29 29 |fault as|soc] 3))|
|00006270| 0a 0a 28 64 65 66 75 6e | 20 61 64 64 2d 74 6f 2d |..(defun| add-to-|
|00006280| 6b 6c 69 73 74 20 28 6b | 65 79 20 69 74 65 6d 20 |klist (k|ey item |
|00006290| 6b 6c 69 73 74 29 20 22 | 5c 0a 41 44 44 2d 54 4f |klist) "|\.ADD-TO|
|000062a0| 2d 4b 4c 49 53 54 20 4b | 45 59 20 49 54 45 4d 20 |-KLIST K|EY ITEM |
|000062b0| 4b 4c 49 53 54 20 3d 3e | 20 6e 65 77 20 4b 4c 49 |KLIST =>| new KLI|
|000062c0| 53 54 0a 41 64 64 20 61 | 73 73 6f 63 69 61 74 69 |ST.Add a|ssociati|
|000062d0| 6f 6e 20 28 4b 45 59 20 | 2e 20 49 54 45 4d 29 20 |on (KEY |. ITEM) |
|000062e0| 74 6f 20 4b 4c 49 53 54 | 2e 22 20 28 62 79 74 65 |to KLIST|." (byte|
|000062f0| 2d 63 6f 64 65 20 22 c3 | 09 0a 08 23 89 10 87 22 |-code ".|...#..."|
|00006300| 20 5b 6b 6c 69 73 74 20 | 6b 65 79 20 69 74 65 6d | [klist |key item|
|00006310| 20 61 63 6f 6e 73 5d 20 | 34 29 29 0a 0a 28 64 65 | acons] |4))..(de|
|00006320| 66 75 6e 20 65 6c 74 2d | 73 61 74 69 73 66 69 65 |fun elt-|satisfie|
|00006330| 73 2d 74 65 73 74 2d 70 | 20 28 69 74 65 6d 20 65 |s-test-p| (item e|
|00006340| 6c 74 20 6b 6c 69 73 74 | 29 20 22 5c 0a 45 4c 54 |lt klist|) "\.ELT|
|00006350| 2d 53 41 54 49 53 46 49 | 45 53 2d 54 45 53 54 2d |-SATISFI|ES-TEST-|
|00006360| 50 20 49 54 45 4d 20 45 | 4c 54 20 4b 4c 49 53 54 |P ITEM E|LT KLIST|
|00006370| 20 3d 3e 20 74 20 6f 72 | 20 6e 69 6c 0a 4b 4c 49 | => t or| nil.KLI|
|00006380| 53 54 20 65 6e 63 6f 64 | 65 73 20 61 20 6b 65 79 |ST encod|es a key|
|00006390| 77 6f 72 64 2d 61 72 67 | 75 6d 65 6e 74 73 20 74 |word-arg|uments t|
|000063a0| 65 73 74 2c 20 61 73 20 | 69 6e 20 43 48 2e 20 31 |est, as |in CH. 1|
|000063b0| 34 20 6f 66 20 43 4c 74 | 4c 2e 0a 54 72 75 65 20 |4 of CLt|L..True |
|000063c0| 69 66 20 74 68 65 20 67 | 69 76 65 6e 20 49 54 45 |if the g|iven ITE|
|000063d0| 4d 20 61 6e 64 20 45 4c | 54 20 73 61 74 69 73 66 |M and EL|T satisf|
|000063e0| 79 20 74 68 65 20 74 65 | 73 74 2e 22 20 28 62 79 |y the te|st." (by|
|000063f0| 74 65 2d 63 6f 64 65 20 | 22 ca 09 0a 5c 22 ca 0c |te-code |"...\"..|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.