From: tichy <ss...@o2...> - 2005-12-16 21:03:10
|
Hi. I noticed that SBCL 0.9.7 gives me (IMO) wrong result: (typep (make-array 0 :fill-pointer t) '(and array (satisfies array-has-fill-pointer-p) (satisfies adjustable-array-p))) ===> T CLISP returns NIL. Regards, Szymon. |
From: Christophe R. <cs...@ca...> - 2005-12-17 01:05:11
|
tichy <ss...@o2...> writes: > I noticed that SBCL 0.9.7 gives me (IMO) wrong result: > > (typep (make-array 0 :fill-pointer t) '(and array (satisfies > array-has-fill-pointer-p) (satisfies adjustable-array-p))) > > ===> T > > CLISP returns NIL. Both of these answers can be correct, and probably are. Certainly SBCL's answer is correct. I'll quote from the HyperSpec page for MAKE-ARRAY: If adjustable is non-nil, the array is expressly adjustable (and so actually adjustable); otherwise, the array is not expressly adjustable (and it is implementation-dependent whether the array is actually adjustable). Your call to make-array matches the "otherwise" clause here; it is implementation-dependent whether the array it produces is actually adjustable, and in sbcl's case it is actually adjustable. What was your TYPEP call meant to achieve? Cheers, Christophe |