math.bitwise: remove duplicate logic in bitfield.
parent
70687a0eb3
commit
126f3acf63
|
@ -68,18 +68,16 @@ M: pair (bitfield-quot) ( spec -- quot )
|
||||||
'[ _ _ shift ]
|
'[ _ _ shift ]
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
|
: (bitfield) ( bitspec -- quot )
|
||||||
|
[ [ 0 ] ] [
|
||||||
|
[ (bitfield-quot) ] [ '[ @ _ dip bitor ] ] map-reduce
|
||||||
|
] if-empty ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
MACRO: bitfield ( bitspec -- quot )
|
MACRO: bitfield ( bitspec -- quot ) (bitfield) ;
|
||||||
[ [ 0 ] ] [
|
|
||||||
[ (bitfield-quot) ] [ '[ @ _ dip bitor ] ] map-reduce
|
|
||||||
] if-empty ;
|
|
||||||
|
|
||||||
MACRO: bitfield* ( bitspec -- quot )
|
MACRO: bitfield* ( bitspec -- quot ) reverse (bitfield) ;
|
||||||
reverse
|
|
||||||
[ [ 0 ] ] [
|
|
||||||
[ (bitfield-quot) ] [ '[ @ _ dip bitor ] ] map-reduce
|
|
||||||
] if-empty ;
|
|
||||||
|
|
||||||
! bit-count
|
! bit-count
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
Loading…
Reference in New Issue