Hi,
((term & 0x1) ==0) just test if least significant bit is unset
? (term | 1) will set the LSB to 1 if unset
: (term & ~1) will unset the LSB if set
so, all it does is (term bitXOr: 1), that is it changes the LSB of term...
The name termPlus1 is misleading.