math.bitwise: remove duplicate logic in bitfield.

master
John Benediktsson 2020-08-05 15:57:27 -07:00
parent 70687a0eb3
commit 126f3acf63
1 changed files with 7 additions and 9 deletions

View File

@ -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
<PRIVATE