]> gitweb.factorcode.org Git - factor.git/commitdiff
combinators: simplify dispatch-case-quot with fry.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 20 Nov 2020 00:53:52 +0000 (16:53 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 20 Nov 2020 00:53:52 +0000 (16:53 -0800)
core/combinators/combinators.factor

index 9b1b8eb82cba5b24b4601aaa3c4ec4a8e89fc0e6..917dd784533df07837c432e5bdeb84bcb509e440 100644 (file)
@@ -165,17 +165,16 @@ ERROR: no-case object ;
     ] [ drop f ] if ;
 
 : dispatch-case-quot ( default assoc -- quot )
-    [
-        \ dup , \ integer? , [
-            \ integer>fixnum-strict , \ dup ,
-            dup keys [ infimum , ] [ supremum , ] bi \ between? ,
-            [
-                dup keys infimum , \ - ,
-                sort-keys values [ >quotation ] map ,
-                \ dispatch ,
-            ] [ ] make , dup , \ if ,
-        ] [ ] make , , \ if ,
-    ] [ ] make ;
+    swap [
+        [ keys [ infimum ] [ supremum ] bi over ]
+        [ sort-keys values [ >quotation ] map ] bi
+    ] dip dup '[
+        dup integer? [
+            integer>fixnum-strict dup _ _ between? [
+                _ - _ dispatch
+            ] _ if
+        ] _ if
+    ] ;
 
 PRIVATE>