Am Montag, 9. Oktober 2006 16:26 schrieb Karl Forner:
> AND YET OTHER QUESTIONS
>
> * What is the intended usage, or in other words, the usefulness of the
> *BooleanArrays ?
A *BooleanArray *does* array[1] and it's storage size is one bit per item.
[1] the current array interface isn't much more than:
Fixed:
ar = 1e9 # fill it with 0
b = ar[idx] # get bit
ar[idx] = b # set bit
delete, exists
Resizable additionally:
b = {pop,shift} ar
{push,unshift} ar, b
splice
To me it doesn't make much sense to provide all possible conversions from/to
num & string, PMC is debatable.
For usage see e.g.: examples/shootout/nsieve*.pir
> I'm somewhat puzzled, because there is no API for using these boolean
> arrays (a la Bit::Vector for example)
We don't have an array API yet, nor a pdd. But some methods like sort() are
implemented for some arrays. fill() aka memset() would be another candidate.
And of course more on demand.
> * If it's just a kind of storage, I can go on and implement it with a
> custom, simple and small implementation, but I've still 2 solutions for
> Resizables :
> - either grow smartly only on the right (push, pop), an alloc/copy when
> changes are needed on the left (that saves on INTVAL attribute)
> - allocate a third INTVAL attribute on the heap, and grows smartly in
> both directions
You can provide smart growing in both directions with the mentioned strategy
with just 2 int_val fields.
> Thank you very much for your attention
>
> Karl Forner
leo