[squeak-dev] Protocol extension proposal: Boolean>>asBit ?

Igor Stasenko siguctua at gmail.com
Sat Dec 5 10:44:41 UTC 2009


I currently writing a code which looks like:

a := some numeric expression + (someBoolean ifTrue: [1] ifFalse: [0]).

And i get somewhat tired repeating the same pattern in multiple places.
So, i thinking , maybe #asBit convenience method could be useful?

True>>asBit
  ^ 1
False>>asBit
  ^ 0

so, then, in case of need like above, we could write much shorter expressions:
a := some numeric expression + someBoolean asBit.

And its much less error prone comparing to #ifTrue:ifFalse:, since i
found its relatively easy to make a mess (swapping 1 with 0),
especially, when you having negations in expression, because once you see:

(someBoolean not ifTrue: [1] ifFalse: [0])

you always tempted to write it as:

(someBoolean ifTrue: [0] ifFalse: [1]).

or as:

(someBoolean ifFalse: [1] ifTrue: [0]).

but once you start playing with it, its very easy to shoot into own
feet if you are not careful.

But if we could add #asBit, then we could write:

someBoolean not asBit

which is much more:
a) concise & cleaner
b) error proof


-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list