axiom-developer
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]