Subject: Re: Access the the second return value? From: Erik Naggum <erik@naggum.net> Date: 2000/07/01 Newsgroups: comp.lang.lisp Message-ID: <3171439197402294@naggum.net> * "Larry Elmore" <ljelmore@prodigy.net> | I don't see this, unless you are using the IBM mainframe on which | Lisp was first developed -- and even then, the abbreviations for | 'Contents of Address Register' and 'Contents of Data Register' | aren't very meaningful... AFAIK, they were the instructions used to extract halves of a kind of pointer, and it consisted of an address part and a decrement part (not data). A stack that knew its size was easily implemented with this scheme, and it was done just that way on the PDP-10 I grew up on (for all practical purposes) -- both stack and more specialized instructions would add 1 to both halves of the machine word and you could test for overflow at this point if the _negative_ size would overflow into zero. If you read the Lisp 1.5 Programmer's Reference Manual carefully, you'll much intermingled discussions of the special treatment of negative pointer values -- the sized pointer concept was clearly _abused_ by the Lisp implementation on that IBM processor! I found this quite amusing when I read it. (Argh, this remind me that I pushed a request for an explanation of the power of the PDP-10 macro assembler on my internal stack, and it _doesn't_ signal overflow. Sigh.) | I've always thought 'head' and 'tail' would've made a lot more sense | even 40+ years ago, and possibly 'htail', 'httail', etc. as | extensions. For some things, though, like getting the nth element of | a list, other words are a _lot_ clearer, though I name them | 'first-of', 'third-of', etc. Hm? I already pronounce (first foo) as "first of foo". #:Erik -- If this is not what you expected, please alter your expectations.