home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / FREQ_QA / LISP_2.ZIP / 00000148.TXT
Text File  |  1994-03-15  |  47KB  |  729 lines

  1. Uï∞ü∞WVìF≡PÜ(α â─ìF≡PÜ0α â─Ä┬ï╪ï√îF÷&èO ╕╙αëF°&ïGï╚&ïG║ï≥Ö≈■╛<ï┴ï╩ï╨ï┴ëå⌠■ï┬Ö≈■ï╞ï╩≈«⌠■ï≡±╗Ä$6ë₧·■îåⁿ■&╟  ╗~Ä&6ë₧÷■îå°■&ïÄF÷&9EtLÉΦ2╕pP3└P ╢°■ ╢÷■Üα â─ÄF÷&ïE─₧÷■&ëÄ(6&â>ptÄ*6&â>vt
  2. Ü£┘ÜT┘ÄF÷& E╟F·Ä,6&â>Θ▀ë~⌠╟F■╕⌠╣ùëå≡■ëÄ≥■ëvⁿïFⁿ─₧≡■&─^■ë₧∞■îåε■&9~ΘÖï├î┬ì~öï≤Ä┌╣-≤ÑñèFó*ΣàF°tz8f╥t èF╥─^⌠&8GuiÇ~╤t èF╤─^⌠&8GuWïFⁿ+Fö;Fû| ïFⁿ9Föuâ~ût÷Fÿ@t8èFú─^⌠&8Gt,ïFⁿ+Fö;Fû~<Ä.6&â>t0─^⌠&èG─₧≡■&─ïv■&ê@âF■[ F·ïF·Ä,6&9~Θ2 Θ⌡èFú─^⌠&8Gu ÷FÖu╙ïv·Θzïv·─₧·■&ë7╗XÄ06ë₧Φ■îåΩ■&─?& ╡& ╡Ü£┘â─ìDP─₧Φ■&─& ╖╥& ╖╨Ü┌α    â─Ä26&â>|u Ä46&╟zÄ66&╟¬─^⌠&èGï╚ï╞╗[≈δï╪Ä86&─>⌠&êIÄ86&─⌠ï°&Ça■ÉΦÇ~¿t;èF¿*ΣP─₧Φ■&─& ╖╓& ╖╘Ü┌α    â─Ä46&╟zèF¿*ΣPܵ┘â─ΘvÄ:6&í▓& ░uΘdÄ26&â>|u Ä46&╟z─₧Φ■&─& ╖┌& ╖╪Ü┌α    â─Ä<6& 6¿& 6ªÜ`┘â─Üû┘ܼα    ╕PÜ,╣ â─Ä>6&íF&ïHëåΣ■ëûµ■ ╨t8 ╢µ■Pìå■■PÜ╝
  3. α â─ ÷|ìF▒Pìå■■PÜh
  4. α â─ìå■■PÜ╠┘â─Ä:6& 6▓& 6░ìå■■PÜ╝
  5. α â─ ÷|ìF▒Pìå■■PÜh
  6. α â─ìå■■PÜ╠┘â─Ä*6&â>vtܼα    Ü«┘ÜB┘Ül┘░P░PÜ╢]    â─Ä@6& 6á& 6₧Ü`┘â──₧Φ■&─& ╖▐& ╖▄Ü┌α    â─╕pPÜ╒    â─ÄB6&úR&ëT─₧·■&ë7ïF₧ÄD6&úïFáÄF6&ú Üf┘─₧·■&ë7÷FÿtÄH6&Ç&│ÄJ6&╞ƒδÉÄH6&Ç│ÇÄJ6&╞ƒèfÖ%=└≈╪ÄL6&úïF₧ÄD6&úïFáÄF6&ú ^_ïσ]╦ÉUï∞ü∞▐VÄN6& 6 & 6ìår PÜ╝
  7. α â─ÄN6& 6 & 6ìå" PÜ╝
  8. α â─╕vPìår PÜh
  9. α â─╕éPìå" PÜh
  10. α â─ìFαPìår PÜXXα â─@uΘNìF┬Pìå" PÜXXα â─@uQÄN6& 6 & 6ìå" PÜ╝
  11. α â─ÄP6& 6(& 6&ìå" PÜh
  12. α â─ìF┬Pìå" PÜXXα â─@uΘτïF≥ïV⌠9V╓vΘ┘r9F╘vΘ╧â~≡}Θ╞    â~ε[sΘ╗╕ÇPìår PܬCα â─ï≡â■ uΘƒ╞år ╕Pìår PVÜj3α â─ 6d 6bìår PÜ°
  13. α â─ └ud╕pP╕~╣ùQPVÜj3α â─ìF■PïFε-ÇPÄ86& 6÷& 6⌠VÜPα â─ ÄR6&╟╕[ÖRPïFεïV≡-Çâ┌RPÜ║α Ä,6&úVÜ╚2α â─^ïσ]╦Uï∞ü∞╘WV+└PPÜ(α â─ëFⁿëV■ÄN6& 6 & 6ìFäPÜ╝
  14. α â─ÄN6& 6 & 6ìå4 PÜ╝
  15. α â─╕ÄPìFäPÜh
  16. α â─╕ÜPìå4 PÜh
  17. α â─ìF╘Pìå4 PÜXXα â─@uQÄN6& 6 & 6ìå4 PÜ╝
  18. α â─ÄP6& 6(& 6&ìå4 PÜh
  19. α â─ìF╘Pìå4 PÜXXα â─@uΘ3ïFµïVΦ9V■w1r9Fⁿs*ëF≥ëV⌠ëF÷ëV°Ä06&─X& ╖Γ& ╖αÜ┌α    â─δÉïFⁿïV■ëF≥ëV⌠ëF÷ëV°╕ÇP╕üPìFäPܬCα â─ï≡â■ uΘ╞╕P 6d 6bVÜh4α â─╕pP╕~╣ùQPVÜh4α â─3 ╗Ä,6ë₧0 îå2 &9?~Dëvⁿ3╔ëN■ï±╕ùÄ╪─⌠▐â├ë₧, îå. &÷Gt &÷u&Çg■â╞[G─₧0 &9?╨ïvⁿìF·P╕[─₧0 &≈/PÄ86& 6÷& 6⌠VÜWα â─ VÜ╚2α â─ìF≥PìFäPÜ«Rα â─^_ïσ]╦ÉUï∞â∞TWVÄN6& 6 & 6ìF¼PÜ╝
  20. α â─╕ªPìF¼PÜh
  21. α â─╕▓PìF¼PÜ¿α â─ï≡ëV■ ╨t)ïF■PV╣Q╣pQ╣~║ùRQï°Üxα â─ WVܪα â─^_ïσ]╦ÉUï∞â∞"WVìFΦPÜ(α â─ìFΦPÜ0α â─ï°ëVε╕<Ä┬&≈m&EëF⌠ÄT6&╟  ÄFε&èM ╕╙αëF≡╟F÷╕ & E╟F·ë~∞Ä,6&íëFµ └Θ╔Ä86&í⌠&ï÷ï╪ëV■Ä$6&íëFΣïN·╕╘Ä╪9NΣuΘïâ~t    ÄF■&÷-------------------------------------
  22.  
  23. ;;; *EOF*
  24. JÄF■&èG9êFα
  25. └t ÄFε&èD8Fαu0ÄF■ìwⁿ&ïëF▐;F⌠ÄF■&÷@t┐δï°+~⌠9~÷~ë~÷ëâ├[A9Nµ~Θa ü~÷í}Θ╡╕á+F⌠ëF≥╤f≡â~≡@~╟F≡3╔9NµΘöÄ86&í⌠&ï÷>ï╪ëV■ï~∞╕╘Ä╪â~t ÄF■ìw╞&÷uZÄF■ìw╨&è*ΣàF≡tJÄF■&èêFΓ
  26. └t    ÄFε&8Eu4ÄF■ìw &èêFα
  27. └t    ÄFε&8EuÄF■ìw┬&ïF≥ëF°;F÷}ëF÷ëâ├[A9Nµïü~÷áïV÷δ║áâ~tâ·}║ï┬^_ïσ]╦Éear all searchUï∞ü∞╢WV╕╚Pܬ α â─ï≡ëV■ ╨t5╕╨PÜ6    â─ └u$ïF■PVìåV PÜ╝
  28. α â─ìåV PÜ┘â─δÉ╞åV ╕▄PìåV PÜh
  29. α â─ìF╓PìåV PÜXXα â─ └t$ìåV P╕ΦP╕╠(PÜ─α â─ ╕·PÜ≤α â─ï~ΣW╕PÜα â─ï≡ëV· ╨u╕ P╕╠(PÜ─α â─╕·PÜ≤α â─╕P╕-PìåV PÜ26    â─
  30. ëFⁿëV■ ╨u$ìåV P╕0P╕╠(PÜ─α â─ ╕·PÜ≤α â─ v■ vⁿW╕P v·VÜα â─ ;╟t2ìåV P╕LP╕╠(PÜ─α â─  v■ vⁿܪα â─╕·PÜ≤α â─ v■ vⁿܪα â─ └t$ìåV P╕wP╕╠(PÜ─α â─ ╕·PÜ≤α â─ïF·╗
  31. Ä 3ë₧R îåT &ë7&ëGìL╗XÄ"3ë₧N îåP &ë&ëGÄ└&ï<ü pt#╕pPW╕ÖP╕╠(PÜ─α â─ ╕·PÜ≤α â──₧N &ï&ïWï╧╤ß╤ß┴ï≡ëVⁿ╟F°â ~>║ìM ëV■ëv·ë~÷ï≥ï~·╕ùÄ╪ÄZïX&ï&+╟ïVⁿ&ë&ëPâ╞IuΣïv·─₧N &─ïFⁿ&ë7&ëG─₧R &─&ï╤α╤α&G├î┬ï°ëV÷ï╪&ïÄ$3&ú·    â╟ï┬&ë>
  32. &ú
  33. &ï·    ╤π╤π▀Ä┬&ïÄ&3&ë║ìOëF÷&ë└&ú┬&ï║╤Γ╤Γ╩ï∙╗HÄ(3ë₧J îåL &ë&ëGâ┴Ä*3&ë┤&ú╢ÄF÷&ï╤Γ╤Γ╩ï±ëFⁿPQÜ" α â─@≡╟F°─₧J &─&â?~Gë~⌠║ëV■ëv·ï≥ïN°ï~·╕ùÄ╪─┤&ï&+╟ïVⁿ&ë&ëPâ╞A─₧J &─&9┌ï~⌠ïv·Ä*3&─┤ïFⁿ&ë7&ëG─₧J &─&ï@╤α╤α&G°ïF÷Ä,3&ë>ä
  34. &úå
  35. ìMÄ.3&ë▄ &ú▐ ╕^_ïσ]╦É&àÜuΘ0  Uï∞â∞.WVÜ4┘ÄZ9&╟3└Ä\9&ú6Ä^9&ú"Ä`9&ú╓ Äb9&úrÄd9&ïbÄf9&ëdÄh9&ïfÄj9&ëh+╔ëN÷ëN⌠ v vÜZ α    â─RP╕╠"P╕r ╣ùQPÜαα â─ ╕÷╣ùïVï^ï±Vï°ï≥Ä┴Ä█╣≤Ñ^║╢╣ùëV≡ëN≥Vï·ï≡Ä┴╣≤ÑÄl9&â>nu-Än9&─X& ╖B& ╖@Ü┌α    â─╕╧"PÜ|α    â─3└Θb╕r ╣ùQPÜÆ┘â─ └tτï~
  36.  Θ╛╕P v≥ v≡PÜ┘â─ └t!2└P░PÜ╢]    â─Äp9&àÜt¡ÜN┘δªÉ2└P░PÜ╢]    â─Äp9&àÜuÜ╬┘╕,
  37. ╣ùQPÜ╚┘â─2└P░PÜ╢]    â─Äp9&àÜuΘ0  ~+└PPÜ(α â─ëF⌠ëV÷╕PÜⁿ┘â─+└PPÜ(α â─ï╚ï┌+F⌠V÷Ä~9&ú║&ë╝SQ v÷ v⌠ï≡ï∙ëvΓëVΣï≤Ürα    â─ëFⁿëV■Ä~9&Ω&∞╣d3█SQRPÜåα ëF°ëV·╕dÖRP v■ vⁿÜ║α ëFⁿëV■ v· v°RP╕<ÖRP╣─ ╗  SQ╕ÖRP vΣ vΓÜ║α RPëF▐ëVαÜTα ╣─ ╗  SQ vα v▐ëF┌ëV▄ÜTα ╣<3█SQ vΣ vΓëF╓ëV╪Ü║α F╓V╪ïN┌ï^▄+╚┌SQëF╥ëV╘ÜTα ╟╓+F⌠V÷RP v╘ v╥ vα v▐ v vÜZ α    â─RPÄn9&─X& ╖r& ╖pÜ┌α    â─ÜN┘Ä~9& å╗pÄr9ë^µîFΦ&â?tÄt9&â>vtÜ£┘Ü÷┘─^µ&â?t;Ä^9&â>"uÄ\9&â>6u Ä`9&â>╓ t╕  P v vÜ╪┘â─ÉΦé─^µ&â?tMÄt9&â>vtA╕P╕PÄv9& 68& 66Ü`┘â─╕PÄx9&áGPÄv9& 68& 66Ü≡┘â─╕Θå  tΘ╣╕╘Ä╪╕[≈.ï╪╕ùÄ└&í⌠&ï÷Ä┬╪îFε&÷GÇt1&9}&ïG≈╪╣ùÄ┴&;z
  38. ~3└Θ6╕ùÄ└&íz
  39. ÄFε&9G|τ╕╘Ä└&íëFΩ └u╕╘Ä└&â>tÄFε&÷Gu╕ùÄ└&÷Ç
  40. t│â~Ωu╕╘Ä└&â>tÄFε&÷Gt╕ùÄ└&÷Ç
  41. uë╕P v≥ v≡PÜ┘â─ └tΘ}ⁿÜ╬┘╗pÄr9ë^µîFΦ&â?tMÄt9&â>vtA╕P╕PÄv9& 68& 66Ü`┘â─╕PÄx9&áJPÄv9& 68& 66Ü≡┘â─+└PPÜ(α â─ëF⌠ëV÷Äz9&â>|u Ä|9&╟z╕,
  42. ╣ùQPÜî┘â─ï≡ ÷|Θ%ⁿ─^µ&â?tMÄt9&â>vtA╕P╕PÄv9& 68& 66Ü`┘â─╕PÄx9&áGPÄv9& 68& 66Ü≡┘â─╕P v≥ v≡╕PÜ┘â─ï╞ΘÆÄn9&─X& ╖F& ╖DÜ┌α    â─╕P v≥ v≡╕PÜ┘â─Är9&â>ptMÄt9&â>vtA╕P╕PÄv9& 68& 66Ü`┘â─╕PÄx9&áGPÄv9& 68& 66Ü≡┘â─Ü÷┘╕^_ïσ]╦Uï∞â∞WV╕ P3└ÄZ9&úP╕÷╣ùQPÜα â─ÄÇ9+└&ú&ú■ï~  u1Äé9&9>"t2└P░PÜ╢]    â─Äp9&àÜuÜ|]    ÷─uΘ╗Ää9&╟Äå9&íëF· └|#╕[≈n·ï≡Äê9&─⌠&÷@t Ää9&╟2└P░PÜ╢]    â─=  tΘ╨Äz9&â>|u Ä|9&╟zÄr9&â>ptÄt9&â>vtÜT┘Äé9&â>"t2└P░PÜ╢]    â─Äp9&àÜtΘ  t╛3 δÉ╕⌠PÜ▐┘â─ï≡â■tΘéÄè9&íN& Lts╕dPÜ╒    â─ëFⁿëV■Ü|]    ÷─t6ë~ v■ vⁿÜ`╒    â─ └u!╕dPÜ╒    â─ëFⁿëV■Üè]    Ü|]    ÷─u═Ü°]    3└PÄè9& 6N& 6LÜ└┘â─ΘΩ■â■tm╕pPÜ╒    â─ëFⁿëV■RPÜ`╒    â─ └tΘP■ë~Ü|]    ÷─tΘ@■2└P░PÜ╢]    â─=  tΘ*■Ü─α     v■ vⁿÜ`╒    â─ └t╞Θ■Ü─α    3└δbÉ2└P░PÜ╢]    â─Äp9&àÜt;3└PÜⁿ┘â─ÜN┘Ä^9&â>"uÄ\9&â>6u Ä`9&â>╓ t ÉΦδÜN┘ÉΦ(╕^_ïσ]╦ÉUï∞ü∞·WV╗Äå9ë₧
  43.  îå  &â?|%╕[&≈/Äê9&⌠&ï÷ì~ñï≡Ä┌╣-≤Ññ─₧
  44.  &â?}ΘÄÄ^9&â>"t5Ç~║t/èF║*ΣPÄn9&─X& ╖N& ╖LÜ┌α    â─èF║*ΣPÉΦⁿâ─3÷ì~πÄî9&Ç╝& t1èB╗*ΣPWÄn9&─X& ╖R& ╖PÜ┌α    â─
  45. èB╗*ΣPÉΦ║â─Fâ╟ìF√;°r╕╗╓ Ä`9ë₧ îå &â?u Ä\9&â>6t?─₧
  46.  &â?|5Ç~╣t/èF╣*ΣPÄn9&─X& ╖V& ╖TÜ┌α    â─èF╣*ΣPÉΦOâ─ÄÄ9&í▓& ░uΘ─₧ &â?uÄ\9&â>6uÄ^9&â>"uΘ⌡Än9&─X& ╖Z& ╖XÜ┌α    â─ÄÉ9& 6¿& 6ªÜ`┘â─Üû┘ܼα    ╕PÜ,╣ â─ÄÄ9& 6▓& 6░ìå PÜ╝
  47. α â──₧
  48.  &â?|ìF┴Pìå PÜh
  49. α â─Ü╥┘ìå PÜ╠┘â─Ü╞┘░P░PÜ╢]    â─Än9&─X& ╖^& ╖\Ü┌α    â─ÄÆ9& 6á& 6₧Ü`┘â─Ü┘╕pPÜ╒    â─Äö9&úR&ëT3└Ä^9&ú"Ä\9&ú6─₧ &ë^_ïσ]╦ÉUï∞ÜÇ┘╕╨"PÄû9& 6°& 6÷Än9&─X& ╖å& ╖äÜ┌α    ïσÄÉ9& 6¿& 6ªÜ`┘ïσÜû┘Ät9&â>vtÄÿ9& 6╕3└PÜ≥]    ïσÄÜ9&â>LtÜr╣ Ä£9&â>duÜ.]     vÜ≤α ïσ]╦Uï∞Vïv ÷u3└Öδ,Ü─α ï╚ï╞Ö+┬╤°ìTï╪ï┴ï╩Ö≈∙ï┬├╣d≈ΘPÜ╒    â─^ïσ]╦ÉUï∞â∞WVï~Ä₧9&íB&ïDÄF&9Eu    &9U
  50. uΘ&ïE
  51. & EuΘÄá9&─α&╞Äó9& 6▐& 6▄╕╞KPÜ╝
  52. α â─╕╞KPÜ" α â─╞KëF÷î^°╟F■Äñ9&í& uΘ╗ï~■─N╕ùÄ╪ï±ïïW&9Du&9T
  53. tGâ├ïG uΓΘφÉĪ9ï▀╤π╤π&ïç╢&ïù╕ëV⌠ ╨uΘ╠ïV⌠ï≡ëVⁿÄ┬ï▐&Ç?u$ï~÷Ä¿9&â>t3╕┌"P v°WÜαα â─ΘùÉï~÷Ä^ⁿÄF°ï▐Fèï▀G&êÇ<u≡δ┬É─^& 7╕▄"P v°Wδ_ÉĬ9& 6╓& 6╘╕╞KPÜ╝
  54. α â─╕╞KPÜ" α â─╞Kï≡î^°Ä¼9&í≡ÄF&9t&Ä¿9&â>uÄF& 5╕π"PìD  v°PÜαα â─
  55. ╕╞Kî┌^_ïσ]╦ÉUï∞â∞Ät9&â>vuΘ½Är9&â>puΘ£3└PÜ,╣ â─Äå9&í@P╕Ω"P╕r ╣ùQPÜαα ╕
  56. αP╣QÄ«9& 6·& 6°Ü`┘â─╕r ╣ùQPÄ«9& 6·& 6°ÜZ┘â─Ä░9&í£@PÄ▓9& 6╛
  57. ╕∩"P╕r ╣ùQPÜαα â─ ╕
  58. P╕PÄ«9& 6·& 6°Ü`┘â─╕r ╣ùQPÄ«9& 6·& 6°ÜZ┘â─ÉΦΣÄ┤9&íbëF■ └t'PÄ╢9& 6& 6╕·"P╕r ╣ùQPÜαα â─δ$ÉÄ╢9& 6& 6╕ #P╕r ╣ùQPÜαα â─ ╕P╣QÄ«9& 6·& 6°Ü`┘â─╕#PÄ«9& 6·& 6°ÜZ┘â─╕P╕PÄ«9& 6·& 6°Ü`┘â─╕r ╣ùQPÄ«9& 6·& 6°ÜZ┘â─3└PÄ╕9& 6^Üα    ïσ]╦ÉÄt9&â>vt&Är9&â>pt╕ PÄ║9& 6û& 6öÜÉ┘â─╦ÉUï∞â∞.WVï~╗FLï≤î^·╞  }Θdï╟╣[≈ΘëF╘╗⌠Äê9ë^╓îF╪&─╪&÷Gt╞FLBï╞î┌@ï≡ëV·â~t    Ä┬ï╪F&╞ ─^╓&─^╘&÷GtÄF·ï▐F&╞Câ~t
  59. ÄF·ï▐F&╞ ─^╓&─^╘&÷GtÄF·ï▐F&╞Dâ~t
  60. ÄF·ï▐F&╞ â~t$─^╓&─^╘&÷G@tÄF·ï▐F&╞FÄF·ï▐F&╞ ─^╓&─^╘&÷GtÄF·ï▐F&╞Hâ~t
  61. ÄF·ï▐F&╞ ─^╓&─^╘&÷GtÄF·ï▐F&╞Kâ~t
  62. ÄF·ï▐F&╞ ─^╓&─^╘&÷GÇtyÄF·ï▐F&╞Lâ~ti─^╓&─^╘&ïGëF╥ └|@P╕+#δ É╕  +F╥P╕0#PìF┌PÜαα â─
  63. ìF┌î╥ï╚Ä┌ï╪6Ç?t!ëv°ëNⁿï°ï▀Gè─^° F°&êÇ=uφïv°ï~â~t$─^╓&─^╘&÷GtÄF·ï▐F&╞MÄF·ï▐F&╞ ─^╓&─^╘&÷GtÄF·ï▐F&╞Nâ~t
  64. ÄF·ï▐F&╞ ─^╓&─^╘&÷GtÄF·ï▐F&╞Sâ~t
  65. ÄF·ï▐F&╞ ─^╓&─^╘&÷G tÄF·ï▐F&╞Râ~t
  66. ÄF·ï▐F&╞ â~tï^╘─~╓&─=&÷At
  67. ÄF·ï▐F&╞XÄF·&╞╕FLî┌^_ïσ]├ÉUï∞Ät9&â>vuΘ╚Är9&â>puΘ╣Ä╝9&â>≡uÉΦ²3└PÄå9& 6Φ+²ïσRPÄå9&í@P╕5#P╕r ╣ùQPÜαα ïσ╕
  68. P╣QÄ«9& 6·& 6°Ü`┘ïσ╕r ╣ùQPÄ«9& 6·& 6°ÜZ┘ïσ╕
  69. P╕PÄ«9& 6·& 6°Ü`┘ïσ v vÄ«9& 6·& 6°ÜZ┘ïσÜT┘ïσ]╦Uï∞ü∞¼WV3└PÜz┘â─ï°╗Ä╛9ë₧` îåb &â?}ΘTÄt9&â>vuΘEÉΦⁿW─₧` &ï@P╛XÄn9ë╢\ îå^ &─& ╖f& ╖dìåd PÜαα â─ ╕P╕P╗öÄ║9ë₧X îåZ & w& 7Ü`┘â─ìåd P─₧X & w& 7ÜZ┘â─╕P─₧` & 7Φ╦√â─Ä┬ï╪ï≤îF·&Ç?tTï┬PV─₧\ &─& ╖j& ╖hìåd PÜαα â─ ╕PP─₧X & w& 7Ü`┘â─ìåd P─₧X & w& 7ÜZ┘â─╗╠Ä└9ë₧T îåV &ïG& uΘ9& w& 7ìåd PÜ╝
  70. α â─╕A#Pìåd PÜh
  71. α â─╕P╕J#Pìåd PÜ26    â─
  72. ï≡ëV· ╨uΘεïF·PV╣QQìN⌠Qï°Üα â─ ëFⁿWVܪα â─â~ⁿuΘ┐ïvⁿ╤µïr≥─₧T & w& 7ìåd PÜ╝
  73. α â─╕M#Pìåd PÜh
  74. α â─3└PìÄd QìN╚QÜ*6    â─
  75. └uqëv■ìFµPÜó α â─;╞╕Pìåd PìF╚PÜ*6    â─
  76. └t╘δ@É╕2P╕P─₧X & w& 7Ü`┘â──₧\ &─& ╖n& ╖l─₧X & w& 7ÜZ┘â─ÜT┘^_ïσ]╦R$bàCLS╦░Uï∞â∞.WVÄ╬4╕ù┐µ╛Φ Ä╪╣≤ÑÄ╨4&╟╝
  77. ╕&╣╘QPÜ(α â─Ä╥4+└&ú,&ú*&ú(&ú0&ú.╗pÄ╘4ë^ΣîFµ&9t&Ä╓4&9vtÄ╪4&─X& ╖& ╖Ü£┘â─╟Fⁿ≥Ä┌4ï^ⁿ&â?uΘ╟ï├-╣ùì~Φï≡Ä┘╣≤Ñâ~εt%ïFεëF∞╟FεÄ▄4&íèëFΓ └~ëFΩδÉ╟FΩìFΦPÜ■α    â─RPÄ╬4& 6°& 6÷╕Γ
  78. P╕r ╣ùQPÜαα â─╕r ╣ùQPÜéBα â─ìFΦPÜ■α    â─RP╕δ
  79. P╕r ╣ùQPÜαα â─ ╕r ╣ùQPÜéBα â─âFⁿ ü~ⁿjsΘ) +└ëF≥ëF≡ëFΦëFΩëF∞ëFε╗εÄ▐4ë^▐îFα&ëÄα4&â>v└% ╗Σ ÄΓ4ë^┌îF▄&ëÄΣ4&â>x╔≈┘ ┴─^┌&ëĵ4&í╛
  80. ÄΦ4&9«s ÄΩ4&â> t─^┌&Ç3└P╣╢║ùëN╓ëV╪RQ╣QÉΦDâ─â~uΘ╬╕÷╣ùQP╕PÜ╝α    â─Üÿ┘ └tΘuÜ░┘HtpHtHHtMΘcܬ┘ └uΘW─^▐&ï─^┌&àub╕Ä∞4&úhÄε4&údÄ╪4&─X& ╖Æ& ╖ÉÜ┌α    â─δñÜñ┘ └uΘ─^▐&ï─^┌&àu2δ┤Ä∞4&╟h3└PÜ₧┘ΘΣÄ≡4&╟T  ╕Ä∞4&úhΘ┼É╕Θ╛╕t╣ùëF╥ëN╘ÉΦ3 ─^╥&9?~1╛Ä≥4& t& 4╕ª    ╣ùQPÜ╠Fα â─ └uΘâ╞G─^╥&9?╥Ü╢┘ï°HuΘ≤HuΘGHtvHuΘ╛â }ΘWÄ⌠4&ít;╟ΘE2└P░PÜ╢]    â─Ä÷4&àÜuΘ)ìFΦP╕PÜ╝α    â─3└P v╪ v╓╕PÉΦ⌐â─Ä°4╤τ& ╡Ü┌┘ΘφÉÜ╘┘ └uΘπ─^▐&ï─^┌&àtΘü╕Äε4&údÄ∞4&úhÄ╪4&─X& ╖Æ& ╖ÉÜ┌α    â─Θµ■Ü╬┘ └uΘò─^▐&ï─^┌&àtΘπδ░Éâ╟Θ6 2└P░PÜ╢]    â─Ä÷4&àÜuΘ_Ä·4&â>tΘPìFΦP╕PÜ╝α    â─3└P v╪ v╓╕PÉΦ╨â─Ü╚┘Θ"É2└P░PÜ╢]    â─Ä÷4&àÜuΘ╟FΦⁿìFΦP╣QÜ╝α    â─╟FΦÄⁿ4& é─^Σ&â?tpÄ╓4&â>vtdÄⁿ4& 6é& 6Ç╕≥
  81. P╕r ╣ùQPÜαα â─ ╕P╕PÄ■4& 6& 6Ü`┘â─╕r ╣ùQPÄ■4& 6& 6ÜZ┘â─ÜT┘Ä∞4&╟h3└PÜ┬┘ΘOÉ╕÷╣ùQP╕PÜ╝α    â─Äⁿ4& é─^Σ&â?tpÄ╓4&â>vtdÄⁿ4& 6é& 6Ç╕°
  82. P╕r ╣ùQPÜαα â─ ╕P╕PÄ■4& 6& 6Ü`┘â─╕r ╣ùQPÄ■4& 6& 6ÜZ┘â─ÜT┘Ä≡4&╟T  Ä∞4&╟hΘùÉ╕÷╣ùQP╕PÜ╝α    â─Äⁿ4& é─^Σ&â?tpÄ╓4&â>vtdÄⁿ4& 6é& 6Ç╕■
  83. P╕r ╣ùQPÜαα â─ ╕P╕PÄ■4& 6& 6Ü`┘â─╕r ╣ùQPÄ■4& 6& 6ÜZ┘â─ÜT┘3└PÜ╝┘â─Ä5&╞ª    Ä5&íbÄε4&údÄ5&ífÄ∞4&úh╕P v╪ v╓╕PÉΦfâ─3└P v╪ v╓╕PÉΦQâ─^_ïσ]╦WV╕ùÄ╪+└úú■úⁿú·ú°ú÷╣ùÄ┴&úε╣ùÄ┴&úr╣ùÄ┴&ú╓ ╣ùÄ┴&ú6╣ùÄ┴&ú"╣╘Ä┴&úµ╣ùÄ┴&ú╝
  84. ╣ùÄ┴&ú≥╕ùÄ└╕ù┐µ╛Φ Ä╪╣≤Ñ^_╦ÉUï∞â∞V╕XPÜ╒    â─ëF·ëVⁿRPÜ`╒    â─ └uuïv2└P░PÜ╢]    â─Ä÷4&àÜtYܵα     └uP2└P░PÜ╢]    â─÷─ tÄFï▐F&è
  85. └t*<t&PÜ÷]    â─δÉÜ─α     vⁿ v·Ü`╒    â─ └tùδÉ╕δ'É2└P░PÜ╢]    â─Ü:]    ╕
  86. PÜÄα    â─Ü°]    3└^ïσ]╦ÉUï∞ü∞(WV╗bÄ5ë₧▐■îåα■&â?uΘ] v
  87.  vÜα┘â─ëFⁿëV■ïF └tHt#HuΘëHuΘòHuΘτ╕Θ)É╟FΘ╫É3÷96F~(┐εD╕ P v
  88.  vWÜdα â─
  89. └uΘ÷â╟ F;6F|█ï~ÄF
  90. &â}t=& u& u v■ vⁿ╕ Pìåb PÜαα â─ÄF
  91. & u╕/ PìFΓPÜαα â─
  92. δ2É v■ vⁿìåb PÜ╝
  93. α â─ÄF
  94. & u& u╕8 PìFΓPÜαα â─ ïF╤π╟çF─₧▐■& 7ìåb P╕E PìåΓ■PÜαα â─╕T PìåΓ■PÜ¿α â─ï≡ëV■ ╨usÄ5&í╪&ï┌ëå┌■ëû▄■ ╨tZïF╤π╟çF ╢▄■ ╢┌■ìåb PÜ╝
  95. α â──₧▐■& 7ìåb P╕W PìåΓ■PÜαα â─╕f PìåΓ■PÜ¿α â─ï≡ëV■ïF■ ╞u-â~ uΘy■ìåΓ■PÄ╪4&─X& ╖>& ╖<Ü┌α    â─ΘU■ïF■PVܪα â─ìFΓPìåb PÜh
  96. α â─ìåb PìåΓ■PÜ<α â─ └uX9F t!ìåb PÄ╪4&─X& ╖B& ╖@Ü┌α    â─íFï╚╤α┴╤α╤αεDëFⁿî^■ FïFïV
  97. ï≡Ä┌─~ⁿ╣≤ÑΘ≤Éâ~ t+ v
  98.  vÜZ α    â─RPÄ╪4&─X& ╖F& ╖DÜ┌α    â─ìåΓ■PÜéBα â─Θâ²â>FuΘy²3÷96F~%┐εD╕ P v
  99.  vWÜdα â─
  100. └t
  101. â╟ F;6F|▐96F/â~ uΘ=² v
  102.  vÜZ α    â─RPÄ╪4&─X& ╖J& ╖HΘ╖■ï~ÄF
  103. &â}t=& u& u v■ vⁿ╕i Pìåb PÜαα â─ÄF
  104. & u╕y PìFΓPÜαα â─
  105. δ2É v■ vⁿìåb PÜ╝
  106. α â─ÄF
  107. & u& u╕é PìFΓPÜαα â─ ï▐╤πü├Fë₧╪■â?tÄ5& 6┌& 6╪ìåb PÜ╝
  108. α â─ìFΓPìåb PÜh
  109. α â─ï₧╪■╟ï■F;6F}rï╞╤αFëF·ï╟╤αFëF°ï╞╤α╞╤α╤αεDëF■ï╟╤α╟╤α╤αεDëFⁿíF+╞ëF÷ë~≥ëv⌠ïF■ï^ⁿï√ï≡╣≤Ñï^·âF·ïï^°âF°ëâFⁿ âF■  N÷u╨ Fìåb PÜéBα â─ └u$9F uΘ╗√ìåb PÄ╪4&─X& ╖N& ╖LΘ?²â~ uΘ├ìåb PÄ╪4&─X& ╖R& ╖PÜ┌α    â─ΘƒÉÄ5&í╪&ï┌ëå┌■ëû▄■ ╨uΘé─₧▐■& 7 ╢▄■P╕ Pìåb PÜαα â─╕ Pìåb PÜ¿α â─RPܪα δDÉÄ5&í╪&ï┌ëå┌■ëû▄■ ╨t-─₧▐■& 7 ╢▄■P╕ Pìåb PÜαα â─ìåb PÜéBα â─3└^_ïσ]╦Uï∞â∞(╗$Ä
  110. 5ë^▐îFα&â?uΘ≡╗╪Ä5ë^┌îF▄&ïG& uΘ╫íÆ É t 6Æ  6É Ü`╒    â─ └uΘ╖╕dPÜ╒    â─úÉ ëÆ Ä5&íbëF╪ └tP─^┌& w& 7╕ö P╕NFPÜαα â─δ─^┌& w& 7╕ó P╕NFPÜαα â─ ìFΓP╕NFPÜXXα â─ └uD╕NFPÜéBα â──^▐& 7Ä╪4&─X& ╖₧& ╖£Ü┌α    â─Ä 5&╟z─^▐& 7ܵ┘ïσ]╦3└Ä╪9&úRúzLúxLÄ┌9&9ptIÄ▄9&9vt>╕PPÄ▐9& 6û& 6öÜ`┘â─╕╠#PÄ▐9& 6û& 6öÜZ┘â─ÜT┘δÉ╕ε#PÜ|α    â─Ü°]    Äα9&á£$■P░PÜ╢]    â─╕PΦ½â─ └u ÄΓ9&─X& ╖N& ╖LÜ┌α    â─3└δnÉÄ┌9&â>ptJÄ▄9&â>vt>╕PPÄ▐9& 6û& 6öÜ`┘â─╕∙#PÄ▐9& 6û& 6öÜZ┘â─ÜT┘δÉ╕$PÜ|α    â─╕PΦΣâ─╦V3└Ä╪9&úRúzLúxLÄ┌9&9ptHÄ▄9&9vt=╕PPÄ▐9& 6û& 6öÜ`┘â─╕&$PÄ▐9& 6û& 6öÜZ┘â─ÜT┘δ╕H$PÜ|α    â─Ü:]    Äα9&á£$■P░PÜ╢]    â─3└PΦNâ─ └tzÄ┌9&â>ptKÄ▄9&â>vt?╕PPÄ▐9& 6û& 6öÜ`┘â─╕S$PÄ▐9& 6û& 6öÜZ┘â─ÜT┘δÉÉ╕u$PÜ|α    â─3└PΦâ─ï≡ ÷uÜ4┘ï╞^╦ÉUï∞â∞WVÄΣ9&í╕
  111. &ï║
  112. ï°ëV≡ï╚ï┌Ç─ëF≥ëV⌠╕Ç$PSQÜ╝
  113. α â─╕ç$P v≡WΦöâ─╕÷╣ùQPΦrâ─ĵ9&íµï╚╤α┴╤α╤α≡╣ùQPÜZ α    â─RP╕ë$PÜ┌α    â─ĵ9&íµï╚╤α┴╤α╤α≡╣ùQPÜZ α    â─RP v≡WΦ'â─3└ëF■ëF·ÄΦ9&9Σ~Që~ε╛≡ï°Äµ9&9>µt,╕ù$P v≡ vεΦ≡â─╕ùPVÜZ α    â─RP v≡ vεΦ╒â─â╞ GÄΦ9&9>Σ║ï~ε╕Ö$P v≡WΦ┤â─╗8ÄΩ9ë^µîFΦ+└&ëG&ë9Ft╕÷╣ùQPÜ:┘â─ └'â~uZízLï╚╤α┴╤α╤α0╣ùQPÜ:┘â─ └~9─^µ&ïG& t-╕P& w& 7 v⌠ v≥Ü< α â─
  114. ─^≥&╞GS v≡WΦ%â─╕£$P v≡WΦâ─â~t)Ä∞9&â>^uÄε9&â>`t╕ó$δ6╕º$δ1É╕¼$δ+ÉÄ≡9&÷▓t╕▒$P v≡WΦ╠â─Ä≡9&÷│Çu╕╢$P v≡WΦ▒â─╕╗$P v≡WΦóâ─Ä≥9&â>Σ └≈╪¿t+╕ùÄ└&ÇΣ â~u:&íΣ ╣ùÄ┘#εëFΣ¿t╛δ&É╕ùÄ└δ┘É÷FΣt╛δÉïv■¿t
  115. ╛δ&ï6Σ â■└≈╪¿t╕╛$δ`Éâ~t6≈╞t╕├$P v≡WΦâ─≈╞t╕╚$P v≡WΦ√â─ï╞¿t3╕═$δ"É≈╞t╕╥$δÉ≈╞t╕╫$δ
  116. Éï╞¿t╕▄$P v≡WΦ┬â─Ä≡9&÷│Çtâ~tÄ⌠9&â>zu╕ß$P v≡WΦòâ─╕µ$P v≡WΦåâ─╕ε$P v≡WΦwâ─╕≤$P v≡WΦhâ─Ä÷9&â>j uÄΓ9&─X&ïç╝&ïù╛δ╕⌡$î┌ëFⁿëV■RPÄ°9& 6⌠Ä·9& 6≥╕÷$P╕P╕%P v⌠ v≥Üαα â─ v⌠ v≥ v≡WΦⁿâ─╕%P v≡WΦφâ─Äⁿ9& 6║& 6╕Ä■9& 6╛& 6╝Ä:& 6╢& 6┤╕#%P v⌠ v≥Üαα â─ v⌠ v≥ v≡WΦBâ─Ä:& 6╞& 6─Ä:& 6╩& 6╚Ä:& 6┬& 6└╕0%P v⌠ v≥Üαα â─ v⌠ v≥ v≡WΦ⌡â─╕=%P v≡WΦDâ─Ä:&í&&ï(Ç─0ü╥T|RP╕E%P v⌠ v≥Üαα â─  v⌠ v≥ v≡WΦ â─ v≡WÜ" α â─ï≡Äα9&á£$■P░PÜ╢]    â─╟FΩ╕pPÜ╒    â─ëF÷ëV°ëv∞ë~εïv≥ v∞╕O%P v⌠VÜαα â─
  117.  v⌠VÜ" α â─P v⌠VÜj!α    â─ëF■╕P╣Q╣\%QÜJ]    â─╕P v⌠VÜ" α â─P v⌠VÜJ]    â─╕P v∞ v≡ vεÜJ]    â─╟F·â~∞~;ï~■ïv·Ä^≡ï^εèÿï╪ï╟è─*Σ3╪╤π╕QÄ└ï╟èα*└&3çZï°F;v∞|╓ë~■ïv≥Ü°]     v■╕_%P v⌠VÜαα â─
  118. ╕P v⌠VÜ" α â─P v⌠VÜJ]    â─ïFΩ FΩ=vΘτ╕╨PÜ╒    â─ëFⁿëV■ v° v÷Ü`╒    â─ └tΘ 2└P░PÜ╢]    â─Ä
  119. :&àÜuΘ v■ vⁿÜ`╒    â─ └tΘº■Ü|]    ÷─uܵα     └tΘ▒Ü─α    δ¥3└PÜ(α    â─ï°-*uï╕i%P v⌠VÜ╝
  120. α â─ v⌠VΦ2â─ └uΘi  6`# 6^# v⌠VÜ╠Fα â─ └uΘN  6p# 6n# v⌠ v≥Ü╠Fα â─ └tΘ■╕Θ╩ï~εÄΓ9&─X& ╖Ω& ╖Φ╕e%PïF≡PWï≡Üαα â─ ï╞ï≈ëF■ëvⁿΘàÉ2└P░PÜ╢]    â─ÄΓ9&─X&ïçá&ïùóï°ëV■δ\2└P░PÜ╢]    â─Ä
  121. :&àÜuÄΓ9&─X&ïçÇ&ïùéδ╦ÄΓ9&─X& ╖Ω& ╖Φ╕k%PïF⌠PVï°Üαα â─ ï╟ï■ëF■ v■WÜ┌α    â─3└^_ïσ]├Uï∞ü∞ WV╟Få╟åP ╞å{ ╟å8 o%î₧: ╟å< w%î₧> ╟å@ ~%î₧B ╟åD à%î₧F ╟åH ï%î₧J +└ëåN ëåL ÄΣ9&í╕
  122. &ï║
  123. ëåv ëûx Ç─ï≡ëû~ Ç─ï°ëûp Ç─ëår ëût ╗8ÄΩ9ë₧■îå
  124. ■+└&ëG&ëë╛n Ä┌9&9ptHÄ▄9&9vt=╕PPÄ▐9& 6û& 6öÜ`┘â─╕æ%PÄ▐9& 6û& 6öÜZ┘â─ÜT┘δ╕╡%PÜ|α    â─╗TÄ :ë₧■îå■&╟╕╨PÜ╒    â─ëF∞ëVε╕pPÜ╒    â─ëF≡ëV≥+└ëF÷ëF⌠èå{ ■å{ <vΘvâ~uZ 6`# 6^#╕└%P ╢~ VÜαα â─ ╕P ╢~ VÜ" α â─P ╢~ VÜJ]    
  125. the next cell in memory contains the CDR pointer as described above.  If
  126. the CDR code is CDR-NEXT, the next cell in memory contains the next CAR
  127. cell; in other words, the CDR pointer is implicitly thisaddress+1, where
  128. thisaddress is the memory address of the CAR cell.  If the CDR code is
  129. CDR-NIL, then this cell is the last element of the list; the CDR pointer is
  130. implicitly a reference to the object NIL.  When a list is constructed
  131. incrementally using CONS, a chain of ordinary pairs is created; however,
  132. when a list is constructed in one step using LIST or MAKE-LIST, a block of
  133. memory can be allocated for all the CAR cells, and their CDR codes all set
  134. to CDR-NEXT (except the last, which is CDR-NIL), and the list will only
  135. take half as much storage (because all the CDR pointers are implicit).
  136.  
  137. If this were all there were to it, it would not be difficult to implement
  138. in software on ordinary processors; it would add a small amount of overhead
  139. to the CDR function, but the reduction in paging might make up for it.  The
  140. problem arises when a program uses RPLACD on a CONS cell that has a CDR
  141. code of CDR-NEXT or CDR-NIL.  Normally RPLACD simply stores into the CDR
  142. cell of a CONS, but in this case there is no CDR cell -- its contents are
  143. implicitly specified by the CDR code, and the word that would normally
  144. contain the CDR pointer contains the next CONS cell (in the CDR-NEXT case)
  145. to which other data structures may have pointers, or the first word of some
  146. other object (in the CDR-NIL case).  When CDR-coding is used, the
  147. implementation must also provide automatic "forwarding pointers"; an
  148. ordinary CONS cell is allocated, the CAR of the original cell is copied
  149. into its CAR, the value being RPLACD'ed is stored into its CDR, and the old
  150. CAR cell is replaced with a forwarding pointer to the new CONS cell.
  151. Whenever CAR or CDR is performed on a CONS, it must check whether the
  152. location contains a forwarding pointer.  This overhead on both CAR and CDR,
  153. coupled with the overhead on CDR to check for CDR codes, is generally
  154. enough that using CDR codes on conventional hardware is infeasible.
  155.  
  156. There is some evidence that CDR-coding doesn't really save very much
  157. memory, because most lists aren't constructed at once, or RPLACD is done on
  158. them enough that they don't stay contiguous.  At best this technique can
  159. save 50% of the space occupied by CONS cells. However, the savings probably
  160. depends to some extent upon the amount of support the implementation
  161. provides for creating CDR-coded lists.  For instance, many system functions
  162. on Symbolics Lisp Machines that operate on lists have a :LOCALIZE option;
  163. when :LOCALIZE T is specified, the list is first modified and then copied
  164. to a new, CDR-coded block, with all the old cells replaced with forwarding
  165. pointers.  The next time the garbage collector runs, all the forwarding
  166. pointers will be spliced out.  Thus, at a cost of a temporary increase in
  167. memory usage, overall memory usage is generally reduced because more lists
  168. may be CDR-coded. There may also be some benefit in improved paging
  169. performance due to increased locality as well (putting a list into
  170. CDR-coded form makes all the "cells" contiguous). Nevertheless, modern
  171. Lisps tend to use lists much less frequently, with a much heavier
  172. reliance upon code, strings, and vectors (structures).
  173.  
  174. ----------------------------------------------------------------
  175. Subject: [2-10] What is garbage collection?
  176.  
  177. Garbage Collection (GC) refers to the automatic storage allocation
  178. mechanisms present in many Lisps. There are several kinds of storage
  179. allocation algorithms, but most fall within two main classes:
  180.  
  181.    1. Stop and Copy. Systems which copy active objects from "old"
  182.       storage to "new" storage and then recycle the old storage.
  183.  
  184.    2. Mark and Sweep. Systems which link together storage
  185.       used by discarded objects. 
  186.  
  187. Generational scavenging garbage collection (aka emphemeral GC) is a
  188. variation in which memory is allocated in layers, with tenured
  189. (long-lived) objects in the older layers. Rather than doing a full GC
  190. of all of memory every time more room is needed, only the last few
  191. layers are GCed during an ephemeral GC, taking much less time.
  192. Short-lived objects are quickly recycled, and full GCs are then much
  193. less frequent. It is most often used to improve the performance of
  194. stop and copy garbage collectors.  It is possible to implement
  195. ephemeral GC in mark and sweep systems, just much more difficult.
  196.  
  197. Stop and copy garbage collection provides simpler storage allocation,
  198. avoids fragmentation of memory (intermixing of free storage with used
  199. storage). Copying, however, consumes more of the address space, since up to
  200. half the space must be kept available for copying all the active objects.
  201. This makes stop and copy GC impractical for systems with a small address
  202. space or without virtual memory.  Also, copying an object requires that you
  203. track down all the pointers to an object and update them to reflect the new
  204. address, while in a non-copying system you need only keep one pointer to andiocre programmer (or even a good programmer, who isn't being careful) to
  205. generate a large amount of inefficient Lisp code. A good example is the use
  206. of APPEND to link successive lists together, instead of keeping a pointer
  207. to the tail of the list. Often a programmer can obtain significant
  208. speed increases by using a time/space profiler to identify the
  209. functions which waste time (often small functions which are called
  210. frequently) and rewriting those functions.
  211.      
  212. ----------------------------------------------------------------
  213. Subject: [2-5] Why does Common Lisp have "#'"?
  214.  
  215. #' is a macro-character which expands #'FOO to (FUNCTION FOO).  Symbols in
  216. Lisp have two bindings, one for values and one for functions, allowing them
  217. to represent both variables and functions, depending on context. #'FOO
  218. accesses FOO's lexical function binding in a context where the value
  219. interpretation would normally occur.  #' is also used to create lexical
  220. closures for lambda expressions. A lexical closure is a function which when
  221. invoked executes the body of the lambda-expression in the lexical
  222. environment within which the closure was created.  See pp. 115-117 of CLtL2
  223. for more details.
  224.  
  225. ----------------------------------------------------------------
  226. Subject: [2-6] How do I call non-Lisp functions from Lisp?
  227.  
  228. Most Lisp implementations for systems where Lisp is not the most common
  229. language provide a "foreign function" interface.  As of now there has been
  230. no significant standardization effort in this area.  They tend to be
  231. similar, but there are enough differences that it would be inappropriate to
  232. try to describe them all here.  In general, one uses an
  233. implementation-dependent macro that defines a Lisp function, but instead of
  234. supplying a body for the function, one supplies the name of a function written
  235. in another language; the argument list portion of the definition is
  236. generally augmented with the data types the foreign function expects and
  237. the data type of the foreign function's return value, and the Lisp
  238. interface function arranges to do any necessary conversions.  There is also
  239. generally a function to "load" an object file or library compiled in a
  240. foreign language, which dynamically links the functions in the file being
  241. loaded into the address space of the Lisp process, and connects the
  242. interface functions to the corresponding foreign functions.
  243.  
  244. If you need to do this, see the manual for your language implementation for
  245. full details.  In particular, be on the lookout for restrictions on the
  246. data types that may be passed.  You may also need to know details about the
  247. linkage conventions that are used on your system; for instance, many C
  248. implementations prepend an underscore onto the names of C functions when
  249. generating the assembler output (this allows them to use names without
  250. initial underscores internally as labels without worrying about conflicts),
  251. and the foreign function interface may require you to specify this form
  252. explicitly.
  253.  
  254. Franz Allegro Common Lisp's "Foreign Function Call Facility" is
  255. described in chapter 10 of the documentation. Calling Lisp Functions
  256. from C is treated in section 10.8.2. The foreign function interface in
  257. Macintosh Common Lisp is similar. The foreign function interface for
  258. KCL is described in chapter 10 of the KCL Report. The foreign function
  259. interfaces for Lucid on the Vax and Lucid on the Sun4 are
  260. incompatible. Lucid's interface is described in chapter 5 of the
  261. Advanced User's Guide.
  262.  
  263. ----------------------------------------------------------------
  264. Subject: [2-7] Can I call Lisp functions from other languages?
  265.  
  266. In implementations that provide a foreign function interface as described
  267. above, there is also usually a "callback" mechanism.  The programmer may
  268. associate a foreign language function name with a Lisp function.  When a
  269. foreign object file or library is loaded into the Lisp address space, it is
  270. linked with these callback functions.  As with foreign functions, the
  271. programmer must supply the argument and result data types so that Lisp may
  272. perform conversions at the interface. Note that in such foreign function
  273. interfaces Lisp is often left "in control" of things like memory
  274. allocation, I/O channels, and startup code (this is a major nuisance
  275. for lots of people).
  276.      
  277. ----------------------------------------------------------------
  278.  
  279. Subject: [2-8]  I want to call a function in a package that might not exist at
  280.                 compile time. How do I do this?
  281.  
  282. Use (funcall (find-symbol "SYMBOL-NAME" :pkg-name) ...).
  283.  
  284. ----------------------------------------------------------------
  285. Subject: [2-9]  What is CDR-coding?
  286.  
  287. CDR-coding is a space-saving way to store lists in memory.  It is normally
  288. only used in Lisp implementations that run on processors that are
  289. specialized for Lisp, as it is difficult to implement efficiently
  290. in software.  In normal list structure, each element of the
  291. list is represented as a CONS cell, which is basically two pointers (the
  292. CAR and CDR); the CAR points to the element of the list, while the CDR
  293. points to the next CONS cell in the list or NIL.  CDR-coding takes
  294. advantage of the fact that most CDR cells point to another CONS, and
  295. further that the entire list is often allocated at once (e.g. by a call to
  296. LIST).  Instead of using two pointers to implement each CONS cell, the CAR
  297. cell contains a pointer and a two-bit "CDR code".  The CDR code may contain
  298. one of three values: CDR-NORMAL, CDR-NEXT, and CDR-NIL.  If the code is
  299. CDR-NORMAL, this cell is the first half of an ordinary CONS cell pair, and     Interlisp (originally BBNLisp) and MacLisp.
  300.  
  301.    early 70s       Development of special-purpose computers known as Lisp
  302.                    Machines, designed specificly to run Lisp programs. 
  303.                    Xerox D-series Lisp Machines run Interlisp-D. 
  304.                    Early MIT Lisp Machines run Lisp Machine Lisp 
  305.                    (an extension of MacLisp).
  306.  
  307.    1969            Anthony Hearn and Martin Griss define Standard Lisp to
  308.                    port REDUCE, a symbolic algebra system, to a variety
  309.                    of architectures.  
  310.  
  311.    late 70s        Macsyma group at MIT developed NIL (New Implementation
  312.                    of Lisp), a Lisp for the VAX.
  313.  
  314.                    Stanford and Lawrence Livermore National Laboratory
  315.                    develop S-1 Lisp for the Mark IIA supercomputer.
  316.  
  317.                    Franz Lisp (dialect of MacLisp) runs on stock-hardware
  318.                    Unix machines.
  319.  
  320.                    Gerald J. Sussman and Guy L. Steele developed Scheme,
  321.                    a simple dialect of Lisp with lexical scoping and
  322.                    lexical closures, continuations as first-class objects,
  323.                    and a simplified syntax (i.e., only one binding per symbol).
  324.  
  325.                    Advent of object-oriented programming concepts in Lisp.
  326.                    Flavors was developed at MIT for the Lisp machine,
  327.                    and LOOPS (Lisp Object Oriented Programming System) was
  328.                    developed at Xerox. 
  329.  
  330.    early 80s       Development of SPICE-Lisp at CMU, a dialect of MacLisp
  331.                    designed to run on the Scientific Personal Integrated
  332.                    Computing Environment (SPICE) workstation.
  333.  
  334.    1980            First biannual ACM Lisp and Functional Programming Conf.
  335.  
  336.    1981            PSL (Portable Standard Lisp) runs on a variety of platforms.
  337.  
  338.    1981+           Lisp Machines from Xerox, LMI (Lisp Machines Inc) 
  339.                    and Symbolics available commercially.
  340.  
  341.    April 1981      Grass roots definition of Common Lisp as a description
  342.                    of the common aspects of the family of languages (Lisp
  343.                    Machine Lisp, MacLisp, NIL, S-1 Lisp, Spice Lisp, Scheme). 
  344.                    
  345.  
  346.    1984            Publication of CLtL1. Common Lisp becomes a de facto 
  347.                    standard.
  348.  
  349.    1986            X3J13 forms to produce a draft for an ANSI Common Lisp
  350.                    standard. 
  351.  
  352.    1987            Lisp Pointers commences publication.
  353.  
  354.    1990            Steele publishes CLtL2 which offers a snapshot of
  355.                    work in progress by X3J13.  (Unlike CLtL1, CLtL2
  356.                    was NOT an output of the standards process and was
  357.                    not intended to become a de facto standard.  Read
  358.                    the Second Edition Preface for further explanation
  359.                    of this important issue.) Includes CLOS,
  360.                    conditions, pretty printing and iteration facilities. 
  361.  
  362.    1992            X3J13 creates a draft proposed American National
  363.                    Standard for Common Lisp. This document is the
  364.                    first official successor to CLtL1. 
  365.  
  366. [Note: This summary is based primarily upon the History section of the
  367. draft ANSI specification. More detail and references can be obtained from
  368. that document. See [4-12] for information on obtaining a copy.]
  369.  
  370. Gabriel and Steele's "The Evolution of Lisp", which appeared in the
  371. 1993 ACM History of Programming Languages conference, is available by
  372. anonymous ftp from  
  373.    ftp.cs.umbc.edu:/pub/Memoization/Misc/ [130.85.100.53]
  374. as Evolution-of-Lisp.ps.Z. 
  375.  
  376. ----------------------------------------------------------------
  377. Subject: [2-14]  How do I find the argument list of a function?
  378.                  How do I get the function name from a function object?
  379.  
  380. There is no standard way to find the argument list of a function,
  381. since implementations are not required to save this information.
  382. However, many implementations do remember argument information, and
  383. usually have a function that returns the lambda list. Here are the
  384. commands from some Lisp implementations:
  385.  
  386.    Lucid:                               arglist
  387.    Allegro:                             excl::arglist
  388.    Symbolics:                           arglist
  389.    LispWorks:                           lw:function-lambda-list
  390.  
  391. CMU Common Lisp, new compiler:
  392.    #+(and :CMU :new-compiler)
  393.    (defun arglist (name)
  394.      (let* ((function (symbol-function name))
  395.             (stype (system:%primitive get-vector-subtype function)))
  396.        (when (eql stype system:%function-entry-subtype)
  397.          (cadr (system:%primitive header-ref function
  398.                                   system:%function-entry-type-slot)))))
  399.  
  400. The draft ANSI standard does include FUNCTION-LAMBDA-EXPRESSION and
  401. FUNCTION-KEYWORDS, which can be used to create an ARGLIST function.
  402.  
  403. If you're interested in the number of required arguments you could use
  404.  
  405.    (defun required-arguments (name)
  406.      (or (position-if #'(lambda (x) (member x lambda-list-keywords))
  407.                       (arglist name))
  408.          (length (arglist name))))
  409.  
  410. To extract the function name from the function object, as in
  411.         (function-name #'car) ==> 'car
  412. use the following vendor-dependent functions:
  413.  
  414.    Symbolics: (si::compiled-function-name <fn>)
  415.  (unless (si:lexical-closure-p <fn>) ...)
  416.    Lucid:     (sys::procedure-ref <fn> SYS:PROCEDURE-SYMBOL)
  417.  (when (sys:procedurep <fn>) ..)
  418.    Allegro:   (xref::object-to-function-name <fn>)
  419.    CMU CL:    (kernel:%function-header-name <fn>)
  420.    AKCL:      (system::compiled-function-name <fn>)
  421.    MCL:       (ccl::function-name <fn>)
  422.    Harlequin: (system::function-name <fn>)
  423.  
  424. If a vendor-dependent function does not exist, the following
  425. (inefficient) code maps over all symbols looking for one whose
  426. function-cell matches the function object.
  427.  
  428. (defun function-name (fobject)
  429.    (do-all-symbols (fsymbol)
  430.       (when (and (fboundp fsymbol)
  431.                  (eq (symbol-function fsymbol) fobject))
  432.         (return fsymbol))))
  433.  
  434. If a vendor supports FUNCTION-LAMBDA-EXPRESSION, the third value is
  435. the name of the function, if available. 
  436.  
  437. ----------------------------------------------------------------
  438. Subject: [2-15] How can I have two Lisp processes communicate via unix sockets?
  439.  
  440. CLX uses Unix sockets to communicate with the X window server. Look at
  441. the following files from the CLX distribution for a good example of
  442. using Unix sockets from Lisp:
  443.         defsystem.lisp          Lucid, AKCL, IBCL, CMU.
  444.         socket.c, sockcl.lisp   AKCL, IBCL
  445.         excldep.lisp            Franz Allegro CL
  446. You will need the "socket.o" files which come with Lucid and Allegro.
  447. To obtain CLX, see the entry for CLX in the answer to question [7-1].
  448.  
  449. See the file sockets.tar.gz in the Lisp Utilities repository
  450. described in the answer to question [6-1].
  451.  
  452. ----------------------------------------------------------------
  453. Subject: [2-16]  How can I create a stream that acts like UNIX's /dev/null
  454.                  (i.e., gobbles any output and immediately signals EOF on
  455.                  input operations)?
  456.  
  457. (defparameter *dev-null*
  458.   #-lispm
  459.   (make-two-way-stream (make-concatenated-stream) (make-broadcast-stream))
  460.   ;; Since Lisp Machines have a built-in /dev/null which handles
  461.   ;; additional, non-standard operations, we'll use that instead.
  462.   #+lispm #'system:null-stream)
  463.  
  464. ----------------------------------------------------------------
  465. Subject: [2-17] Read-time conditionalization of code (#+ #- and *features*)
  466.  
  467. The #+ and #- syntax provides for the read-time conditionalization of
  468. lisp code, depending on the presence or absence of keywords on the
  469. *features* list. The nascent Common Lisp standard does not specify
  470. what keywords an implementation must have on its features list.
  471. Nevertheless, most implementations have features that allow one to
  472. distinguish the implementation from other implementations. This allows
  473. one to write implementation-dependent code that is run only in the
  474. relevant implementations.
  475.  
  476. Here is a list of the features to use to specify a particular Common
  477. Lisp implementation. Unfortunately, not every vendor has a
  478. unique keyword that distinguishes their family of implementations from
  479. those of other vendors, nor major and minor versions of the implementation.
  480.  
  481.    :lucid                       Lucid Common Lisp
  482.    :lcl3.0                      Lucid Common Lisp v3.0 and above
  483.    :lcl4.0                      Lucid Common Lisp v4.0 and above
  484.    ----------------
  485.    (and :allegro :franz-inc)    Franz Allegro Common Lisp
  486.    :excl                        Franz Allegro Common Lisp 
  487.    :aclpc                       Franz Allegro Common Lisp\PC.
  488.    :allegro-v3.0                Franz Allegro Common Lisp v3.0 
  489.    :allegro-v3.1                Franz Allegro Common Lisp v3.1 
  490.    :allegro-v4.0                Franz Allegro Common Lisp v4.0 
  491.    :allegro-v4.1                Franz Allegro Common Lisp v4.1 
  492.    ----------------
  493.    :cmu                         CMU Common Lisp
  494.    (and :cmu :new-compiler)     CMU Common Lisp w/Python compiler
  495.    (and :cmu :python)           CMU Common Lisp w/Python compiler
  496.    :cmu17                       CMU Common Lisp v17 and above
  497.    ----------------
  498.    kcl                          Kyoto Common Lisp
  499.    akcl                         Austin KCL
  500.    :ibcl                        Ibuki Common Lisp 
  501.    ----------------
  502.    :mcl                         Macintosh Common Lisp
  503.    :coral                       Coral Lisp; bought by Apple to become
  504.     MACL, then MCL
  505.    :ccl                         Coral Common Lisp
  506.  [Note: Harlequin LispWorks also uses :ccl]
  507.    :ccl-1                       Coral Common Lisp v1
  508.    :ccl-1.3                     Coral Common Lisp v1.3 and higher
  509.    :ccl-2                       present in Macintosh Common Lisp 2.0 and higher
  510.    ----------------
  511.    :harlequin-common-lisp       Harlequin Common Lisp
  512.    :harlequin-unix-lisp         Harlequin on Unix platforms
  513.    :harlequin-PC-lisp           Harlequin on PC platforms
  514.    :lispworks                   Harlequin Lispworks development environment
  515.    :lispworks3                  major release of Harlequin Lispworks
  516.    :lispworks3.1                major and minor release of Harlequin Lispworks
  517.    :harlequin                   All Harlequin products. not always present?
  518.    ----------------
  519.    :clisp                       CLISP Common Lisp
  520.    ----------------
  521.    :symbolics                   Symbolics Genera
  522.    :imach                       Symbolics Genera for Ivory architecture
  523.    :cloe-runtime                Symbolics CLOE
  524.    :cloe                        CLOE 3.1
  525.    ----------------
  526.    :procyon                     Procyon Common Lisp
  527.    (and :procyon :macintosh)    Procyon Common Lisp, Macintosh version
  528.    (and :procyon :os2)          Procyon Common Lisp, OS2 version
  529.    ----------------
  530.    :gclisp                      Golden Common Lisp
  531.    ----------------
  532.    (and dec vax common)         DEC VAXlisp
  533.    ----------------
  534.    :explorer                    TI Explorer Lisp Machine  | used
  535.    :TI                          TI Explorer Lisp Machine  | interchangeably
  536.    :elroy                       TI Explorer release 3 and successors
  537.    ----------------
  538.    :Xerox                       Medley (Venue's CL/InterLisp combo) to rel2.01
  539.    :medley                      Medley releases 3.0 and up
  540.       Use  (IL:UNIX-GETPARM "mach") and (IL:UNIX-GETPARM "arch") to
  541.       distinguish platforms under Medley.
  542.    ----------------
  543.    :ecl                         ECoLisp
  544.    ----------------
  545.    :lispm                       Symbolics, TI, and LMI Lisp machines
  546.  
  547.    In the cases where a feature is not a keyword, it is almost always
  548.    in the LISP package.
  549.  
  550. The draft ANSI standard defines some other useful features:
  551.  
  552.   :cltl1                Compatible with the 1st edition of Steele
  553.   :cltl2                Compatible with the 2nd edition of Steele
  554.   :IEEE-Floating-Point  IEEE floating point support
  555.   :X3J13                conforms to some particular draft of the ANSI
  556.                         CL specification 
  557.   :draft-ANSI-CL        conforms to first full public review draft
  558.   :ANSI-CL              conforms to ANSI CL after its adoption
  559.   :common-lisp          language family "Common Lisp"
  560.  
  561. Other features used by some Lisps include:
  562.  
  563.   :clos                 Contains a native CLOS implementation.
  564.   :pcl                  Contains the PCL implementation of CLOS.
  565.   :flavors              Has an implementation of Symbolics Flavors
  566.   :loop                 Contains the :cltl1 version of the Loop macro
  567.   :ansi-loop            Contains the ANSI Loop macro
  568.   :clx or :xlib         Contains CLX
  569.   :clxr4 or :CLX-MIT-R4 Contains CLX for X11R4
  570.   :clxr5 or :CLX-MIT-R5 Contains CLX for X11R5
  571.   :compiler             Contains a compiler  
  572.   :windows              MS Windows version
  573.   :color                Color display
  574.   :monochrome           Monochrome display
  575.   :multiprocessing      Has multiprocessing capabilities.
  576.   :profiler             Has a PC-monitoring based profiler.
  577.  
  578. Platform-specific features, CPU-dependent features, and
  579. operating-system specific features are also important because they can
  580. indicate changes between different implementations of the same lisp,
  581. such as compiled file extensions (e.g., .sbin, .hbin, etc.).
  582. Unfortunately, not every vendor includes such features, and the naming
  583. conventions are inconsistent. Where there are several names for the
  584. same feature, we've put the preferred name first. Hopefully the
  585. vendors will begin to standardize their use of these features.
  586. CPU-dependent features include :sparc (used in CMU CL, Lucid CL,
  587. Harlequin, and Allegro CL), :mips (used in Allegro CL), :r2000 (used
  588. in Allegro CL even on r4000 machines), :mc68000, and :pa (HP's
  589. 9000/800 RISC cpu).  Platform-specific features include :sun (used in
  590. Allegro CL and Lucid), :sun4 (used in CMU CL and Allegro CL), :sgi
  591. (used in Allegro CL), :hp300, :hp400, :hp500, :sun3, :vax, :prime,
  592. :dec, :dec3100, :macintosh (used in Procyon but not MCL), :ibm-pc,
  593. :ibm-rt-pc.  OS-specific features include :unix (used in CMU CL, IBCL,
  594. and Lucid CL), :vms, :sunos (used in CMU CL), :sun-os (used in Lucid),
  595. :sunos4.0 and :sunos4 (used in various Allegro versions independent of
  596. the actual version of SunOS), :mach (used in CMU CL), :hpux, :ultrix,
  597. :os2, and :svr4.
  598.  
  599. Notes:
  600.  
  601.    :allegro alone doesn't suffice to distinguish Franz Allegro Common
  602.    Lisp from Macintosh Allegro Common Lisp (an early version of
  603.    Macintosh Common Lisp). :excl specifies that the EXCL package (a
  604.    set of Allegro extensions to Common Lisp) is present, but this has
  605.    since become synonymous with Franz Allegro Common Lisp.
  606.  
  607.    Thanks to Vincent Keunen for gathering the information in this list.
  608.  
  609. ----------------------------------------------------------------
  610. Subject: [2-18]  What reader macro characters are used in major Lisp systems?
  611.  
  612. The draft ANSI standard for Common Lisp leaves many dispatching macro
  613. characters unassigned. Of these, the following are explicitly reserved
  614. for the user and hence will never be defined by Common Lisp:
  615.    #!, #?, #[, #], #{, and #}. 
  616. All other unassigned macro characters are not reserved for the user,
  617. and hence the user has no guarantee that they won't be used by some
  618. Lisp implementation. 
  619.  
  620. As a result, there is the potential of portability clashes between
  621. systems that use the same macro characters. This question lists the
  622. non-standard macro character usage of major Lisp systems, in an effort
  623. to avoid such conflicts.
  624.  
  625.    #"  AKCL; pathnames
  626.    #$  Macintosh Common Lisp; traps
  627.    #%  Cyc; references to constants in the representation language
  628.    #%  Harlequin Lispworks; ?
  629.    #@  Macintosh Common Lisp; Points notation
  630.    #@   Defsystem 
  631.    #I  Portable Infix Package
  632.    #L  Allegro Common Lisp; logical pathnames
  633.    #M  Series
  634.    #T   Allegro Common Lisp; ?
  635.    #Y  CLISP; ?
  636.    #Z  Series
  637.    #_  Macintosh Common Lisp; traps
  638.    #`  Harlequin Lispworks; ?
  639.  
  640. There is a proposal in the ANSI draft to have COMPILE-FILE and LOAD
  641. bind *READTABLE*, which would allow one to locally redefine syntax
  642. through private readtables. Unfortunately, this doesn't help with the
  643. Infix Package, where one wants to globally extend syntax.
  644.  
  645. ----------------------------------------------------------------
  646. Subject: [2-19] How do I determine if a file is a directory or not? 
  647.                 How do I get the current directory name from within a Lisp 
  648.                 program? Is there any way to create a directory?
  649.  
  650. There is no portable way in Common Lisp of determining whether a file
  651. is a directory or not. Calling DIRECTORY on the pathname will not
  652. always work, since the directory could be empty. For UNIX systems
  653.    (defun DIRECTORY-P (pathname)
  654.       (probe-file (concatenate 'string pathname "/.")))
  655. seems to work fairly reliably. (If "foo" is a directory, then "foo/."
  656. will be a valid filename; if not, it will return NIL.) This won't, of
  657. course, work on the Macintosh, or on other operating systems (e.g.,
  658. MVS, CMS, ITS). 
  659.  
  660. Moreover, some operating systems may not support the concept of
  661. directories, or even of a file system. For example, recent work on
  662. object-oriented technology considers files to be collections of
  663. objects. Each type of collection defines a set of methods for reading
  664. and writing the objects "stored" in the collection. 
  665.  
  666.  
  667. There's no standard function for finding the current directory from
  668. within a Lisp program, since not all Lisp environments have the
  669. concept of a current directory. Here are the commands from some Lisp
  670. implementations:
  671.    Lucid:               WORKING-DIRECTORY (which is also SETFable)
  672.                         PWD and CD also work
  673.    Allegro:             CURRENT-DIRECTORY (use excl:chdir to change it)
  674.    CMU CL:              DEFAULT-DIRECTORY
  675.    LispWorks:           LW:*CURRENT-WORKING-DIRECTORY* 
  676.                         (use LW:CHANGE-DIRECTORY to change it)
  677.  
  678. Allegro also uses the variable *default-pathname-defaults* to resolve
  679. relative pathnames, maintaining it as the current working directory.
  680. So evaluating (truename "./") in Allegro (and on certain other
  681. systems) will return a pathname for the current directory. Likewise,
  682. in some VMS systems evaluating (truename "[]") will return a pathname
  683. for the current directory.
  684.  
  685. There is no portable way of creating a new directory from within a
  686. Lisp program. 
  687.  
  688. ----------------------------------------------------------------
  689. Subject: [2-20] What is a "Lisp Machine" (LISPM)?
  690.  
  691. A Lisp machine (or LISPM) is a computer which has been optimized to run lisp
  692. efficiently and provide a good environment for programming in it. The
  693. original Lisp machines were implemented at MIT, with spinoffs as LMI (defunct)
  694. and Symbolics (bankrupt). Xerox also had a series of Lisp machines
  695. (Dandylion, Dandytiger), as did Texas Instruments (TI Explorer). The
  696. TI and Symbolics Lisp machines are currently available as cards that
  697. fit into Macintosh computers (the so-called "Lisp on a chip").
  698.  
  699. Optimizations typical of Lisp machines include:
  700.  
  701.    - Hardware Type Checking. Special type bits let the type be checked
  702.      efficiently at run-time.
  703.  
  704.    - Hardware Garbage Collection. 
  705.  
  706.    - Fast Function Calls. 
  707.  
  708.    - Efficient Representation of Lists.
  709.  
  710.    - System Software and Integrated Programming Environments.
  711.  
  712. For further information, see:
  713.  
  714.    Paul Graham, "Anatomy of a Lisp Machine", AI Expert, December 1988.
  715.  
  716.    Pleszkun and Thazhuthaveetil, "The Architecture of Lisp Machines",
  717.    IEEE Computer, March 1987.
  718.  
  719.    Ditzel, Schuler and Thomas, "A Lisp Machine Profile: Symbolics 3650",
  720.    AI Expert, January 1987.
  721.  
  722.    Peter M. Kogge, "The Architecture of Symbolic Computers",
  723.    McGraw-Hill 1991. ISBN 0-07-035596-7.
  724.  
  725. [Derived from a post by Arthur Pendragon <apendragon@delphi.com>.]
  726.  
  727. ----------------------------------------------------------------
  728. ;;; *EOF*
  729.