>> Except that this form makes a copy of the bignum, and for >> a 40k pile of bits that's pretty slow :-(. > >In this case, why not use an array of shorter integers? > > def set_bit(vector, index) > bucket = index & 63 > bit = index >> 6 > vector[bucket] |= 1 << bit > end Oh sure, I could. I could also write my own hash functions, etc. It just seems like a basic enough facility to warrant inclusion in the language, that's all (plus a small speed advantage to coding it in C). /\ndy