[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] numberOfEmptySlots
From: |
Gabriel Dos Reis |
Subject: |
[Axiom-developer] numberOfEmptySlots |
Date: |
Thu, 9 Aug 2007 20:40:01 -0500 (CDT) |
Consider the following function from src/interp/clam.boot:
numberOfEmptySlots cache==
count:= (CAAR cache ='$failed => 1; 0)
for x in tails rest cache while NE(x,cache) repeat
if CAAR x='$failed then count:= count+1
count
The SBCL type checker does not like it because:
* it is able to infer that cache is a list,
* '=' (coming from NE, which mean not =) can be applied only
to numbers.
Consequently, we have conflicting assumptions for the same value. So, we
have a bug. Now, looking back at the code, the expression
NE(x,cache)
cannot be right. Was it indended to be
x /= cache
instead?
Note: a /= b is almost same like (not (equal a b)).
What is the semantics of function numberOfEmptySlots? What is
the structure of its parameter?
-- Gaby
- [Axiom-developer] numberOfEmptySlots,
Gabriel Dos Reis <=