]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/checksums/adler-32/adler-32.factor
factor: trim using lists
[factor.git] / basis / checksums / adler-32 / adler-32.factor
index d5e153ba99954275c9479afadbf7cd2db92be930..444062b8c8069487626d90c779019ff5a3806c66 100644 (file)
@@ -1,15 +1,16 @@
 ! Copyright (C) 2008 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: checksums classes.singleton kernel math math.ranges
-math.vectors sequences ;
+USING: checksums kernel math ranges math.vectors sequences ;
 IN: checksums.adler-32
 
 SINGLETON: adler-32
 
 CONSTANT: adler-32-modulus 65521
 
-M: adler-32 checksum-bytes ( bytes checksum -- value )
+M: adler-32 checksum-bytes
     drop
-    [ sum 1+ ]
-    [ [ dup length [1,b] <reversed> v. ] [ length ] bi + ] bi
+    [ sum 1 + ]
+    [ [ dup length [1..b] <reversed> vdot ] [ length ] bi + ] bi
     [ adler-32-modulus mod ] bi@ 16 shift bitor ;
+
+INSTANCE: adler-32 checksum