]> gitweb.factorcode.org Git - factor.git/blobdiff - core/ranges/ranges.factor
ranges: Fix sum of empty range.
[factor.git] / core / ranges / ranges.factor
index 25a3b21bd7f50e32ad76b57af0687bf09140b424..4aff21ec1f1ea9d2f3f8e040bb3a264a6c6b94e2 100644 (file)
@@ -32,7 +32,10 @@ M: range hashcode* tuple-hashcode ;
 
 INSTANCE: range immutable-sequence
 
-M: range sum [ length ] [ first ] [ last ] tri + * 2 / ;
+M: range sum
+    dup length
+    [ drop 0 ]
+    [ swap [ first-unsafe ] [ last-unsafe ] bi + * 2 / ] if-zero ;
 
 <PRIVATE