Hi Gabriele,

> Well,  since  we're  talking  356  bits,  maybe  you'll forgive me
>  wasting some memory.
>  
>  >> bitmap: "000110101000111111100101001111111" ;... till 356 days
>  == "000110101000111111100101001111111"
>  >> available?: func [bitmap cons] [if bitmap: find bitmap head insert/dup 
> clear "" 1 cons [index? bitmap]]


Thanks for the reply.  That's a neat bit of lateral thinking!

You correctly spotted that Puzzle 2 was a trick question to highlight the 
inadequacies of using REBOL's bitmaps for binary strings longer than 32 octets -- 
so that some other sort of representation was needed.

A "character bitmap" (to coin a term) of the sort you use, obviously lifts a 
binary string into a realm in which various standard REBOL operations are 
possible -- like finding the longest sequence of 1s, reversing the string etc. And 
it makes possible things that REBOL doesn't properly support like shift/left 
or rotate/right

But it makes it much harder (I won't say impossible, or someone will email in 
a char-xor function) to do boolean operations.

I guess a system that needs to do basic boolean operations on binary strings 
could do those directly, and then unfurl (to coin another term) the binary 
string into a character bitmap for those other operations. Provided furling and 
unfurling was fast, it could work.

Ideally, though, REBOL would provide a wider ranger of ways to work with 
bits. (Another alternative is to write the operations in C or asm and use /Pro or 
/command. But that makes portability a pain)

Thanks again,
Sunanda.
-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to