From 126f3acf634ddb1a2b6a519d102d76827b12b9b9 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 5 Aug 2020 15:57:27 -0700 Subject: [PATCH] math.bitwise: remove duplicate logic in bitfield. --- basis/math/bitwise/bitwise.factor | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) 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