]> gitweb.factorcode.org Git - factor.git/commitdiff
More short-circuit updates
authorEduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Wed, 11 Jun 2008 01:42:55 +0000 (20:42 -0500)
committerEduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Wed, 11 Jun 2008 01:42:55 +0000 (20:42 -0500)
extra/lcs/lcs.factor
extra/math/text/english/english.factor
extra/project-euler/014/014.factor
extra/project-euler/021/021.factor
extra/project-euler/036/036.factor
extra/project-euler/043/043.factor
extra/project-euler/052/052.factor
extra/xmode/marker/marker.factor

index e5155a786e45ffc78723061ff0de55eb52928b2b..06c33505ca1a9b9eb7c65d082fe791ed5388e9cb 100755 (executable)
@@ -56,7 +56,7 @@ TUPLE: trace-state old new table i j ;
     {\r
         [ i>> 0 > ] [ j>> 0 > ]\r
         [ [ old-nth ] [ new-nth ] bi = ]\r
-    } <-&& ;\r
+    } 1&& ;\r
 \r
 : do-retain ( state -- state )\r
     dup old-nth retain boa ,\r
index 3030f28d04100d350b2d81f5ae9962dfbad45c20..500e08f79d0bb1779a0e4aa1328b9ef6e96d33cb 100755 (executable)
@@ -26,7 +26,7 @@ IN: math.text.english
 
 SYMBOL: and-needed?
 : set-conjunction ( seq -- )
-    first { [ dup 100 < ] [ dup 0 > ] } && and-needed? set drop ;
+    first { [ dup 100 < ] [ dup 0 > ] } 0&& and-needed? set drop ;
 
 : negative-text ( n -- str )
     0 < "Negative " "" ? ;
index 32b1aa55498fbfc16e47e7a1ece2bf1fa8666582..ef8ef8c0f7b5e2f1db5aadf342ab297edbdf4239 100644 (file)
@@ -59,7 +59,7 @@ PRIVATE>
 <PRIVATE
 
 : worth-calculating? ( n -- ? )
-    { [ dup 1- 3 mod zero? ] [ dup 1- 3 / even? ] } && nip ;
+    { [ dup 1- 3 mod zero? ] [ dup 1- 3 / even? ] } 0&& nip ;
 
 PRIVATE>
 
index d8f81717af4c8dfb469bec2dd99c15d8e61dec99..e6eadba264dc582089113213f78ad4de0a906b92 100644 (file)
@@ -27,7 +27,7 @@ IN: project-euler.021
 
 : amicable? ( n -- ? )
     dup sum-proper-divisors
-    { [ 2dup = not ] [ 2dup sum-proper-divisors = ] } && 2nip ;
+    { [ 2dup = not ] [ 2dup sum-proper-divisors = ] } 0&& 2nip ;
 
 : euler021 ( -- answer )
     10000 [1,b] [ dup amicable? [ drop 0 ] unless ] sigma ;
index 153901ce6d0151d591e8b6e289d6eb574c5439a0..fbf6376eb324020c5d9e5ea5b08d0d5e878f8af8 100644 (file)
@@ -27,7 +27,7 @@ IN: project-euler.036
 
 : both-bases? ( n -- ? )
     { [ dup palindrome? ]
-      [ dup >bin dup reverse = ] } && nip ;
+      [ dup >bin dup reverse = ] } 0&& nip ;
 
 PRIVATE>
 
index 41e378e531086d41954b9ca6e3921f40d561ce06..0c51146656d189c1cd1278b611d68c50e912426c 100644 (file)
@@ -47,7 +47,7 @@ IN: project-euler.043
         [ 5 4 pick subseq-divisible? ]
         [ 3 3 pick subseq-divisible? ]
         [ 2 2 pick subseq-divisible? ]
-    } && nip ;
+    } 0&& nip ;
 
 PRIVATE>
 
index 3f6487fb3eb3c5959ea05e2fd8f74e629a6df313..6c4b605bd9e89e8aae92c0e5680ff121f5004ce8 100644 (file)
@@ -29,7 +29,7 @@ IN: project-euler.052
     [ number>digits natural-sort ] map all-equal? ;
 
 : candidate? ( n -- ? )
-    { [ dup odd? ] [ dup 3 mod zero? ] } && nip ;
+    { [ dup odd? ] [ dup 3 mod zero? ] } 0&& nip ;
 
 : next-all-same ( x n -- n )
     dup candidate? [
index a921e6a022b79f62b2d04ba25c9027280559415b..7d82842327e181631813b348155c1867ad7585a2 100755 (executable)
@@ -19,7 +19,7 @@ strings regexp splitting parser-combinators ascii unicode.case ;
                 dup [ dupd matches? ] [ drop f ] if
             ] unless*
         ]
-    } && nip ;
+    } 0&& nip ;
 
 : mark-number ( keyword -- id )
     keyword-number? DIGIT and ;
@@ -50,7 +50,7 @@ M: rule match-position drop position get ;
         [ over matcher-at-line-start?     over zero?                implies ]
         [ over matcher-at-whitespace-end? over whitespace-end get = implies ]
         [ over matcher-at-word-start?     over last-offset get =    implies ]
-    } && 2nip ;
+    } 0&& 2nip ;
 
 : rest-of-line ( -- str )
     line get position get tail-slice ;
@@ -273,7 +273,7 @@ M: mark-previous-rule handle-rule-start
             [ check-end-delegate ]
             [ check-every-rule ]
             [ check-word-break ]
-        } || drop
+        } 0|| drop
 
         position inc
         mark-token-loop