Re: compare function return values Panu A Kalliokoski (10 May 2005 16:41 UTC)
Re: compare function return values bear (04 Jun 2005 18:07 UTC)
Re: compare function return values Panu Kalliokoski (06 Jun 2005 08:24 UTC)
Re: compare function return values Panu Kalliokoski (06 Jun 2005 09:22 UTC)
Re: compare function return values bear (06 Jun 2005 22:55 UTC)
Re: compare function return values Per Bothner (07 Jun 2005 00:00 UTC)

Re: compare function return values Per Bothner 06 Jun 2005 23:59 UTC

bear wrote:
> Hooboy.  Is this an actual scheme implementation?  I haven't looked at
> others, but I can't store the overhead involved with a symbol (scopes,
> locations, lexical contours, contexts, variable values, weak references,
> etc) in less than 64 bytes.  Am I just doing something horribly wrong?

Well, we all make tradeoffs.  But having a "lexical contour" field in
a symbol is at best an efficiency hack.  A cleaner solution is a
lexical counter hash table indexed by the symbol.

Common Lisp's "value binding" (and function binding) components are
also a hack.  For one thing they don't work with multiple threads.

> I agree that the numbers don't express the values you actually mean
> here, and I dislike that semantic untidiness.  To say "-1" when I
> mean "increasing" is as irritating as saying "27" when I mean "escape"
> or 'a' when I mean "43" or "0" when I mean "false."  The only reason
> to put up with this semantic blurring, IMO, is because you can use
> numbers to index arrays or in further computations, and because doing
> so is the most straightforward and useful way to use those results.

Well, using {-1, 0, 1} is fairly conventional in other languages
(including C, C++, and Java), and there is the mathematical signum
function.  There is something to be said for stick with what works.
Plus using a symbol is awkward because it is hard to avoid it
being human-langauge-specific - unless you use '<, '=, and '> I guess.

Let's stick with {-1, 0, 1}.
--
	--Per Bothner
xxxxxx@bothner.com   http://per.bothner.com/