]> gitweb.factorcode.org Git - factor.git/blobdiff - core/ranges/ranges.factor
ranges: Fix sum of empty range.
[factor.git] / core / ranges / ranges.factor
index 0373abcfe4d0dca1fa04d3202c703c6df9b05942..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
 
@@ -59,13 +62,3 @@ PRIVATE>
 : [0..b) ( b -- range ) 0 swap [a..b) ; inline
 
 : [1..b) ( b -- range ) 1 swap [a..b) ; inline
-
-! backwards compatibility for new syntax
-ALIAS: [a,b] [a..b] deprecated
-ALIAS: (a,b] (a..b] deprecated
-ALIAS: [a,b) [a..b) deprecated
-ALIAS: (a,b) (a..b) deprecated
-ALIAS: [0,b] [0..b] deprecated
-ALIAS: [1,b] [1..b] deprecated
-ALIAS: [0,b) [0..b) deprecated
-ALIAS: [1,b) [1..b) deprecated