From 52017e22f39902fbe8c493d89744c9e275522fad Mon Sep 17 00:00:00 2001 From: Daniel Ehrenberg Date: Mon, 1 Jun 2009 22:39:02 -0500 Subject: [PATCH] unbits word in math.bits vocab --- basis/math/bits/bits-docs.factor | 6 +++++- basis/math/bits/bits-tests.factor | 3 +++ basis/math/bits/bits.factor | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/basis/math/bits/bits-docs.factor b/basis/math/bits/bits-docs.factor index 6ae83f7af0..36043a5576 100644 --- a/basis/math/bits/bits-docs.factor +++ b/basis/math/bits/bits-docs.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2009 Daniel Ehrenberg ! See http://factorcode.org/license.txt for BSD license. -USING: help.syntax help.markup math ; +USING: help.syntax help.markup math sequences ; IN: math.bits ABOUT: "math.bits" @@ -24,3 +24,7 @@ HELP: make-bits { $example "USING: math.bits prettyprint arrays ;" "BIN: 1101 make-bits >array ." "{ t f t t }" } { $example "USING: math.bits prettyprint arrays ;" "-3 make-bits >array ." "{ t f }" } } ; + +HELP: unbits +{ $values { "seq" sequence } { "number" integer } } +{ $description "Turns a sequence of booleans, of the same format made by the " { $link bits } " class, and calculates the number that it represents as little-endian." } ; diff --git a/basis/math/bits/bits-tests.factor b/basis/math/bits/bits-tests.factor index b17d9d8b6e..c6f4c6e8fa 100644 --- a/basis/math/bits/bits-tests.factor +++ b/basis/math/bits/bits-tests.factor @@ -29,3 +29,6 @@ IN: math.bits.tests [ t ] [ 1067811677921310779 >bignum make-bits last ] unit-test + +[ 6 ] [ 6 make-bits unbits ] unit-test +[ 6 ] [ 6 3 >array unbits ] unit-test diff --git a/basis/math/bits/bits.factor b/basis/math/bits/bits.factor index 72b83a991f..0fbfdf0bd9 100644 --- a/basis/math/bits/bits.factor +++ b/basis/math/bits/bits.factor @@ -14,3 +14,6 @@ M: bits length length>> ; M: bits nth-unsafe number>> swap bit? ; INSTANCE: bits immutable-sequence + +: unbits ( seq -- number ) + 0 [ [ 1 shift ] dip [ 1+ ] when ] reduce ;