]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/math/bits/bits.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / basis / math / bits / bits.factor
index 8920955df340f8a9b11b219ffeddc530252f53f4..e469140ff423a0ea710eced35f54da536f74e684 100644 (file)
@@ -7,10 +7,13 @@ TUPLE: bits { number read-only } { length read-only } ;
 C: <bits> bits
 
 : make-bits ( number -- bits )
-    dup zero? [ drop T{ bits f 0 0 } ] [ dup abs log2 1+ <bits> ] if ; inline
+    [ T{ bits f 0 0 } ] [ dup abs log2 1 + <bits> ] if-zero ; inline
 
 M: bits length length>> ;
 
 M: bits nth-unsafe number>> swap bit? ;
 
 INSTANCE: bits immutable-sequence
+
+: unbits ( seq -- number )
+    <reversed> 0 [ [ 1 shift ] dip [ 1 + ] when ] reduce ;