diff --git a/basis/math/bitwise/bitwise.factor b/basis/math/bitwise/bitwise.factor index b14d874d58..dac15f6172 100644 --- a/basis/math/bitwise/bitwise.factor +++ b/basis/math/bitwise/bitwise.factor @@ -68,18 +68,16 @@ M: pair (bitfield-quot) ( spec -- quot ) '[ _ _ shift ] ] if ; +: (bitfield) ( bitspec -- quot ) + [ [ 0 ] ] [ + [ (bitfield-quot) ] [ '[ @ _ dip bitor ] ] map-reduce + ] if-empty ; + PRIVATE> -MACRO: bitfield ( bitspec -- quot ) - [ [ 0 ] ] [ - [ (bitfield-quot) ] [ '[ @ _ dip bitor ] ] map-reduce - ] if-empty ; +MACRO: bitfield ( bitspec -- quot ) (bitfield) ; -MACRO: bitfield* ( bitspec -- quot ) - reverse - [ [ 0 ] ] [ - [ (bitfield-quot) ] [ '[ @ _ dip bitor ] ] map-reduce - ] if-empty ; +MACRO: bitfield* ( bitspec -- quot ) reverse (bitfield) ; ! bit-count