]> gitweb.factorcode.org Git - factor.git/commitdiff
extra changes:
authorDoug Coleman <doug.coleman@gmail.com>
Sat, 26 Apr 2008 04:17:08 +0000 (23:17 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Sat, 26 Apr 2008 04:17:08 +0000 (23:17 -0500)
index* -> index-from
last-index* -> last-index-from
1 tail -> rest
1 tail-slice -> rest-slice
subset -> filter
prepose
find* -> find-from
find-last* -> find-last-from
before, after generic, < for integers
make between? work for timestamps

137 files changed:
extra/alarms/alarms.factor
extra/ascii/ascii-tests.factor
extra/ascii/ascii.factor
extra/benchmark/dispatch1/dispatch1.factor
extra/benchmark/dispatch5/dispatch5.factor
extra/bitfields/bitfields.factor
extra/boids/boids.factor
extra/bootstrap/help/help.factor
extra/builder/benchmark/benchmark.factor
extra/bunny/bunny.factor
extra/bunny/model/model.factor
extra/calendar/calendar.factor
extra/calendar/format/format.factor
extra/classes/tuple/lib/lib.factor
extra/cocoa/messages/messages.factor
extra/concurrency/combinators/combinators-docs.factor
extra/concurrency/combinators/combinators-tests.factor
extra/concurrency/combinators/combinators.factor
extra/core-foundation/fsevents/fsevents.factor
extra/db/db.factor
extra/db/queries/queries.factor
extra/db/types/types.factor
extra/documents/documents.factor
extra/factory/commands/commands.factor
extra/factory/factory.factor
extra/faq/faq.factor
extra/fry/fry.factor
extra/hardware-info/linux/linux.factor
extra/help/cookbook/cookbook.factor
extra/help/handbook/handbook.factor
extra/help/help.factor
extra/help/lint/lint.factor
extra/help/tutorial/tutorial.factor
extra/html/parser/analyzer/analyzer.factor
extra/http/server/server.factor
extra/http/server/templating/chloe/chloe-tests.factor
extra/http/server/templating/chloe/chloe.factor
extra/io/buffers/buffers.factor
extra/io/encodings/8-bit/8-bit.factor
extra/io/nonblocking/nonblocking.factor
extra/io/sockets/impl/impl.factor
extra/io/unix/select/select.factor
extra/koszul/koszul.factor
extra/lazy-lists/examples/examples.factor
extra/lazy-lists/lazy-lists-docs.factor
extra/lazy-lists/lazy-lists.factor
extra/logging/logging.factor
extra/logging/server/server.factor
extra/math/complex/complex-tests.factor
extra/math/functions/functions-docs.factor
extra/math/functions/functions-tests.factor
extra/math/functions/functions.factor
extra/math/matrices/elimination/elimination.factor
extra/math/ranges/ranges.factor
extra/math/ratios/ratios-tests.factor
extra/math/vectors/vectors.factor
extra/maze/maze.factor
extra/memoize/memoize-tests.factor
extra/models/models.factor
extra/multi-methods/multi-methods.factor
extra/newfx/newfx.factor
extra/opengl/gl/extensions/extensions.factor
extra/openssl/openssl-tests.factor
extra/optimizer/report/report.factor
extra/parser-combinators/parser-combinators.factor
extra/peg/ebnf/ebnf.factor
extra/peg/peg.factor
extra/peg/search/search.factor
extra/porter-stemmer/porter-stemmer-tests.factor
extra/project-euler/001/001.factor
extra/project-euler/002/002.factor
extra/project-euler/004/004.factor
extra/project-euler/022/022.factor
extra/project-euler/023/023.factor
extra/project-euler/026/026.factor
extra/project-euler/027/027.factor
extra/project-euler/030/030.factor
extra/project-euler/032/032.factor
extra/project-euler/033/033.factor
extra/project-euler/034/034.factor
extra/project-euler/035/035.factor
extra/project-euler/036/036.factor
extra/project-euler/037/037.factor
extra/project-euler/038/038.factor
extra/project-euler/042/042.factor
extra/project-euler/043/043.factor
extra/project-euler/044/044.factor
extra/project-euler/079/079.factor
extra/project-euler/150/150.factor
extra/regexp/regexp.factor
extra/reports/optimizer/optimizer.factor
extra/sequences/deep/deep-docs.factor
extra/sequences/deep/deep-tests.factor
extra/sequences/deep/deep.factor
extra/sequences/lib/lib.factor
extra/shufflers/shufflers-tests.factor
extra/smtp/smtp-tests.factor
extra/tetris/board/board.factor
extra/tools/annotations/annotations.factor
extra/tools/completion/completion.factor
extra/tools/deploy/shaker/shaker.factor
extra/tools/memory/memory-docs.factor
extra/tools/profiler/profiler.factor
extra/tools/test/test.factor
extra/tools/threads/threads.factor
extra/tools/vocabs/browser/browser.factor
extra/tools/vocabs/vocabs.factor
extra/ui/commands/commands.factor
extra/ui/gadgets/editors/editors.factor
extra/ui/gadgets/lists/lists.factor
extra/ui/gadgets/packs/packs.factor
extra/ui/gadgets/paragraphs/paragraphs.factor
extra/ui/gadgets/sliders/sliders.factor
extra/ui/gadgets/tracks/tracks.factor
extra/ui/gestures/gestures.factor
extra/ui/operations/operations.factor
extra/ui/render/render.factor
extra/ui/tools/interactor/interactor.factor
extra/ui/tools/tools-tests.factor
extra/ui/ui.factor
extra/unicode/breaks/breaks.factor
extra/unicode/data/data.factor
extra/unicode/normalize/normalize.factor
extra/unicode/syntax/syntax.factor
extra/windows/com/syntax/syntax.factor
extra/windows/messages/messages.factor
extra/wrap/wrap.factor
extra/x/widgets/wm/root/root.factor
extra/x/widgets/wm/unmapped-frames-menu/unmapped-frames-menu.factor
extra/x/widgets/wm/workspace/workspace.factor
extra/xml/tests/test.factor
extra/xml/utilities/utilities.factor
extra/xml/writer/writer.factor
extra/xml/xml.factor
extra/xmode/keyword-map/keyword-map.factor
extra/xmode/utilities/utilities-tests.factor
extra/xmode/utilities/utilities.factor

index bd1f02c44c58653abd0bacfff9720e6070a15a2d..ddc1d34121f72ab83b0eca24a676949069df0cde 100755 (executable)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays calendar combinators generic init kernel math
 namespaces sequences heaps boxes threads debugger quotations
-assocs ;
+assocs math.order ;
 IN: alarms
 
 TUPLE: alarm quot time interval entry ;
index b2b13b1d78a11d8039c3162e94a078b4f7094ae9..7dacce734b7562da14a0f8be48a076ac7c763faf 100644 (file)
@@ -1,5 +1,5 @@
-IN: ascii.tests
 USING: ascii tools.test sequences kernel math ;
+IN: ascii.tests
 
 [ t ] [ CHAR: a letter? ] unit-test
 [ f ] [ CHAR: A letter? ] unit-test
@@ -8,7 +8,6 @@ USING: ascii tools.test sequences kernel math ;
 [ t ] [ CHAR: 0 digit? ] unit-test
 [ f ] [ CHAR: x digit? ] unit-test
 
-
 [ 4 ] [
     0 "There are Four Upper Case characters"
     [ LETTER? [ 1+ ] when ] each
index e4a365cd1bd83c41f4c073945b8edfb280f65972..30b801a95080276f15ecae86d7091310feab5d79 100755 (executable)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-USING: sequences math kernel ;\r
+USING: kernel math math.order sequences ;\r
 IN: ascii\r
 \r
 : blank? ( ch -- ? ) " \t\n\r" member? ; inline\r
index 3317348f45e1c9eb2ada10d26d5164d3446fdd5d..1c8701f73f5c3964d52884498b41d519889cd4a9 100644 (file)
@@ -65,7 +65,7 @@ TUPLE: x30 ;
 M: x30 g ;
 
 : my-classes ( -- seq )
-    "benchmark.dispatch1" words [ tuple-class? ] subset ;
+    "benchmark.dispatch1" words [ tuple-class? ] filter ;
 
 : a-bunch-of-objects ( -- seq )
     my-classes [ new ] map ;
index a2f096695b32fcad0211ef91cb09b114fa01ccdd..727d28876591859f2475c2620a93eb1f07af0442 100755 (executable)
@@ -65,7 +65,7 @@ TUPLE: x30 ;
 INSTANCE: x30 g\r
 \r
 : my-classes ( -- seq )\r
-    "benchmark.dispatch5" words [ tuple-class? ] subset ;\r
+    "benchmark.dispatch5" words [ tuple-class? ] filter ;\r
 \r
 : a-bunch-of-objects ( -- seq )\r
     my-classes [ new ] map ;\r
index fca0568adf6c7ff251c1ca844121a0d418a8f05f..7fcec00e984a6dba2885adf55a269b7c974b0871 100644 (file)
@@ -93,7 +93,7 @@ M: check< summary drop "Number exceeds upper bound" ;
     >r keys r> define-slots ;
 
 : filter-pad ( slots -- slots )
-    [ drop padding-name? not ] assoc-subset ;
+    [ drop padding-name? not ] assoc-filter ;
 
 : define-bitfield ( classname slots -- ) 
     [
index 4ea20629c1192a3a0b644fb8aeb7d9df16201580..91e5e5fe2201e134140a5ac8d2e5951cbd5c02a0 100644 (file)
@@ -116,7 +116,7 @@ over boid-vel -rot relative-position angle-between ;
   <--&& ;
 
 : cohesion-neighborhood ( self -- boids )
-  boids> [ within-cohesion-neighborhood? ] with subset ;
+  boids> [ within-cohesion-neighborhood? ] with filter ;
 
 : cohesion-force ( self -- force )
   dup cohesion-neighborhood
@@ -136,7 +136,7 @@ over boid-vel -rot relative-position angle-between ;
   <--&& ;
 
 : separation-neighborhood ( self -- boids )
-  boids> [ within-separation-neighborhood? ] with subset ;
+  boids> [ within-separation-neighborhood? ] with filter ;
 
 : separation-force ( self -- force )
   dup separation-neighborhood
@@ -156,7 +156,7 @@ over boid-vel -rot relative-position angle-between ;
   <--&& ;
 
 : alignment-neighborhood ( self -- boids )
-boids> [ within-alignment-neighborhood? ] with subset ;
+boids> [ within-alignment-neighborhood? ] with filter ;
 
 : alignment-force ( self -- force )
   alignment-neighborhood
index 4326fcf61b2c82e18a87d2b321ad7ef42cb4a485..9dd4fd04b25ffd3fa8806556e676479b9b28108a 100755 (executable)
@@ -11,7 +11,7 @@ IN: bootstrap.help
 
     [ drop ] load-vocab-hook [
         vocabs
-        [ vocab-docs-loaded? not ] subset
+        [ vocab-docs-loaded? not ] filter
         [ load-docs ] each
     ] with-variable ;
 
index 9e5e9328318fb653ac0d885436e9dede67ed8a7e..afe277d30b78eb400887771637bef2e9f7765d39 100644 (file)
@@ -5,9 +5,9 @@ USING: kernel continuations arrays assocs sequences sorting math
 IN: builder.benchmark
 
 ! : passing-benchmarks ( table -- table )
-!   [ second first2 number? swap number? and ] subset ;
+!   [ second first2 number? swap number? and ] filter ;
 
-: passing-benchmarks ( table -- table ) [ second number? ] subset ;
+: passing-benchmarks ( table -- table ) [ second number? ] filter ;
 
 ! : simplify-table ( table -- table ) [ first2 second 2array ] map ;
 
index 43b9edcd0098d6a8ca3adfbc3dc9c8ad96cf10f6..ae34923c64353ac745b9d2d549bace7422e88e5d 100755 (executable)
@@ -33,7 +33,7 @@ M: bunny-gadget graft* ( gadget -- )
         [ <bunny-fixed-pipeline> ]
         [ <bunny-cel-shaded> ]
         [ <bunny-outlined> ]
-    } map-call-with [ ] subset
+    } map-call-with [ ] filter
     0
     roll {
         set-bunny-gadget-geom
index 897a30c417841d4d4fff90b3f0a395ccb8961caa..2af7a17560aee1cec38dd8cd55d5f7d56146bf45 100755 (executable)
@@ -6,7 +6,7 @@ float-arrays continuations namespaces sequences.lib ;
 IN: bunny.model
 
 : numbers ( str -- seq )
-    " " split [ string>number ] map [ ] subset ;
+    " " split [ string>number ] map [ ] filter ;
 
 : (parse-model) ( vs is -- vs is )
     readln [
index 2f93bf821852d371b8b00948db6c1ae0e48776fc..0e21876fe92bd7de8d54b198ca2f496e47f144a3 100755 (executable)
@@ -3,7 +3,7 @@
 
 USING: arrays kernel math math.functions namespaces sequences
 strings system vocabs.loader calendar.backend threads
-accessors combinators locals classes.tuple ;
+accessors combinators locals classes.tuple math.order ;
 IN: calendar
 
 TUPLE: timestamp year month day hour minute second gmt-offset ;
index 7bdaea70b55088fe05f7e612dc402ca972885a3d..33cc8c63fe99858509085b3eec16f54e74f01023 100755 (executable)
@@ -1,5 +1,5 @@
 USING: math math.parser kernel sequences io calendar\r
-accessors arrays io.streams.string splitting\r
+accessors arrays io.streams.string splitting math.order\r
 combinators accessors debugger ;\r
 IN: calendar.format\r
 \r
index 38104a45db551c6e3cbec1730b6c6bdedd40a957..d48addecc3cd7ff7cf8c5368a3a05e90e6ba7aec 100755 (executable)
@@ -11,7 +11,7 @@ MACRO: >tuple< ( class -- )
 
 MACRO: >tuple*< ( class -- )
     all-slots
-    [ slot-spec-name "*" tail? ] subset
+    [ slot-spec-name "*" tail? ] filter
     reader-slots ;
 
 
index df3f84d45121b203dc013ae1db66f23eff329c02..f917e20bc4d36dc462707c01b29708a4d4a33367 100755 (executable)
@@ -142,7 +142,7 @@ H{
 } assoc-union alien>objc-types set-global
 
 : objc-struct-type ( i string -- ctype )
-    2dup CHAR: = -rot index* swap subseq
+    2dup CHAR: = -rot index-from swap subseq
     dup c-types get key? [
         "Warning: no such C type: " write dup print
         drop "void*"
index 0db235d9e6d40c818aa4fbccd85d7c869712b1d1..bbf8fb0f5fdad6f925a651d1eee525ffd05d153f 100755 (executable)
@@ -11,15 +11,15 @@ HELP: parallel-each
 { $description "Spawns a new thread for applying " { $snippet "quot" } " to every element of " { $snippet "seq" } ", blocking until all quotations complete." }\r
 { $errors "Throws an error if one of the iterations throws an error." } ;\r
 \r
-HELP: parallel-subset\r
+HELP: parallel-filter\r
 { $values { "seq" sequence } { "quot" "a quotation with stack effect " { $snippet "( elt -- ? )" } } { "newseq" sequence } }\r
 { $description "Spawns a new thread for applying " { $snippet "quot" } " to every element of " { $snippet "seq" } ", collecting the elements for which the quotation yielded a true value." }\r
 { $errors "Throws an error if one of the iterations throws an error." } ;\r
 \r
 ARTICLE: "concurrency.combinators" "Concurrent combinators"\r
-"The " { $vocab-link "concurrency.combinators" } " vocabulary provides concurrent variants of " { $link each } ", " { $link map } " and " { $link subset } ":"\r
+"The " { $vocab-link "concurrency.combinators" } " vocabulary provides concurrent variants of " { $link each } ", " { $link map } " and " { $link filter } ":"\r
 { $subsection parallel-each }\r
 { $subsection parallel-map }\r
-{ $subsection parallel-subset } ;\r
+{ $subsection parallel-filter } ;\r
 \r
 ABOUT: "concurrency.combinators"\r
index 731a740983efe97ecd0dc4c0258d11da48f051e5..3381cba5e81ff2d3b7a24a4d5565cd20848f275e 100755 (executable)
@@ -4,7 +4,7 @@ concurrency.mailboxes threads sequences accessors ;
 \r
 [ [ drop ] parallel-each ] must-infer\r
 [ [ ] parallel-map ] must-infer\r
-[ [ ] parallel-subset ] must-infer\r
+[ [ ] parallel-filter ] must-infer\r
 \r
 [ { 1 4 9 } ] [ { 1 2 3 } [ sq ] parallel-map ] unit-test\r
 \r
@@ -14,7 +14,7 @@ concurrency.mailboxes threads sequences accessors ;
 [ error>> "Even" = ] must-fail-with\r
 \r
 [ V{ 0 3 6 9 } ]\r
-[ 10 [ 3 mod zero? ] parallel-subset ] unit-test\r
+[ 10 [ 3 mod zero? ] parallel-filter ] unit-test\r
 \r
 [ 10 ]\r
 [\r
index 76c3cfa77d96ff80a1cb984b37736b63de637845..3c4101e3811ba325b31850a4c1d8704de267116f 100755 (executable)
@@ -13,5 +13,5 @@ IN: concurrency.combinators
     [ [ >r curry r> spawn-stage ] 2curry each ] keep await ;\r
     inline\r
 \r
-: parallel-subset ( seq quot -- newseq )\r
+: parallel-filter ( seq quot -- newseq )\r
     over >r pusher >r each r> r> like ; inline\r
index 67a4e59d04151ba90e840319da4a156efcbed380..4698aa45ae007e274b745e739c030d7917cb43aa 100644 (file)
@@ -153,7 +153,7 @@ SYMBOL: event-stream-callbacks
 
 [
     event-stream-callbacks global
-    [ [ drop expired? not ] assoc-subset H{ } assoc-like ] change-at
+    [ [ drop expired? not ] assoc-filter H{ } assoc-like ] change-at
 ] "core-foundation" add-init-hook
 
 : add-event-source-callback ( quot -- id )
index 91128a7ffb0160596f5a004aa1145a9feed4b250..42a2b4bcb03b0fc82e49cb5764b5250739b2133a 100755 (executable)
@@ -130,7 +130,7 @@ M: nonthrowable execute-statement* ( statement type -- )
 
 : with-db ( db seq quot -- )
     >r make-db db-open db r>
-    [ db get swap [ drop ] swap compose with-disposal ] curry with-variable ;
+    [ db get swap [ drop ] prepose with-disposal ] curry with-variable ;
     inline
 
 : default-query ( query -- result-set )
index c9fd9a38a4b98eb8fdfe50ced767a7f3adb6e2ee..41b2d01b28b125fc7700d60e65ae1e6d09254107 100644 (file)
@@ -95,6 +95,6 @@ M: db <select-by-slots-statement> ( tuple class -- statement )
 
         " from " 0% 0%
         dupd
-        [ slot-name>> swap get-slot-named ] with subset
+        [ slot-name>> swap get-slot-named ] with filter
         dup empty? [ 2drop ] [ where-clause ] if ";" 0%
     ] query-make ;
index 110a8a388aa525ebecd81bbb877875c3d43b6e38..887293ef9472e1cce4cf4d3e9a09dfc2d75b6698 100755 (executable)
@@ -83,13 +83,13 @@ FACTOR-BLOB NULL ;
     dup number? [ number>string ] when ;
 
 : maybe-remove-id ( specs -- obj )
-    [ +native-id+? not ] subset ;
+    [ +native-id+? not ] filter ;
 
 : remove-relations ( specs -- newcolumns )
-    [ relation? not ] subset ;
+    [ relation? not ] filter ;
 
 : remove-id ( specs -- obj )
-    [ primary-key>> not ] subset ;
+    [ primary-key>> not ] filter ;
 
 ! SQLite Types: http://www.sqlite.org/datatype3.html
 ! NULL INTEGER REAL TEXT BLOB
@@ -152,7 +152,7 @@ HOOK: bind# db ( spec obj -- )
     tuck offset-of-slot set-slot ;
 
 : tuple>filled-slots ( tuple -- alist )
-    <mirror> [ nip ] assoc-subset ;
+    <mirror> [ nip ] assoc-filter ;
 
 : tuple>params ( specs tuple -- obj )
     [
index 4fa4ed3c09d3b571fcd90f073d2f8da62845089d..435a0aca55a16b330563c93ebe67ed2ab592c8f5 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2006, 2007 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays io kernel math models namespaces sequences strings
-splitting combinators unicode.categories ;
+splitting combinators unicode.categories math.order ;
 IN: documents
 
 : +col ( loc n -- newloc ) >r first2 r> + 2array ;
@@ -184,10 +184,10 @@ M: one-char-elt next-elt 2drop ;
     [ >r blank? r> xor ] curry ; inline
 
 : (prev-word) ( ? col str -- col )
-    rot break-detector find-last* drop ?1+ ;
+    rot break-detector find-last-from drop ?1+ ;
 
 : (next-word) ( ? col str -- col )
-    [ rot break-detector find* drop ] keep
+    [ rot break-detector find-from drop ] keep
     over not [ nip length ] [ drop ] if ;
 
 TUPLE: one-word-elt ;
index 5b0c575771d06b713377ba779b6190fa0414bd4b..6bf5ee8d4f834da61ad05087184bd8e165e415d2 100644 (file)
@@ -35,7 +35,7 @@ pointer-window up-till-frame dup <wm-frame> is? [ ] [ drop f ] if ;
 
 wm-root>
   <- children
-  [ <- mapped? ] subset
+  [ <- mapped? ] filter
   [ check-window-table ] map
   reverse
 
@@ -64,7 +64,7 @@ drop
 
 ! wm-root>
 !   <- children
-!   [ <- mapped? ] subset
+!   [ <- mapped? ] filter
 !   [ check-window-table ] map
 !   reverse
 
index ca534f12c145150d5f3fd5c87b624b8bbb147ae5..6faf334fc323cba8b1eb2c48664ab01eed2502d5 100644 (file)
@@ -13,7 +13,7 @@ IN: factory
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 : manage-windows ( -- )
-dpy get $default-root <- children [ <- mapped? ] subset
+dpy get $default-root <- children [ <- mapped? ] filter
 [ $id <wm-frame> new* drop ] each ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
index 1022a02d7ed8622dc2208eedada3b91a7fefb224..8c1a0e034cba88499c918d5097cf7146d859fb3d 100644 (file)
@@ -16,7 +16,7 @@ TUPLE: q/a question answer ;
 C: <q/a> q/a
 
 : li>q/a ( li -- q/a )
-    [ "br" tag-named*? not ] subset
+    [ "br" tag-named*? not ] filter
     [ "strong" tag-named*? ] find-after
     >r tag-children r> <q/a> ;
 
@@ -39,7 +39,7 @@ C: <question-list> question-list
 
 : xml>question-list ( list -- question-list )
     [ "title" swap at ] keep
-    tag-children [ tag? ] subset [ xml>q/a ] map
+    tag-children [ tag? ] filter [ xml>q/a ] map
     <question-list> ;
 
 : question-list>xml ( question-list -- list )
index 7621af68997e4ff3993cf918dfc01e84fa593417..1b9e2dc82bb11ef4959781dea443675f90fa04a4 100755 (executable)
@@ -14,7 +14,7 @@ DEFER: (shallow-fry)
 : ((shallow-fry)) ( accum quot adder -- result )
     >r [ ] swap (shallow-fry) r>
     append swap dup empty? [ drop ] [
-        [ swap compose ] curry append
+        [ prepose ] curry append
     ] if ; inline
 
 : (shallow-fry) ( accum quot -- result )
@@ -51,7 +51,7 @@ DEFER: (shallow-fry)
         [
             dup callable? [
                 [
-                    [ { , namespaces:, @ } member? ] subset length
+                    [ { , namespaces:, @ } member? ] filter length
                     \ , <repetition> %
                 ]
                 [ deep-fry % ] bi
index de7b3f40a5592594ff8e92bc1b05742e04ea79e6..5d9ca6eaa7a9fbed0e6846bff571e54585bc3f70 100644 (file)
@@ -7,7 +7,7 @@ IN: hardware-info.linux
 
 : uname ( -- seq )
     65536 "char" <c-array> [ (uname) io-error ] keep
-    "\0" split [ empty? not ] subset [ >string ] map
+    "\0" split [ empty? not ] filter [ >string ] map
     6 "" pad-right ;
 
 : sysname ( -- string ) uname first ;
@@ -18,4 +18,4 @@ IN: hardware-info.linux
 : domainname ( -- string ) uname 5 swap nth ;
 
 : kernel-version ( -- seq )
-    release ".-" split [ ] subset 5 "" pad-right ;
+    release ".-" split [ ] filter 5 "" pad-right ;
index 9b21bf7fff552f76ceb591ae7d49a732b82f0a71..995b8540f59d8d0d1fae23fa366e074b2b0d3287 100755 (executable)
@@ -111,7 +111,7 @@ $nl
 "You can create a new array, only containing elements which satisfy some condition:"
 { $example
     ": negative? ( n -- ? ) 0 < ;"
-    "{ -12 10 16 0 -1 -3 -9 } [ negative? ] subset ."
+    "{ -12 10 16 0 -1 -3 -9 } [ negative? ] filter ."
     "{ -12 -1 -3 -9 }"
 }
 { $references
index 15e3b8be1d48efe2596088bd8d28bf0f7c279464..7babaec7f6711a9742ef9a36e7f764dd5a060400 100755 (executable)
@@ -228,13 +228,13 @@ ARTICLE: "article-index" "Article index"
 { $index [ articles get keys ] } ;
 
 ARTICLE: "primitive-index" "Primitive index"
-{ $index [ all-words [ primitive? ] subset ] } ;
+{ $index [ all-words [ primitive? ] filter ] } ;
 
 ARTICLE: "error-index" "Error index"
 { $index [ all-errors ] } ;
 
 ARTICLE: "type-index" "Type index"
-{ $index [ builtins get [ ] subset ] } ;
+{ $index [ builtins get [ ] filter ] } ;
 
 ARTICLE: "class-index" "Class index"
 { $index [ classes ] } ;
index e0b27099329974b4714e356455c8ab0bf65be80e..2d56251392b4348f256d1eda6b7e2bb4472e9c65 100755 (executable)
@@ -29,7 +29,7 @@ M: predicate word-help* drop \ $predicate ;
 
 : all-articles ( -- seq )
     articles get keys
-    all-words [ word-help ] subset append ;
+    all-words [ word-help ] filter append ;
 
 : xref-help ( -- )
     all-articles [ xref-article ] each ;
@@ -41,7 +41,7 @@ M: predicate word-help* drop \ $predicate ;
     [ dup article-title ] { } map>assoc sort-values keys ;
 
 : all-errors ( -- seq )
-    all-words [ error? ] subset sort-articles ;
+    all-words [ error? ] filter sort-articles ;
 
 M: word article-name word-name ;
 
@@ -135,7 +135,7 @@ M: word set-article-parent swap "help-parent" set-word-prop ;
     ":vars - list all variables at error time" print ;
 
 : :help ( -- )
-    error get delegates [ error-help ] map [ ] subset
+    error get delegates [ error-help ] map [ ] filter
     {
         { [ dup empty? ] [ (:help-none) ] }
         { [ dup length 1 = ] [ first help ] }
index 28af93f295c170d81da3eecf2b79a80ac402b392..99c1798314360edf9b8e767a8bf0c345f0d47f34 100755 (executable)
@@ -75,7 +75,7 @@ IN: help.lint
     [ help ] with-string-writer drop ;
 
 : all-word-help ( words -- seq )
-    [ word-help ] subset ;
+    [ word-help ] filter ;
 
 TUPLE: help-error topic ;
 
@@ -131,7 +131,7 @@ M: help-error error.
         articles get keys "group-articles" set
         child-vocabs
         [ dup check-vocab ] { } map>assoc
-        [ nip empty? not ] assoc-subset
+        [ nip empty? not ] assoc-filter
     ] with-scope ;
 
 : typos. ( assoc -- )
@@ -150,12 +150,12 @@ M: help-error error.
 : help-lint-all ( -- ) "" help-lint ;
 
 : unlinked-words ( words -- seq )
-    all-word-help [ article-parent not ] subset ;
+    all-word-help [ article-parent not ] filter ;
 
 : linked-undocumented-words ( -- seq )
     all-words
-    [ word-help not ] subset
-    [ article-parent ] subset
-    [ "predicating" word-prop not ] subset ;
+    [ word-help not ] filter
+    [ article-parent ] filter
+    [ "predicating" word-prop not ] filter ;
 
 MAIN: help-lint
index f01840d9272d8c41e61c80b596894fe5b65a1d4d..fffcda69b692307685cea8b0822e29f687fb8999 100755 (executable)
@@ -123,8 +123,8 @@ $nl
 { $code "\"A man, a plan, a canal: Panama.\"" }
 "Now, place a quotation containing " { $link Letter? } " on the stack; quoting code places it on the stack instead of executing it immediately:"
 { $code "[ Letter? ]" }
-"Finally, pass the string and the quotation to the " { $link subset } " word:"
-{ $code "subset" }
+"Finally, pass the string and the quotation to the " { $link filter } " word:"
+{ $code "filter" }
 "Now the stack should contain the following string:"
 { "\"AmanaplanacanalPanama\"" }
 "This is almost what we want; we just need to convert the string to lower case now. This can be done by calling " { $link >lower } "; the " { $snippet ">" } " prefix is a naming convention for conversion operations, and should be read as ``to'':"
@@ -132,9 +132,9 @@ $nl
 "Finally, let's print the top of the stack and discard it:"
 { $code "." }
 "This will output " { $snippet "amanaplanacanalpanama" } ". This string is in the form that we want, and we evaluated the following code to get it into this form:"
-{ $code "[ Letter? ] subset >lower" }
+{ $code "[ Letter? ] filter >lower" }
 "This code starts with a string on the stack, removes non-alphabetical characters, and converts the result to lower case, leaving a new string on the stack. We put this code in a new word, and add the new word to " { $snippet "palindrome.factor" } ":"
-{ $code ": normalize ( str -- newstr ) [ Letter? ] subset >lower ;" }
+{ $code ": normalize ( str -- newstr ) [ Letter? ] filter >lower ;" }
 "You will need to add " { $vocab-link "unicode.categories" } " to the vocabulary search path, so that " { $link Letter? } " can be used in the source file."
 $nl
 "We modify " { $snippet "palindrome?" } " to first apply " { $snippet "normalize" } " to its input:"
index 1a60390f64b346ec5815c16212f8efe9195539d5..afe83d180a4f2a84e87b05bb829d5e3b78526033 100755 (executable)
@@ -11,7 +11,7 @@ IN: html.parser.analyzer
     (find-relative) ;
 
 : (find-all) ( n seq quot -- )
-    2dup >r >r find* [
+    2dup >r >r find-from [
         dupd 2array , 1+ r> r> (find-all)
     ] [
         r> r> 3drop
@@ -21,7 +21,7 @@ IN: html.parser.analyzer
     [ 0 -rot (find-all) ] { } make ;
 
 : (find-nth) ( offset seq quot n count -- obj )
-    >r >r [ find* ] 2keep 4 npick [
+    >r >r [ find-from ] 2keep 4 npick [
         r> r> 1+ 2dup <= [
             4drop
         ] [
@@ -46,7 +46,7 @@ IN: html.parser.analyzer
         ] [
             drop t
         ] if
-    ] subset ;
+    ] filter ;
 
 : trim-text ( vector -- vector' )
     [
@@ -57,14 +57,14 @@ IN: html.parser.analyzer
     ] map ;
 
 : find-by-id ( id vector -- vector )
-    [ tag-attributes "id" swap at = ] with subset ;
+    [ tag-attributes "id" swap at = ] with filter ;
 
 : find-by-class ( id vector -- vector )
-    [ tag-attributes "class" swap at = ] with subset ;
+    [ tag-attributes "class" swap at = ] with filter ;
 
 : find-by-name ( str vector -- vector )
     >r >lower r>
-    [ tag-name = ] with subset ;
+    [ tag-name = ] with filter ;
 
 : find-first-name ( str vector -- i/f tag/f )
     >r >lower r>
@@ -76,13 +76,13 @@ IN: html.parser.analyzer
 
 : find-by-attribute-key ( key vector -- vector )
     >r >lower r>
-    [ tag-attributes at ] with subset
-    [ ] subset ;
+    [ tag-attributes at ] with filter
+    [ ] filter ;
 
 : find-by-attribute-key-value ( value key vector -- vector )
     >r >lower r>
-    [ tag-attributes at over = ] with subset nip
-    [ ] subset ;
+    [ tag-attributes at over = ] with filter nip
+    [ ] filter ;
 
 : find-first-attribute-key-value ( value key vector -- i/f tag/f )
     >r >lower r>
@@ -109,12 +109,12 @@ IN: html.parser.analyzer
     tag-attributes [ "href" swap at ] [ f ] if* ;
 
 : find-links ( vector -- vector )
-    [ tag-name "a" = ] subset
-    [ tag-link ] subset ;
+    [ tag-name "a" = ] filter
+    [ tag-link ] filter ;
 
 
 : find-by-text ( seq quot -- tag )
-    [ dup tag-name text = ] swap compose find drop ;
+    [ dup tag-name text = ] prepose find drop ;
 
 : find-opening-tags-by-name ( name seq -- seq )
     [ [ tag-name = ] keep tag-closing? not and ] with find-all ;
@@ -125,11 +125,11 @@ IN: html.parser.analyzer
 : query>assoc* ( str -- hash )
     "?" split1 nip query>assoc ;
 
-! clear "http://fark.com" http-get parse-html find-links [ "go.pl" swap start ] subset [ "=" split peek ] map
+! clear "http://fark.com" http-get parse-html find-links [ "go.pl" swap start ] filter [ "=" split peek ] map
 
 ! clear "http://www.sailwx.info/shiptrack/cruiseships.phtml" http-get parse-html remove-blank-text
 ! "a" over find-opening-tags-by-name
-! [ nip "shipposition.phtml?call=GBTT" swap href-contains? ] assoc-subset
+! [ nip "shipposition.phtml?call=GBTT" swap href-contains? ] assoc-filter
 ! first first 8 + over nth
 ! tag-attributes "href" swap at query>assoc*
 ! "lat" over at "lon" rot at
index 88a748d9494a95172e94f6789a16d5a4f6120d32..848d878c5b2823e53c07a0e13be326a3b51f8ff5 100755 (executable)
@@ -221,7 +221,7 @@ SYMBOL: exit-continuation
     '[ exit-continuation set @ ] callcc1 exit-continuation off ;
 
 : split-path ( string -- path )
-    "/" split [ empty? not ] subset ;
+    "/" split [ empty? not ] filter ;
 
 : do-request ( request -- response )
     [
index f517af4a12f7d0cd72d95b89b456b549bba9bbc1..cb8b56e002d542e5763b9b82561ec825d536774b 100644 (file)
@@ -30,7 +30,7 @@ must-fail-with
 ] unit-test
 
 : run-template
-    with-string-writer [ "\r\n\t" member? not ] subset
+    with-string-writer [ "\r\n\t" member? not ] filter
     "?>" split1 nip ; inline
 
 : test-template ( name -- template )
index 37936049292185b484e54de1476fd8e944b07b7e..5714ccbfe307626e5af620f653958440fe82fe5e 100644 (file)
@@ -105,7 +105,7 @@ SYMBOL: tags
     <form
     "POST" =method
     [ "action" required-attr resolve-base-path =action ]
-    [ tag-attrs [ drop name-tag "action" = not ] assoc-subset print-attrs ] bi
+    [ tag-attrs [ drop name-tag "action" = not ] assoc-filter print-attrs ] bi
     form>
     hidden-form-field ;
 
index a9014755446ab9cd6828b82835decee50295eb36..d5b917246a304d6c5084fb7fa451b5259cf53c92 100755 (executable)
@@ -1,10 +1,10 @@
 ! Copyright (C) 2004, 2005 Mackenzie Straight.
 ! Copyright (C) 2006, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-IN: io.buffers
 USING: alien alien.accessors alien.c-types alien.syntax kernel
 kernel.private libc math sequences byte-arrays strings hints
-accessors ;
+accessors math.order ;
+IN: io.buffers
 
 TUPLE: buffer size ptr fill pos ;
 
index dc6e52d67efacc252038f1ecf169bac36ec21040..3fbb3908e272254c24f01bf3e329a9497e43e09b 100755 (executable)
@@ -39,7 +39,7 @@ IN: io.encodings.8-bit
 
 : process-contents ( lines -- assoc )
     [ "#" split1 drop ] map
-    [ empty? not ] subset
+    [ empty? not ] filter
     [ "\t" split 2 head [ 2 tail-if hex> ] map ] map ;
 
 : byte>ch ( assoc -- array )
index 0bf7a6ccec7495dfc49dfb938ef5acea316ec012..fc8ade5758287c9dc0409d666b44471a1df31a2c 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2008 Slava Pestov, Doug Coleman
 ! See http://factorcode.org/license.txt for BSD license.
 USING: math kernel io sequences io.buffers io.timeouts generic
-byte-vectors system io.streams.duplex io.encodings
+byte-vectors system io.streams.duplex io.encodings math.order
 io.backend continuations debugger classes byte-arrays namespaces
 splitting dlists assocs io.encodings.binary inspector accessors ;
 IN: io.nonblocking
index 2a376e18c2cc7cb25525d1984df53390dd6966c2..fa82080259529c709110ff8179540b874b32dc98 100755 (executable)
@@ -103,7 +103,7 @@ M: f parse-sockaddr nip ;
 : parse-addrinfo-list ( addrinfo -- seq )
     [ addrinfo-next ] follow
     [ addrinfo>addrspec ] map
-    [ ] subset ;
+    [ ] filter ;
 
 : prepare-resolve-host ( host serv passive? -- host' serv' flags )
     #! If the port is a number, we resolve for 'http' then
index 9413556d4f2480b5fe48853865e5ea9a8b27353f..74b713682305f22f0cb4e12d24647c38b1630591 100755 (executable)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien.c-types kernel io.nonblocking io.unix.backend
 bit-arrays sequences assocs unix math namespaces structs
-accessors ;
+accessors math.order ;
 IN: io.unix.select
 
 TUPLE: select-mx < mx read-fdset write-fdset ;
index b079cec42c69f8ee97f208c1a6df2a592477a273..7e24d873a222862b55f55fe00836f1ae02d0436f 100755 (executable)
@@ -19,7 +19,7 @@ IN: koszul
     } cond ;
 
 : canonicalize
-    [ nip zero? not ] assoc-subset ;
+    [ nip zero? not ] assoc-filter ;
 
 SYMBOL: terms
 
@@ -71,7 +71,7 @@ SYMBOL: terms
     [ natural-sort ] keep [ index ] curry map ;
 
 : (inversions) ( n seq -- n )
-    [ > ] with subset length ;
+    [ > ] with filter length ;
 
 : inversions ( seq -- n )
     0 swap [ length ] keep [
@@ -148,7 +148,7 @@ DEFER: (d)
 : nth-basis-elt ( generators n -- elt )
     over length [
         3dup bit? [ nth ] [ 2drop f ] if
-    ] map [ ] subset 2nip ;
+    ] map [ ] filter 2nip ;
 
 : basis ( generators -- seq )
     natural-sort dup length 2^ [ nth-basis-elt ] with map ;
@@ -279,7 +279,7 @@ DEFER: (d)
 
 : bigraded-laplacian ( u-generators z-generators quot -- seq )
     >r [ basis graded ] bi@ tensor bigraded-triples r>
-    [ [ first3 ] swap compose map ] curry map ; inline
+    [ [ first3 ] prepose map ] curry map ; inline
 
 : bigraded-laplacian-betti ( u-generators z-generators -- seq )
     [ laplacian-betti ] bigraded-laplacian ;
index 2f7646aab113f18ebdbda48b7283670252a7528a..844ae31085686e7edd3935f0f17ec5c3c8f8a9fe 100644 (file)
@@ -8,7 +8,7 @@ IN: lazy-lists.examples
 : naturals 0 lfrom ;
 : positives 1 lfrom ;
 : evens 0 [ 2 + ] lfrom-by ;
-: odds 1 lfrom [ 2 mod 1 = ] lsubset ;
+: odds 1 lfrom [ 2 mod 1 = ] lfilter ;
 : powers-of-2 1 [ 2 * ] lfrom-by ;
 : ones 1 [ ] lfrom-by ;
 : squares naturals [ dup * ] lmap ;
index ebacea03d84edc2c92d145c09955926969c8fd8a..b240b3fbc2545b114f9cb46e15d06e917d0adffd 100644 (file)
@@ -82,7 +82,7 @@ HELP: uncons
 { $values { "cons" "a cons object" } { "car" "the head of the list" } { "cdr" "the tail of the list" } }
 { $description "Put the head and tail of the list on the stack." } ;
 
-{ leach lreduce lmap lmap-with ltake lsubset lappend lfrom lfrom-by lconcat lcartesian-product lcartesian-product* lcomp lcomp* lmerge lreduce lwhile luntil } related-words
+{ leach lreduce lmap lmap-with ltake lfilter lappend lfrom lfrom-by lconcat lcartesian-product lcartesian-product* lcomp lcomp* lmerge lreduce lwhile luntil } related-words
 
 HELP: leach
 { $values { "list" "a cons object" } { "quot" "a quotation with stack effect ( obj -- )" } }
@@ -104,9 +104,9 @@ HELP: ltake
 { $values { "n" "a non negative integer" } { "list" "a cons object" } { "result" "resulting cons object" } }
 { $description "Outputs a lazy list containing the first n items in the list. This is done a lazy manner. No evaluation of the list elements occurs initially but a " { $link <lazy-take> } " object is returned which conforms to the list protocol. Calling " { $link car } ", " { $link cdr } " or " { $link nil? } " on this will evaluate elements as required." } ;
 
-HELP: lsubset
+HELP: lfilter
 { $values { "list" "a cons object" } { "quot" "a quotation with stack effect ( -- X )" } { "result" "resulting cons object" } }
-{ $description "Perform a similar functionality to that of the " { $link subset } " word, but in a lazy manner. No evaluation of the list elements occurs initially but a " { $link <lazy-subset> } " object is returned which conforms to the list protocol. Calling " { $link car } ", " { $link cdr } " or " { $link nil? } " on this will evaluate elements as required." } ;
+{ $description "Perform a similar functionality to that of the " { $link filter } " word, but in a lazy manner. No evaluation of the list elements occurs initially but a " { $link <lazy-filter> } " object is returned which conforms to the list protocol. Calling " { $link car } ", " { $link cdr } " or " { $link nil? } " on this will evaluate elements as required." } ;
 
 HELP: lwhile
 { $values { "list" "a cons object" } { "quot" "a quotation with stack effect ( X -- bool )" } { "result" "resulting cons object" } }
index b87a1e5f2e5176fe66ae63a94af261ca1d5972dd..6db82ed2c1d9b2ec28303d03faf58f182f17d1f8 100644 (file)
@@ -201,37 +201,37 @@ M: lazy-while cdr ( lazy-while -- cdr )
 M: lazy-while nil? ( lazy-while -- bool )
    [ car ] keep lazy-while-quot call not ;
 
-TUPLE: lazy-subset cons quot ;
+TUPLE: lazy-filter cons quot ;
 
-C: <lazy-subset> lazy-subset
+C: <lazy-filter> lazy-filter
 
-: lsubset ( list quot -- result )
-    over nil? [ 2drop nil ] [ <lazy-subset> <memoized-cons> ] if ;
+: lfilter ( list quot -- result )
+    over nil? [ 2drop nil ] [ <lazy-filter> <memoized-cons> ] if ;
 
-: car-subset?  ( lazy-subset -- ? )
-  [ lazy-subset-cons car ] keep
-  lazy-subset-quot call ;
+: car-filter?  ( lazy-filter -- ? )
+  [ lazy-filter-cons car ] keep
+  lazy-filter-quot call ;
 
-: skip ( lazy-subset -- )
-  [ lazy-subset-cons cdr ] keep
-  set-lazy-subset-cons ;
+: skip ( lazy-filter -- )
+  [ lazy-filter-cons cdr ] keep
+  set-lazy-filter-cons ;
 
-M: lazy-subset car ( lazy-subset -- car )
-  dup car-subset? [ lazy-subset-cons ] [ dup skip ] if car ;
+M: lazy-filter car ( lazy-filter -- car )
+  dup car-filter? [ lazy-filter-cons ] [ dup skip ] if car ;
 
-M: lazy-subset cdr ( lazy-subset -- cdr )
-  dup car-subset? [
-    [ lazy-subset-cons cdr ] keep
-    lazy-subset-quot lsubset
+M: lazy-filter cdr ( lazy-filter -- cdr )
+  dup car-filter? [
+    [ lazy-filter-cons cdr ] keep
+    lazy-filter-quot lfilter
   ] [
     dup skip cdr
   ] if ;
 
-M: lazy-subset nil? ( lazy-subset -- bool )
-  dup lazy-subset-cons nil? [
+M: lazy-filter nil? ( lazy-filter -- bool )
+  dup lazy-filter-cons nil? [
     drop t
   ] [
-    dup car-subset? [
+    dup car-filter? [
       drop f
     ] [
       dup skip nil?
@@ -373,7 +373,7 @@ M: lazy-concat nil? ( lazy-concat -- bool )
   [ lcartesian-product* ] dip lmap ;
 
 : lcomp* ( list guards quot -- result )
-  [ [ lcartesian-product* ] dip [ lsubset ] each ] dip lmap ;
+  [ [ lcartesian-product* ] dip [ lfilter ] each ] dip lmap ;
 
 DEFER: lmerge
 
@@ -442,4 +442,4 @@ INSTANCE: lazy-from-by list
 INSTANCE: lazy-zip list
 INSTANCE: lazy-while list
 INSTANCE: lazy-until list
-INSTANCE: lazy-subset list
+INSTANCE: lazy-filter list
index 664337c3d3ec78f9c1e8526a1629c1e507233975..f54ab05bbd2e9835c2ad0defd47400493b86ddef 100755 (executable)
@@ -72,7 +72,7 @@ PRIVATE>
     >r >r dup r> r> 2curry annotate ;\r
 \r
 : call-logging-quot ( quot word level -- quot' )\r
-    "called" -rot [ log-message ] 3curry swap compose ;\r
+    "called" -rot [ log-message ] 3curry prepose ;\r
 \r
 : add-logging ( word level -- )\r
     [ call-logging-quot ] (define-logging) ;\r
@@ -88,7 +88,7 @@ PRIVATE>
 : input# stack-effect effect-in length ;\r
 \r
 : input-logging-quot ( quot word level -- quot' )\r
-    over input# -rot [ log-stack ] 3curry swap compose ;\r
+    over input# -rot [ log-stack ] 3curry prepose ;\r
 \r
 : add-input-logging ( word level -- )\r
     [ input-logging-quot ] (define-logging) ;\r
index c6aee034cc75f99b9727a940302ac129ccfee3a1..9da2bec9273b79d231f92d1b0d9343199a68439b 100755 (executable)
@@ -37,7 +37,7 @@ SYMBOL: log-files
     write bl write ": " write print ;\r
 \r
 : write-message ( msg word-name level -- )\r
-    rot [ empty? not ] subset {\r
+    rot [ empty? not ] filter {\r
         { [ dup empty? ] [ 3drop ] }\r
         { [ dup length 1 = ] [ first -rot f (write-message) ] }\r
         [\r
index 9174ac99883f6615bfbb5cd2ae34cf1a7f0c137c..063871ce5be5b8b80f464f756577965b4b99383e 100755 (executable)
@@ -1,5 +1,5 @@
-USING: kernel math math.constants math.functions tools.test
-prettyprint ;
+USING: kernel math math.constants math.functions math.order
+tools.test prettyprint ;
 IN: math.complex.tests
 
 [ 1 C{ 0 1 } rect> ] must-fail
index 35471653dc75a73c9d3710875faf31b283887324..c02325810528a60e98ac7a6592c2a394e9bb9846 100755 (executable)
@@ -1,4 +1,4 @@
-USING: help.markup help.syntax kernel math
+USING: help.markup help.syntax kernel math math.order
 sequences quotations math.functions.private ;
 IN: math.functions
 
index 8c71eb545b6b2e3886c1add0e51dab4f97ac3d25..c9215d8de739d9adadc25b34ecd6a94454987016 100755 (executable)
@@ -1,5 +1,5 @@
-USING: kernel math math.constants math.functions math.private
-math.libm tools.test ;
+USING: kernel math math.constants math.functions math.order
+math.private math.libm tools.test ;
 IN: math.functions.tests
 
 [ t ] [ 4 4 .00000001 ~ ] unit-test
index 632939ff71fa023099a10f7fc41ae934f9924852..481b58bb929301770fa4d049fe5ef51af41f4044 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2004, 2007 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: math kernel math.constants math.private
-math.libm combinators ;
+math.libm combinators math.order ;
 IN: math.functions
 
 <PRIVATE
index 8ac9771767ce7d80b04e9fa85f34d3f81d8130b7..7638550129d2404c613299fc4940201e5d3127b3 100755 (executable)
@@ -21,7 +21,7 @@ SYMBOL: matrix
 : cols ( -- n ) 0 nth-row length ;
 
 : skip ( i seq quot -- n )
-    over >r find* drop r> length or ; inline
+    over >r find-from drop r> length or ; inline
 
 : first-col ( row# -- n )
     #! First non-zero column
@@ -69,7 +69,7 @@ SYMBOL: matrix
 : echelon ( matrix -- matrix' )
     [ 0 0 (echelon) ] with-matrix ;
 
-: nonzero-rows [ [ zero? ] all? not ] subset ;
+: nonzero-rows [ [ zero? ] all? not ] filter ;
 
 : null/rank ( matrix -- null rank )
     echelon dup length swap nonzero-rows length [ - ] keep ;
index cc7d0758e57f24e4c49fed9445670f49533efa82..eb2623296916bd6bfa0e8c41fc770ea7b405a078 100755 (executable)
@@ -1,4 +1,4 @@
-USING: kernel layouts math namespaces sequences
+USING: kernel layouts math math.order namespaces sequences
 sequences.private accessors ;
 IN: math.ranges
 
index 75572d8415d6ccdf6972d77b8b7749e68e07ee54..28801fa2e98c7e0c863da704def1c792193f6d31 100755 (executable)
@@ -1,5 +1,5 @@
-USING: kernel math math.parser math.ratios math.functions
-tools.test ;
+USING: kernel math math.order math.parser math.ratios
+math.functions tools.test ;
 IN: math.ratios.tests
 
 [ 1 2 ] [ 1/2 >fraction ] unit-test
index 51efd33d4580f0811dff080dcef148d9114ac2e2..9c9015d2424de7f82e060a09b26ca19e3501d759 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2007 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays kernel sequences math math.functions hints
-float-arrays ;
+float-arrays math.order ;
 IN: math.vectors
 
 : vneg ( u -- v ) [ neg ] map ;
index 5d7bb9a1a22983fef8bd77a37bd8c1c11bbeb918..fa25dbd17c54d616e15ff12af47ddbe8dfbee754 100644 (file)
@@ -17,7 +17,7 @@ SYMBOL: visited
 : choices ( cell -- seq )
     { { -1 0 } { 1 0 } { 0 -1 } { 0 1 } }
     [ v+ ] with map
-    [ unvisited? ] subset ;
+    [ unvisited? ] filter ;
 
 : random-neighbour ( cell -- newcell ) choices random ;
 
index dbd2d3a16a5d826b4789e4a2376f5aae35724074..3ce0abd7d9835224557d7a28d383573cde315288 100644 (file)
@@ -1,6 +1,7 @@
 ! Copyright (C) 2007 Slava Pestov, Daniel Ehrenberg.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: math kernel memoize tools.test parser ;
+IN: memoize.tests
 
 MEMO: fib ( m -- n )
     dup 1 <= [ drop 1 ] [ dup 1 - fib swap 2 - fib + ] if ;
index 58335de3d11371abfd7e3db471261c82d0071b73..7a0b4b532aa414bb595e2792f8ca33400489da44 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2006, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: generic kernel math sequences arrays assocs alarms
-calendar ;
+calendar math.order ;
 IN: models
 
 TUPLE: model < identity-tuple
index dd6fc7dfff6014c43d473894f141130c7bf2fd25..1c6473216e6f59903d132c4a8d90b8d611d1c57e 100755 (executable)
@@ -19,12 +19,12 @@ SYMBOL: total
 
 : canonicalize-specializer-1 ( specializer -- specializer' )
     [
-        [ class? ] subset
+        [ class? ] filter
         [ length <reversed> [ 1+ neg ] map ] keep zip
         [ length args [ max ] change ] keep
     ]
     [
-        [ pair? ] subset
+        [ pair? ] filter
         [ keys [ hooks get push-new ] each ] keep
     ] bi append ;
 
@@ -73,7 +73,7 @@ SYMBOL: total
 ! Part II: Topologically sorting specializers
 : maximal-element ( seq quot -- n elt )
     dupd [
-        swapd [ call 0 < ] 2curry subset empty?
+        swapd [ call 0 < ] 2curry filter empty?
     ] 2curry find [ "Topological sort failed" throw ] unless* ;
     inline
 
@@ -111,7 +111,7 @@ SYMBOL: total
 : multi-predicate ( classes -- quot )
     dup length <reversed>
     [ picker 2array ] 2map
-    [ drop object eq? not ] assoc-subset
+    [ drop object eq? not ] assoc-filter
     dup empty? [ drop [ t ] ] [
         [ (multi-predicate) ] { } assoc>map
         unclip [ swap [ f ] \ if 3array append [ ] like ] reduce
index 3e5f66eb6fa3032998294e3a1ab5f4cb9a0b3faa..2b2f916aeaa5fb5079c0e0109ff4b58a64bc1e8c 100644 (file)
@@ -143,7 +143,7 @@ METHOD: as-mutate { object object assoc }       set-at ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-: subset-of ( quot seq -- seq ) swap subset ;
+: filter-of ( quot seq -- seq ) swap filter ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
index 739ad203a19825f39c951d14c4a447e67f7e0300..8f2eee9459d1cc7ac88d3f5ad4460d20aca5432c 100644 (file)
@@ -43,6 +43,6 @@ reset-gl-function-number-counter
     scan drop "}" parse-tokens swap prefix
     gl-function-number
     [ gl-function-pointer ] 2curry swap
-    ";" parse-tokens [ "()" subseq? not ] subset
+    ";" parse-tokens [ "()" subseq? not ] filter
     define-indirect
     ; parsing
index 5825ca7270b38d4b8de74074553307a405ad8ffb..f42c611fc0e17a14a5f6df9f6771655871f47e8d 100755 (executable)
@@ -84,7 +84,7 @@ verify-load-locations ] unit-test
 ! SYMBOL: ssl
 ! 
 ! : is-set ( seq -- newseq )
-!     <enum> >alist [ nip ] assoc-subset >hashtable keys ;
+!     <enum> >alist [ nip ] assoc-filter >hashtable keys ;
 ! 
 ! ! 1234 server-socket sock set
 ! "127.0.0.1" 1234 <inet4> SOCK_STREAM server-fd sock set
index feaace9808ee0147f7a38472e5825aa750d56cab..5cf2d5129e0eafea08d369382babdd0fc5b98e32 100755 (executable)
@@ -8,7 +8,7 @@ optimizer math ;
     [ r> 1+ count-optimization-passes ] [ drop r> ] if ;\r
 \r
 : results\r
-    [ [ second ] swap compose compare ] curry sort 20 tail*\r
+    [ [ second ] prepose compare ] curry sort 20 tail*\r
     print\r
     standard-table-style\r
     [\r
@@ -16,7 +16,7 @@ optimizer math ;
     ] tabular-output ;\r
 \r
 : optimizer-report\r
-    all-words [ compiled? ] subset\r
+    all-words [ compiled? ] filter\r
     [\r
         dup [\r
             word-dataflow nip 1 count-optimization-passes\r
index 40620295c6d344b3c86d0108636ee880aef68794..b710d9d4810cff4a222af538a91582e09567318b 100755 (executable)
@@ -200,7 +200,7 @@ M: just-parser parse ( input parser -- result )
     #! from the results anything where the remaining
     #! input to be parsed is not empty. So ensures a
     #! fully parsed input string.
-    just-parser-p1 parse [ parse-result-unparsed empty? ] lsubset ;
+    just-parser-p1 parse [ parse-result-unparsed empty? ] lfilter ;
 
 TUPLE: apply-parser p1 quot ;
 
index 8bf0475da54d4b3098040e0eed905fa4d6f6b388..57851812ef55e0ab2c5065babad15efcc5e18144 100644 (file)
@@ -285,7 +285,7 @@ M: ebnf-optional (transform) ( ast -- parser )
 GENERIC: build-locals ( code ast -- code )\r
 \r
 M: ebnf-sequence build-locals ( code ast -- code )\r
-  elements>> dup [ ebnf-var? ] subset empty? [\r
+  elements>> dup [ ebnf-var? ] filter empty? [\r
     drop \r
   ] [ \r
     [\r
index 858d062c68380d02b1f8f4c48f82a3ddb19a52b3..3922fc9f86ff5ca80c080d01cc3a1ffe29c7ee43 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2007, 2008 Chris Double.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel sequences strings fry namespaces math assocs shuffle 
-       vectors arrays math.parser 
+       vectors arrays math.parser math.order
        unicode.categories compiler.units parser
        words quotations effects memoize accessors locals effects splitting ;
 IN: peg
index 21a111f6f76d1c5d925c9f0eba240910bbb4bf28..3da676dcb2eb1757e260cfa2efd8404803ac2d4b 100755 (executable)
@@ -17,14 +17,14 @@ MEMO: any-char-parser ( -- parser )
 
 : search ( string parser -- seq )
   any-char-parser [ drop f ] action 2array choice repeat0 parse dup [
-    parse-result-ast [ ] subset
+    parse-result-ast [ ] filter
   ] [
     drop { }
   ] if ;
 
 
 : (replace) ( string parser -- seq )
-  any-char-parser 2array choice repeat0 parse parse-result-ast [ ] subset ;
+  any-char-parser 2array choice repeat0 parse parse-result-ast [ ] filter ;
 
 : replace ( string parser -- result )
  [  (replace) [ tree-write ] each ] with-string-writer ;
index da0658f94d2b8e18b9aaeab6f7844c2720c334f5..32386fed2b961c411dc7f52b098609226f7dfd2f 100644 (file)
@@ -62,5 +62,5 @@ io.files io.encodings.utf8 ;
     "extra/porter-stemmer/test/voc.txt" resource-lines
     [ stem ] map
     "extra/porter-stemmer/test/output.txt" resource-lines
-    [ 2array ] 2map [ first2 = not ] subset
+    [ 2array ] 2map [ first2 = not ] filter
 ] unit-test
index 7d77e86fec7bf845ebac3d1b9721f6344b87d9d4..843f8b87ba0ebce67f6a06225f481005c322064b 100644 (file)
@@ -30,7 +30,7 @@ IN: project-euler.001
 ! -------------------
 
 : euler001a ( -- answer )
-    1000 [ dup 5 mod swap 3 mod [ zero? ] either? ] subset sum ;
+    1000 [ dup 5 mod swap 3 mod [ zero? ] either? ] filter sum ;
 
 ! [ euler001a ] 100 ave-time
 ! 0 ms run / 0 ms GC ave time - 100 trials
index b660ed0958686fa216cf71bb7509071a916a6f08..c2def03ace0167ea31c99e270a08841ded85986d 100644 (file)
@@ -30,7 +30,7 @@ PRIVATE>
     V{ 0 } clone 1 rot (fib-upto) ;
 
 : euler002 ( -- answer )
-    1000000 fib-upto [ even? ] subset sum ;
+    1000000 fib-upto [ even? ] filter sum ;
 
 ! [ euler002 ] 100 ave-time
 ! 0 ms run / 0 ms GC ave time - 100 trials
@@ -44,7 +44,7 @@ PRIVATE>
     1 head-slice* { 0 1 } prepend ;
 
 : euler002a ( -- answer )
-    1000000 fib-upto* [ even? ] subset sum ;
+    1000000 fib-upto* [ even? ] filter sum ;
 
 ! [ euler002a ] 100 ave-time
 ! 0 ms run / 0 ms GC ave time - 100 trials
index b2146b4aeab2af090e5972d7eef6a925d81410e5..1f268f15001743ed1488d018b69affa130b4707a 100644 (file)
@@ -21,7 +21,7 @@ IN: project-euler.004
 <PRIVATE
 
 : source-004 ( -- seq )
-    100 999 [a,b] [ 10 mod zero? not ] subset ;
+    100 999 [a,b] [ 10 mod zero? not ] filter ;
 
 : max-palindrome ( seq -- palindrome )
     natural-sort [ palindrome? ] find-last nip ;
index c0a48ec055fd396388bf167ad466e7eac4624e1a..452d2ec63730f080aa5ce93232acafb5964405d6 100644 (file)
@@ -29,7 +29,7 @@ IN: project-euler.022
 
 : source-022 ( -- seq )
     "extra/project-euler/022/names.txt" resource-path
-    ascii file-contents [ quotable? ] subset "," split ;
+    ascii file-contents [ quotable? ] filter "," split ;
 
 : name-scores ( seq -- seq )
     [ 1+ swap alpha-value * ] map-index ;
index 1dd7878a3b84fac50f43b4ad68c2893258331cff..5d468a71c87d2674d0ed08b6400f8200422c8733 100644 (file)
@@ -40,7 +40,7 @@ IN: project-euler.023
     46 [1,b] 47 20161 2 <range> append ;
 
 : abundants-upto ( n -- seq )
-    [1,b] [ abundant? ] subset ;
+    [1,b] [ abundant? ] filter ;
 
 : possible-sums ( seq -- seq )
     dup { } -rot [
index f1f546ec1c6036945e771a7b9a4dbcfa5707fcd9..8cbf20d0bfd497632af1320e582e1fe72cfbb1f8 100644 (file)
@@ -34,7 +34,7 @@ IN: project-euler.026
 <PRIVATE
 
 : source-026 ( -- seq )
-    1 1000 (a,b) [ prime? ] subset [ 1 swap / ] map ;
+    1 1000 (a,b) [ prime? ] filter [ 1 swap / ] map ;
 
 : (mult-order) ( n a m -- k )
     3dup ^ swap mod 1 = [ 2nip ] [ 1+ (mult-order) ] if ;
index 2d99204bf383454d1831e01260d492c23632911b..7680112af79dba1fe97861560ab425712177574e 100644 (file)
@@ -46,8 +46,8 @@ IN: project-euler.027
 <PRIVATE
 
 : source-027 ( -- seq )
-    1000 [ prime? ] subset [ dup [ neg ] map append ] keep
-    cartesian-product [ first2 < ] subset ;
+    1000 [ prime? ] filter [ dup [ neg ] map append ] keep
+    cartesian-product [ first2 < ] filter ;
 
 : quadratic ( b a n -- m )
     dup sq -rot * + + ;
index 10fb4054f0eb0398798290179e4fe501c86a994f..53d6b199fbffd4ae71e3f114ff0307d7ce88b93d 100644 (file)
@@ -38,7 +38,7 @@ IN: project-euler.030
 PRIVATE>
 
 : euler030 ( -- answer )
-    325537 [ dup sum-fifth-powers = ] subset sum 1- ;
+    325537 [ dup sum-fifth-powers = ] filter sum 1- ;
 
 ! [ euler030 ] 100 ave-time
 ! 2537 ms run / 125 ms GC ave time - 100 trials
index 7b24004df66cdc942986b978e126b4dffa114b67..68b42ca4423a4e9db53bc8bba885133dffa41929 100755 (executable)
@@ -46,7 +46,7 @@ IN: project-euler.032
 PRIVATE>
 
 : euler032 ( -- answer )
-    source-032 [ valid? ] subset products prune sum ;
+    source-032 [ valid? ] filter products prune sum ;
 
 ! [ euler032 ] 10 ave-time
 ! 23922 ms run / 1505 ms GC ave time - 10 trials
@@ -70,7 +70,7 @@ PRIVATE>
 PRIVATE>
 
 : euler032a ( -- answer )
-    source-032a [ mmp ] map [ pandigital? ] subset products prune sum ;
+    source-032a [ mmp ] map [ pandigital? ] filter products prune sum ;
 
 ! [ euler032a ] 100 ave-time
 ! 5978 ms run / 327 ms GC ave time - 100 trials
index 35b1c87e7a26a933d3935833e25d3e983a08e5a0..8cb0dc45c3bfc44a1aaa301aea8d459e761a5d53 100644 (file)
@@ -30,7 +30,7 @@ IN: project-euler.033
 <PRIVATE
 
 : source-033 ( -- seq )
-    10 99 [a,b] dup cartesian-product [ first2 < ] subset ;
+    10 99 [a,b] dup cartesian-product [ first2 < ] filter ;
 
 : safe? ( ax xb -- ? )
     [ 10 /mod ] bi@ -roll = rot zero? not and nip ;
@@ -42,7 +42,7 @@ IN: project-euler.033
     2dup / [ ax/xb ] dip = ;
 
 : curious-fractions ( seq -- seq )
-    [ first2 curious? ] subset [ first2 / ] map ;
+    [ first2 curious? ] filter [ first2 / ] map ;
 
 PRIVATE>
 
index c15d722266486e0ef6adf56b1a9e0445253613ee..cf73ee828bfb6a453dc128d493e0cce889ec0597 100644 (file)
@@ -39,7 +39,7 @@ IN: project-euler.034
 PRIVATE>
 
 : euler034 ( -- answer )
-    3 2000000 [a,b] [ factorion? ] subset sum ;
+    3 2000000 [a,b] [ factorion? ] filter sum ;
 
 ! [ euler034 ] 10 ave-time
 ! 15089 ms run / 725 ms GC ave time - 10 trials
index c362e1e1a59cd393127b3fca9336e02b8aed6d27..53cee7c0ffa4266cf6b734d9a79ad76dd5586491 100755 (executable)
@@ -50,7 +50,7 @@ IN: project-euler.035
 PRIVATE>
 
 : euler035 ( -- answer )
-    source-035 [ possible? ] subset [ circular? ] count ;
+    source-035 [ possible? ] filter [ circular? ] count ;
 
 ! [ euler035 ] 100 ave-time
 ! 904 ms run / 86 ms GC ave time - 100 trials
index 3ca1c73f391d7c33fc1f67042fa3323ee24d5083..153901ce6d0151d591e8b6e289d6eb574c5439a0 100644 (file)
@@ -32,7 +32,7 @@ IN: project-euler.036
 PRIVATE>
 
 : euler036 ( -- answer )
-    1 1000000 2 <range> [ both-bases? ] subset sum ;
+    1 1000000 2 <range> [ both-bases? ] filter sum ;
 
 ! [ euler036 ] 100 ave-time
 ! 3891 ms run / 173 ms GC ave time - 100 trials
index 66b16650378da445dceb7ae5de81ddb59a7ef769..a5bc0581e6f38439c3686463c02215b44959eeba 100755 (executable)
@@ -44,7 +44,7 @@ IN: project-euler.037
 PRIVATE>
 
 : euler037 ( -- answer )
-    23 1000000 primes-between [ r-trunc? ] subset [ l-trunc? ] subset sum ;
+    23 1000000 primes-between [ r-trunc? ] filter [ l-trunc? ] filter sum ;
 
 ! [ euler037 ] 100 ave-time
 ! 768 ms run / 9 ms GC ave time - 100 trials
index 2369db25fb0d2fe422187ecfe4c7c158750799cf..78e3848a337a2723317a5f8a9a50973fb047b744 100755 (executable)
@@ -47,7 +47,7 @@ IN: project-euler.038
 PRIVATE>
 
 : euler038 ( -- answer )
-    9123 9876 [a,b] [ concat-product ] map [ pandigital? ] subset supremum ;
+    9123 9876 [a,b] [ concat-product ] map [ pandigital? ] filter supremum ;
 
 ! [ euler038 ] 100 ave-time
 ! 37 ms run / 1 ms GC ave time - 100 trials
index a87722debce0da6c82688f08a3cdeb6916285f76..1fda8a402a78e55dd6cd5e170f957d0f355916e8 100644 (file)
@@ -31,7 +31,7 @@ IN: project-euler.042
 
 : source-042 ( -- seq )
     "extra/project-euler/042/words.txt" resource-path
-    ascii file-contents [ quotable? ] subset "," split ;
+    ascii file-contents [ quotable? ] filter "," split ;
 
 : (triangle-upto) ( limit n -- )
     2dup nth-triangle > [
index 0d1eb00bfa38656d4a5357bb72ab2d82b90fe209..a6079310838c89c15949b4cc2163b15e0daa6596 100644 (file)
@@ -53,7 +53,7 @@ PRIVATE>
 
 : euler043 ( -- answer )
     1234567890 number>digits all-permutations
-    [ interesting? ] subset [ 10 digits>integer ] map sum ;
+    [ interesting? ] filter [ 10 digits>integer ] map sum ;
 
 ! [ euler043 ] time
 ! 125196 ms run / 19548 ms GC time
@@ -70,20 +70,20 @@ PRIVATE>
 <PRIVATE
 
 : candidates ( n -- seq )
-    1000 over <range> [ number>digits 3 0 pad-left ] map [ all-unique? ] subset ;
+    1000 over <range> [ number>digits 3 0 pad-left ] map [ all-unique? ] filter ;
 
 : overlap? ( seq -- ? )
     dup first 2 tail* swap second 2 head = ;
 
 : clean ( seq -- seq )
-    [ unclip 1 head prefix concat ] map [ all-unique? ] subset ;
+    [ unclip 1 head prefix concat ] map [ all-unique? ] filter ;
 
 : add-missing-digit ( seq -- seq )
     dup natural-sort 10 diff first prefix ;
 
 : interesting-pandigitals ( -- seq )
     17 candidates { 13 11 7 5 3 2 } [
-        candidates swap cartesian-product [ overlap? ] subset clean
+        candidates swap cartesian-product [ overlap? ] filter clean
     ] each [ add-missing-digit ] map ;
 
 PRIVATE>
index bc8aec8bded15a9c37ee02764df5f94c16cea2b3..eaa6bf96ef7b164065befbe6630236e53d231e70 100644 (file)
@@ -37,7 +37,7 @@ PRIVATE>
 
 : euler044 ( -- answer )
     2500 [1,b] [ nth-pentagonal ] map dup cartesian-product
-    [ first2 sum-and-diff? ] subset [ first2 - abs ] map infimum ;
+    [ first2 sum-and-diff? ] filter [ first2 - abs ] map infimum ;
 
 ! [ euler044 ] 10 ave-time
 ! 8924 ms run / 2872 ms GC ave time - 10 trials
index 452a64af44af269d7b490cc951ec6ac4a717fbc5..65162cc519a322487ba46bf7d3fcc37433e23698 100644 (file)
@@ -39,7 +39,7 @@ IN: project-euler.079
     dup empty? [ "Topological sort failed" throw ] [ first ] if ;
 
 : remove-source ( seq elt -- seq )
-    [ swap member? not ] curry subset ;
+    [ swap member? not ] curry filter ;
 
 : (topological-sort) ( seq -- )
     dup length 1 > [
index c96c1ebc73edd773e23801790e21f088748173e4..c8bd28a3a930ad898812d20fa065761fadb3267c 100644 (file)
@@ -17,7 +17,7 @@ IN: project-euler.150
     0 0 rot [ (partial-sum-infimum) ] each drop ; inline
 
 : generate ( n quot -- seq )
-    [ drop ] swap compose map ; inline
+    [ drop ] prepose map ; inline
 
 : map-infimum ( seq quot -- min )
     [ min ] compose 0 swap reduce ; inline
index d517db09fe245b17cd0325b5b7649e97d8c5c4a2..e3709e360faecacc6c5b4c01a74b4da13fb780e4 100755 (executable)
@@ -291,7 +291,7 @@ TUPLE: regexp source parser ignore-case? ;
 
 : parse-regexp ( accum end -- accum )
     lexer get dup skip-blank
-    [ [ index* dup 1+ swap ] 2keep swapd subseq swap ] change-lexer-column
+    [ [ index-from dup 1+ swap ] 2keep swapd subseq swap ] change-lexer-column
     lexer get dup still-parsing-line?
     [ (parse-token) parse-options ] [ drop f ] if
     <regexp> parsed ;
index f38d1d808b6074345abefcdc9497ba25dc2475b4..a4018254d313f7b28d43fb4c0a3cb6f4befb7526 100755 (executable)
@@ -8,7 +8,7 @@ IN: report.optimizer
     [ r> 1+ count-optimization-passes ] [ drop r> ] if ;\r
 \r
 : results\r
-    [ [ second ] swap compose compare ] curry sort 20 tail*\r
+    [ [ second ] prepose compare ] curry sort 20 tail*\r
     print\r
     standard-table-style\r
     [\r
@@ -16,7 +16,7 @@ IN: report.optimizer
     ] tabular-output ; inline\r
 \r
 : optimizer-measurements ( -- alist )\r
-    all-words [ compiled? ] subset\r
+    all-words [ compiled? ] filter\r
     [\r
         dup [\r
             word-dataflow nip 1 count-optimization-passes\r
index b98dbfc50f75bf99159ed96b8092c1fee3ab73d9..3dc560f46d9201b7300a5b3c24636bae6dcf54bd 100644 (file)
@@ -9,7 +9,7 @@ HELP: deep-map
 { $values { "obj" "an object" } { "quot" "a quotation ( elt -- newelt )" } { "newobj" "the mapped object" } }
 { $description "Execute a quotation on each nested element of an object and its children, in preorder. That is, the result of the execution of the quotation on the outer is used to map the inner elements." } ;
 
-HELP: deep-subset
+HELP: deep-filter
 { $values { "obj" "an object" } { "quot" "a quotation ( elt -- ? )" } { "seq" "a sequence" } }
 { $description "Creates a sequence of sub-nodes in the object which satisfy the given quotation, in preorder. This includes the object itself, if it passes the quotation." } ;
 
index 9629d569cbdd1271c241089850ec41688514bd5c..395086e2025b48c45012bddf20023be3bc3236cd 100755 (executable)
@@ -4,11 +4,11 @@ IN: sequences.deep.tests
 
 [ [ "hello" 3 4 swap ] ] [ [ { "hello" V{ 3 4 } } swap ] flatten ] unit-test
 
-[ "foo" t ] [ { { "foo" } "bar" } [ string? ] deep-find* ] unit-test
+[ "foo" t ] [ { { "foo" } "bar" } [ string? ] deep-find-from ] unit-test
 
-[ f f ] [ { { "foo" } "bar" } [ number? ] deep-find* ] unit-test
+[ f f ] [ { { "foo" } "bar" } [ number? ] deep-find-from ] unit-test
 
-[ { { "foo" } "bar" } t ] [ { { "foo" } "bar" } [ array? ] deep-find* ] unit-test
+[ { { "foo" } "bar" } t ] [ { { "foo" } "bar" } [ array? ] deep-find-from ] unit-test
 
 : change-something ( seq -- newseq )
     dup array? [ "hi" suffix ] [ "hello" append ] if ;
index 27b875bd8faa472aa4fa38e978051ccdee4dcdfc..c0e516e47153632566a8680ea0a66d724c5df360 100644 (file)
@@ -18,21 +18,21 @@ IN: sequences.deep
     [ call ] keep over branch?
     [ [ deep-map ] curry map ] [ drop ] if ; inline
 
-: deep-subset ( obj quot -- seq )
+: deep-filter ( obj quot -- seq )
     over >r
     pusher >r deep-each r>
     r> dup branch? [ like ] [ drop ] if ; inline
 
-: deep-find* ( obj quot -- elt ? )
+: deep-find-from ( obj quot -- elt ? )
     [ call ] 2keep rot [ drop t ] [
         over branch? [
-            f -rot [ >r nip r> deep-find* ] curry find drop >boolean
+            f -rot [ >r nip r> deep-find-from ] curry find drop >boolean
         ] [ 2drop f f ] if  
     ] if ; inline
 
-: deep-find ( obj quot -- elt ) deep-find* drop ; inline
+: deep-find ( obj quot -- elt ) deep-find-from drop ; inline
 
-: deep-contains? ( obj quot -- ? ) deep-find* nip ; inline
+: deep-contains? ( obj quot -- ? ) deep-find-from nip ; inline
 
 : deep-all? ( obj quot -- ? )
     [ not ] compose deep-contains? not ; inline
@@ -43,4 +43,4 @@ IN: sequences.deep
     ] curry change-each ] [ 2drop ] if ; inline
 
 : flatten ( obj -- seq )
-    [ branch? not ] deep-subset ;
+    [ branch? not ] deep-filter ;
index e534a204b184f9142d78f79b6868c1e625c7b41c..b8e2717a716c874d303da150b2a29beae42ed992 100755 (executable)
@@ -4,7 +4,7 @@
 USING: combinators.lib kernel sequences math namespaces assocs 
 random sequences.private shuffle math.functions mirrors
 arrays math.parser math.private sorting strings ascii macros
-assocs.lib quotations hashtables ;
+assocs.lib quotations hashtables math.order ;
 IN: sequences.lib
 
 : each-withn ( seq quot n -- ) nwith each ; inline
@@ -45,7 +45,7 @@ MACRO: firstn ( n -- )
   >r
   dup length
   dup [ / ] curry
-  [ 1+ ] swap compose
+  [ 1+ ] prepose
   r> compose
   2each ;                       inline
 
@@ -129,11 +129,11 @@ MACRO: firstn ( n -- )
 : take-while ( seq quot -- newseq )
     [ not ] compose
     [ find drop [ head-slice ] when* ] curry
-    [ dup ] swap compose keep like ;
+    [ dup ] prepose keep like ;
 
 : replicate ( seq quot -- newseq )
     #! quot: ( -- obj )
-    [ drop ] swap compose map ; inline
+    [ drop ] prepose map ; inline
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
@@ -159,7 +159,7 @@ PRIVATE>
 
 : switches ( seq1 seq -- subseq )
     ! seq1 is a sequence of ones and zeroes
-    >r [ length ] keep [ nth 1 = ] curry subset r>
+    >r [ length ] keep [ nth 1 = ] curry filter r>
     [ nth ] curry { } map-as ;
 
 : power-set ( seq -- subsets )
@@ -216,7 +216,7 @@ USE: continuations
   >r dup length swap r>
   [ = [ ] [ drop f ] if ] curry
   2map
-  [ ] subset ;
+  [ ] filter ;
 
 <PRIVATE
 : (attempt-each-integer) ( i n quot -- result )
index 5bcdab8068555f29369c1d8917fe52a9ae29e6c6..753f35b2e697eee205b2c698ab734df3c7e1954c 100644 (file)
@@ -1,4 +1,5 @@
 USING: shufflers tools.test ;
+IN: shufflers.tests
 
 SHUFFLE: abcd 4
 [ ] [ 1 2 3 4 abcd- ] unit-test
index 1d22ed731a6108b20487479b32c26360e992594d..162512f9f3e3db84db708e096a965014e1c94605 100755 (executable)
@@ -63,7 +63,7 @@ IN: smtp.tests
     prepare
     dup headers>> >alist sort-keys [
         drop { "Date" "Message-Id" } member? not
-    ] assoc-subset
+    ] assoc-filter
     over to>>
     rot from>>
 ] unit-test
index 532978e35964e349f6944412a5012cade0fa9376..3e4548078cf71d1d223ec6882a55511d3d5fa8c5 100644 (file)
@@ -47,7 +47,7 @@ TUPLE: board width height rows ;
     ] if ;
 
 : remove-full-rows ( board -- )
-    dup board-rows [ row-not-full? ] subset swap set-board-rows ;
+    dup board-rows [ row-not-full? ] filter swap set-board-rows ;
 
 : check-rows ( board -- n )
     #! remove full rows, then add blank ones at the top, returning the number
index ef710ea57db034d1a5ae215197d0ad49a18dcee1..d6016f280c0bba3783ce29c1b8a3923f7776e23d 100755 (executable)
@@ -61,7 +61,7 @@ M: word reset
         "--- Entering: " write swap .
         "--- Variable values:" print
         [ dup get ] H{ } map>assoc describe
-    ] 2curry swap compose ;
+    ] 2curry prepose ;
 
 : watch-vars ( word vars -- )
     dupd [ (watch-vars) ] 2curry annotate ;
index b9c37c065661ad65c10d4b360886809109078851..4bb6d6142f7637c543b1756a2982b72af0f8f3ec 100755 (executable)
@@ -1,12 +1,12 @@
 ! Copyright (C) 2005, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-IN: tools.completion
 USING: kernel arrays sequences math namespaces strings io
 vectors words assocs combinators sorting unicode.case
-unicode.categories ;
+unicode.categories math.order ;
+IN: tools.completion
 
 : (fuzzy) ( accum ch i full -- accum i ? )
-    index* 
+    index-from 
     [
         [ swap push ] 2keep 1+ t
     ] [
@@ -52,7 +52,7 @@ unicode.categories ;
 : rank-completions ( results -- newresults )
     sort-keys <reversed>
     [ 0 [ first max ] reduce 3 /f ] keep
-    [ first < ] with subset
+    [ first < ] with filter
     [ second ] map ;
 
 : complete ( full short -- score )
index 82e2652c0198b66a0ff87273278bf455a8e8b9c4..b8ecf87989e63ebc5f108fd57d707479167d5290 100755 (executable)
@@ -73,7 +73,7 @@ IN: tools.deploy.shaker
     [
         [
             word-props swap
-            '[ , nip member? ] assoc-subset
+            '[ , nip member? ] assoc-filter
             f assoc-like
         ] keep set-word-props
     ] with each ;
@@ -201,8 +201,8 @@ IN: tools.deploy.shaker
     strip-globals? [
         "Stripping globals" show
         global swap
-        '[ drop , member? not ] assoc-subset
-        [ drop string? not ] assoc-subset ! strip CLI args
+        '[ drop , member? not ] assoc-filter
+        [ drop string? not ] assoc-filter ! strip CLI args
         dup keys unparse show
         21 setenv
     ] [ drop ] if ;
index 28c219ee4d5ebd040ad74ff241b3a76709b2f07e..821a6ca7f529d07016e51f0ad0900d783ff53cb0 100755 (executable)
@@ -9,7 +9,7 @@ ARTICLE: "tools.memory" "Object memory tools"
 "You can query memory status:"
 { $subsection data-room }
 { $subsection code-room }
-"There are a pair of combinators, analogous to " { $link each } " and " { $link subset } ", which operate on the entire collection of objects in the object heap:"
+"There are a pair of combinators, analogous to " { $link each } " and " { $link filter } ", which operate on the entire collection of objects in the object heap:"
 { $subsection each-object }
 { $subsection instances }
 "You can check an object's the heap memory usage:"
index 467fcc14f46ed3bf2fb22560d776c244c0d0c0a4..6a5fce6281e955ef0460a8342962a412a5d39b9e 100755 (executable)
@@ -39,7 +39,7 @@ M: method-body (profile.)
     ] with-row ;
 
 : counters. ( assoc -- )
-    [ second 0 > ] subset sort-values
+    [ second 0 > ] filter sort-values
     standard-table-style [
         [ counter. ] assoc-each
     ] tabular-output ;
@@ -58,13 +58,13 @@ M: method-body (profile.)
     "Call counts for words which call " write
     dup pprint
     ":" print
-    usage [ word? ] subset counters counters. ;
+    usage [ word? ] filter counters counters. ;
 
 : vocabs-profile. ( -- )
     "Call counts for all vocabularies:" print
     vocabs [
         dup words
-        [ "predicating" word-prop not ] subset
+        [ "predicating" word-prop not ] filter
         [ profile-counter ] map sum
     ] { } map>assoc counters. ;
 
index 031b3c3af8892cfc13f27b77e19460ac8d9cd5f2..854ef7af0ea3a953d9ad553a3e843d62837f97a8 100755 (executable)
@@ -85,7 +85,7 @@ SYMBOL: this-test
 : run-tests ( prefix -- failures )
     child-vocabs dup empty? [ drop f ] [
         [ dup run-test ] { } map>assoc
-        [ second empty? not ] subset
+        [ second empty? not ] filter
     ] if ;
 
 : test ( prefix -- )
index 060377d1272a10ae3692c0420895cd074347c976..2bd38cf30437be0d0b14f2f3293c8218b86bae96 100755 (executable)
@@ -1,9 +1,9 @@
 ! Copyright (C) 2008 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-IN: tools.threads\r
 USING: threads kernel prettyprint prettyprint.config\r
 io io.styles sequences assocs namespaces sorting boxes\r
-heaps.private system math math.parser ;\r
+heaps.private system math math.parser math.order ;\r
+IN: tools.threads\r
 \r
 : thread. ( thread -- )\r
     dup thread-id pprint-cell\r
index db1edbeb61bea21d4d706c7dc1eb02a56c1e9196..2b28e158df360697e4fa8da64eec5d8bb2a3aa00 100755 (executable)
@@ -105,8 +105,8 @@ C: <vocab-author> vocab-author
 
 : vocab-xref ( vocab quot -- vocabs )
     >r dup vocab-name swap words r> map
-    [ [ word? ] subset [ word-vocabulary ] map ] map>set
-    remove [ ] subset [ vocab ] map ; inline
+    [ [ word? ] filter [ word-vocabulary ] map ] map>set
+    remove [ ] filter [ vocab ] map ; inline
 
 : vocab-uses ( vocab -- vocabs ) [ uses ] vocab-xref ;
 
@@ -143,7 +143,7 @@ C: <vocab-author> vocab-author
 : keyed-vocabs ( str quot -- seq )
     all-vocabs [
         swap >r
-        [ >r 2dup r> swap call member? ] subset
+        [ >r 2dup r> swap call member? ] filter
         r> swap
     ] assoc-map 2nip ; inline
 
index 40e79ee01473852a79ebb005da716c076260bdeb..2a5213c70dcb56172e97065649300e47df80ae2e 100755 (executable)
@@ -15,7 +15,7 @@ IN: tools.vocabs
     dup vocab-dir "tests" append-path vocab-append-path dup [\r
         dup exists? [\r
             dup directory keys\r
-            [ ".factor" tail? ] subset\r
+            [ ".factor" tail? ] filter\r
             [ append-path ] with map\r
         ] [ drop f ] if\r
     ] [ drop f ] if ;\r
@@ -90,7 +90,7 @@ SYMBOL: changed-vocabs
     changed-vocabs get dup [ key? ] [ 2drop t ] if ;\r
 \r
 : filter-changed ( vocabs -- vocabs' )\r
-    [ changed-vocab? ] subset ;\r
+    [ changed-vocab? ] filter ;\r
 \r
 SYMBOL: modified-sources\r
 SYMBOL: modified-docs\r
@@ -208,7 +208,7 @@ M: vocab-link summary vocab-summary ;
     dup vocab-authors-path set-vocab-file-contents ;\r
 \r
 : subdirs ( dir -- dirs )\r
-    directory [ second ] subset keys natural-sort ;\r
+    directory [ second ] filter keys natural-sort ;\r
 \r
 : (all-child-vocabs) ( root name -- vocabs )\r
     [ vocab-dir append-path subdirs ] keep\r
@@ -260,7 +260,7 @@ MEMO: all-vocabs-seq ( -- seq )
     } cond nip ;\r
 \r
 : filter-dangerous ( seq -- seq' )\r
-    [ vocab-name dangerous? not ] subset ;\r
+    [ vocab-name dangerous? not ] filter ;\r
 \r
 : try-everything ( -- failures )\r
     all-vocabs-seq\r
@@ -273,10 +273,10 @@ MEMO: all-vocabs-seq ( -- seq )
 : unrooted-child-vocabs ( prefix -- seq )\r
     dup empty? [ CHAR: . suffix ] unless\r
     vocabs\r
-    [ find-vocab-root not ] subset\r
+    [ find-vocab-root not ] filter\r
     [\r
         vocab-name swap ?head CHAR: . rot member? not and\r
-    ] with subset\r
+    ] with filter\r
     [ vocab ] map ;\r
 \r
 : all-child-vocabs ( prefix -- assoc )\r
@@ -288,7 +288,7 @@ MEMO: all-vocabs-seq ( -- seq )
 : all-child-vocabs-seq ( prefix -- assoc )\r
     vocab-roots get swap [\r
         dupd (all-child-vocabs)\r
-        [ vocab-dir? ] with subset\r
+        [ vocab-dir? ] with filter\r
     ] curry map concat ;\r
 \r
 : map>set ( seq quot -- )\r
index c7db687dc3f53c061b4037c43e3b0e5ab16d7878..9d6775159ac30579cb061763a763c0463c238bcc 100755 (executable)
@@ -37,7 +37,7 @@ GENERIC: command-word ( command -- word )
 : command-gestures ( class -- hash )
     commands values [
         [
-            [ first ] subset
+            [ first ] filter
             [ [ invoke-command ] curry swap set ] assoc-each
         ] each
     ] H{ } make-assoc ;
index b3ecad6aedb22ad3b1c4c3dcb0454e23fb0378d3..c4a808bb2df3b99c8a6ce1d2995c90a955aaac92 100755 (executable)
@@ -4,7 +4,8 @@ USING: arrays documents ui.clipboards ui.commands ui.gadgets
 ui.gadgets.borders ui.gadgets.buttons ui.gadgets.labels
 ui.gadgets.scrollers ui.gadgets.theme ui.render ui.gestures io
 kernel math models namespaces opengl opengl.gl sequences strings
-io.styles math.vectors sorting colors combinators assocs ;
+io.styles math.vectors sorting colors combinators assocs
+math.order ;
 IN: ui.gadgets.editors
 
 TUPLE: editor
index 9213c3886ff060d49e288d43a8f093784e9bded8..fd5234ab0360645f69534bcfa58ec98c1cf2337f 100755 (executable)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: ui.commands ui.gestures ui.render ui.gadgets
 ui.gadgets.labels ui.gadgets.scrollers
-kernel sequences models opengl math namespaces
+kernel sequences models opengl math math.order namespaces
 ui.gadgets.presentations ui.gadgets.viewports ui.gadgets.packs
 math.vectors classes.tuple ;
 IN: ui.gadgets.lists
index 09ef3218b477b783f40e037725640059f2be93de..c6f437583eef2d92a10cc40787764f8f43a77baa 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2007 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: sequences ui.gadgets kernel math math.functions
-math.vectors namespaces ;
+math.vectors namespaces math.order ;
 IN: ui.gadgets.packs
 
 TUPLE: pack align fill gap ;
index 7576bce568563387c90d5622f8596b6520318df2..9f375d01269cd95dafd148f47d619a64393cebad 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2007 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays ui.gadgets ui.gadgets.labels ui.render kernel math
-namespaces sequences ;
+namespaces sequences math.order ;
 IN: ui.gadgets.paragraphs
 
 ! A word break gadget
index a420f59047b33986d3c4e8790fdf9b83004b41c0..4d2c423445fa6843c444a9a10cebdc1f2e3924b0 100755 (executable)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2005, 2007 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: arrays ui.gestures ui.gadgets ui.gadgets.buttons
-ui.gadgets.frames ui.gadgets.grids
+ui.gadgets.frames ui.gadgets.grids math.order
 ui.gadgets.theme ui.render kernel math namespaces sequences
 vectors models math.vectors math.functions quotations colors ;
 IN: ui.gadgets.sliders
index d8caf54ad23f8477b32180bfd7a3236c47294214..56a0fbc3ee5cc148a42355db22ba22ffc8afe297 100644 (file)
@@ -8,7 +8,7 @@ TUPLE: track sizes ;
 
 : normalized-sizes ( track -- seq )
     track-sizes
-    [ [ ] subset sum ] keep [ dup [ over / ] when ] map nip ;
+    [ [ ] filter sum ] keep [ dup [ over / ] when ] map nip ;
 
 : <track> ( orientation -- track )
     <pack> V{ } clone
index ed0f38b7430b19d0e71c22b2a8e26f8ae0f2c48a..0970bd6027720fa0537e41390371274724c2d8d2 100755 (executable)
@@ -172,7 +172,7 @@ SYMBOL: drag-timer
     ] if ;
 
 : modifier ( mod modifiers -- seq )
-    [ second swap bitand 0 > ] with subset
+    [ second swap bitand 0 > ] with filter
     0 <column> prune dup empty? [ drop f ] [ >array ] if ;
 
 : drag-loc ( -- loc )
index 26200ea96fcd007b13f7a2a270d5a71ffd293c51..ac414b2cb94dd37141436ddfc50a671fa412c7b0 100755 (executable)
@@ -37,7 +37,7 @@ M: operation command-word operation-command command-word ;
 SYMBOL: operations
 
 : object-operations ( obj -- operations )
-    operations get [ operation-predicate call ] with subset ;
+    operations get [ operation-predicate call ] with filter ;
 
 : find-operation ( obj quot -- command )
     >r object-operations r> find-last nip ; inline
index cacd0a8d3ac89e6d086db3441a74d2a267faceba..d33a789fe7389ddf71662ab3468d41bf14bc5847 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien arrays hashtables io kernel math namespaces opengl
 opengl.gl opengl.glu sequences strings io.styles vectors
-combinators math.vectors ui.gadgets colors ;
+combinators math.vectors ui.gadgets colors math.order ;
 IN: ui.render
 
 SYMBOL: clip
index 3837ce2de164f73575c62f0da2f5cfbd0d7c769c..6c8b77d1f2449a4e88bbfe25ac3c3bb11360c45c 100755 (executable)
@@ -7,7 +7,7 @@ sequences strings threads listener
 classes.tuple ui.commands ui.gadgets ui.gadgets.editors
 ui.gadgets.presentations ui.gadgets.worlds ui.gestures
 definitions boxes calendar concurrency.flags ui.tools.workspace
-accessors ;
+accessors math.order ;
 IN: ui.tools.interactor
 
 TUPLE: interactor history output flag thread help ;
index 279737466f5d80da3b626f73dd6abf2ebe4dee04..6d22083096d5e98fbd79840606f7ea0c0c0031f0 100755 (executable)
@@ -17,7 +17,7 @@ IN: ui.tools.tests
 [ ] [ "w" get com-scroll-down ] unit-test
 [ t ] [
     "w" get workspace-book gadget-children
-    [ tool-scroller ] map [ ] subset [ scroller? ] all?
+    [ tool-scroller ] map [ ] filter [ scroller? ] all?
 ] unit-test
 [ ] [ "w" get hide-popup ] unit-test
 [ ] [ <gadget> "w" get show-popup ] unit-test
index 946fe283aa6ef2cb244062842bcd9677ec459661..12565235ab50b48f68b2f08db79e492c9bde9daa 100755 (executable)
@@ -26,7 +26,7 @@ SYMBOL: windows
     [ [ length 1- dup 1- ] keep exchange ] [ drop ] if ;
 
 : unregister-window ( handle -- )
-    windows global [ [ first = not ] with subset ] change-at ;
+    windows global [ [ first = not ] with filter ] change-at ;
 
 : raised-window ( world -- )
     windows get-global [ second eq? ] with find drop
index ee3c8729c4bb1171f93ca7e0993ffef5359399b2..5ab997470a8143c48f5364b1af23aaa57dbb82a8 100644 (file)
@@ -25,7 +25,7 @@ CATEGORY: grapheme-control Zl Zp Cc Cf ;
 
 : process-other-extend ( lines -- set )
     [ "#" split1 drop ";" split1 drop trim-blank ] map
-    [ empty? not ] subset
+    [ empty? not ] filter
     [ ".." split1 [ dup ] unless* [ hex> ] bi@ [a,b] ] map
     concat [ dup ] H{ } map>assoc ;
 
index 58d836464c6963666162067509c2d1c2916ba8f5..0c7100d35cb3ba51a1d35a9f1315247b90a2f10e 100755 (executable)
@@ -1,6 +1,7 @@
 USING: assocs math kernel sequences io.files hashtables
-quotations splitting arrays math.parser hash2
-byte-arrays words namespaces words compiler.units parser io.encodings.ascii  ;
+quotations splitting arrays math.parser hash2 math.order
+byte-arrays words namespaces words compiler.units parser
+io.encodings.ascii ;
 IN: unicode.data
 
 <<
@@ -25,7 +26,7 @@ IN: unicode.data
 
 : (process-data) ( index data -- newdata )
     [ [ nth ] keep first swap 2array ] with map
-    [ second empty? not ] subset
+    [ second empty? not ] filter
     [ >r hex> r> ] assoc-map ;
 
 : process-data ( index data -- hash )
@@ -48,9 +49,9 @@ IN: unicode.data
     [ " " split [ hex> ] map ] assoc-map ;
 
 : process-canonical ( data -- hash2 hash )
-    (process-decomposed) [ first* ] subset
+    (process-decomposed) [ first* ] filter
     [
-        [ second length 2 = ] subset
+        [ second length 2 = ] filter
         ! using 1009 as the size, the maximum load is 4
         [ first2 first2 rot 3array ] map 1009 alist>hash2
     ] keep
@@ -64,7 +65,7 @@ IN: unicode.data
 : process-combining ( data -- hash )
     3 swap (process-data)
     [ string>number ] assoc-map
-    [ nip zero? not ] assoc-subset
+    [ nip zero? not ] assoc-filter
     >hashtable ;
 
 : categories ( -- names )
@@ -96,7 +97,7 @@ IN: unicode.data
     ] assoc-map >hashtable ;
 
 : multihex ( hexstring -- string )
-    " " split [ hex> ] map [ ] subset ;
+    " " split [ hex> ] map [ ] filter ;
 
 TUPLE: code-point lower title upper ;
 
@@ -128,7 +129,7 @@ VALUE: special-casing
 ! Special casing data
 : load-special-casing ( -- special-casing )
     "extra/unicode/SpecialCasing.txt" resource-path data
-    [ length 5 = ] subset
+    [ length 5 = ] filter
     [ [ set-code-point ] each ] H{ } make-assoc ;
 
 load-data
index 34c329b55cc9b24f1c05c305e16cdd4a92f24603..c463c0f72770dde89b10219792ec7228a5473750 100644 (file)
@@ -51,11 +51,11 @@ IN: unicode.normalize
     [ >r >r 2dup r> r> insert ] 2each 2drop ; inline
 
 : reorder-slice ( string start -- slice done? )
-    2dup swap [ non-starter? not ] find* drop
+    2dup swap [ non-starter? not ] find-from drop
     [ [ over length ] unless* rot <slice> ] keep not ;
 
 : reorder-next ( string i -- new-i done? )
-    over [ non-starter? ] find* drop [
+    over [ non-starter? ] find-from drop [
         reorder-slice
         >r dup [ combining-class ] insertion-sort slice-to r>
     ] [ length t ] if* ;
@@ -67,7 +67,7 @@ IN: unicode.normalize
     0 reorder-loop ;
 
 : reorder-back ( string i -- )
-    over [ non-starter? not ] find-last* drop ?1+ reorder-next 2drop ;
+    over [ non-starter? not ] find-last-from drop ?1+ reorder-next 2drop ;
 
 : decompose ( string quot -- decomposed )
     ! When there are 8 and 32-bit strings, this'll be
index 4dc91a73c2327c5d48313223d860e6932bae3518..b5ba25db4e27214264d67b1b1787330349f1ab6c 100755 (executable)
@@ -1,5 +1,6 @@
-USING: unicode.data kernel math sequences parser bit-arrays namespaces 
-sequences.private arrays quotations classes.predicate assocs ;
+USING: unicode.data kernel math sequences parser bit-arrays
+namespaces sequences.private arrays quotations assocs
+classes.predicate math.order ;
 IN: unicode.syntax
 
 ! Character classes (categories)
@@ -27,8 +28,8 @@ IN: unicode.syntax
 
 : [category] ( categories -- quot )
     [
-        [ [ categories member? not ] subset as-string ] keep 
-        [ categories member? ] subset >category-array
+        [ [ categories member? not ] filter as-string ] keep 
+        [ categories member? ] filter >category-array
         [ dup category# ] % , [ nth-unsafe [ drop t ] ] %
         \ member? 2array >quotation ,
         \ if ,
@@ -41,7 +42,7 @@ IN: unicode.syntax
     CREATE ";" parse-tokens define-category ; parsing
 
 : seq-minus ( seq1 seq2 -- diff )
-    [ member? not ] curry subset ;
+    [ member? not ] curry filter ;
 
 : CATEGORY-NOT:
     CREATE ";" parse-tokens
index acd3848f102b3c40358a4c3528788f6d0af5bd73..14ce1acda670906c3ff20a83a5c6cd989e70afd5 100755 (executable)
@@ -46,7 +46,7 @@ unless
 \r
 : parse-com-functions ( -- functions )\r
     ";" parse-tokens { ")" } split\r
-    [ empty? not ] subset\r
+    [ empty? not ] filter\r
     [ (parse-com-function) ] map ;\r
 \r
 : (iid-word) ( definition -- word )\r
index 3b0db96d6394857bf654b484c62c0e7bba31f8a7..4c20d0fb42bc97286abf049d7e3a63b14312115d 100644 (file)
@@ -7,7 +7,7 @@ IN: windows.messages
 SYMBOL: windows-messages
 
 "windows.messages" words
-[ word-name "windows-message" head? not ] subset
+[ word-name "windows-message" head? not ] filter
 [ dup execute swap ] { } map>assoc
 windows-messages set-global
 
index a2ca25ce6e7980a72698b9274e1f0fe3cf44ebcf..4e2e092642b917861c73c51c1b5406f5c2535dd0 100644 (file)
@@ -8,7 +8,7 @@ IN: wrap
 SYMBOL: width
 
 : line-chunks ( string -- words-lines )
-    "\n" split [ " \t" split [ empty? not ] subset ] map ;
+    "\n" split [ " \t" split [ empty? not ] filter ] map ;
 
 : (split-chunk) ( words -- )
     -1 over [ length + 1+ dup width get > ] find drop nip
index 2f6882304f495b6e14b26f3d851a98bec4d1f7b6..ff18862d058cc4af69b01c6d24a028dab324322a 100755 (executable)
@@ -37,7 +37,7 @@ dup >r $id   dpy get $window-table   at r> or ;
 
 : circulate-focus ( -- )
 dpy get $default-root <- children
-[ find-in-table ] map [ <- mapped? ] subset   dup length 1 >
+[ find-in-table ] map [ <- mapped? ] filter   dup length 1 >
 [ reverse dup first <- lower drop
   second <- raise
   dup <wm-frame> is? [ $child ] [ ] if
@@ -48,7 +48,7 @@ if ;
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 : managed? ( id -- ? )
-dpy get $window-table values [ <wm-child> is? ] subset [ $id ] map member? ;
+dpy get $window-table values [ <wm-child> is? ] filter [ $id ] map member? ;
 
 : event>keyname ( event -- keyname ) lookup-keysym keysym>name ;
 
index e1b3c5dd820327eb13dedc4836a3135208735e5f..214d45da6ce99465a4ef278873580dbefbe99d04 100644 (file)
@@ -24,7 +24,7 @@ VAR: unmapped-frames-menu
 
 : unmapped-frames ( -- seq )
 dpy get $window-table values
-[ <wm-frame> is? ] subset [ <- mapped? not ] subset ;
+[ <wm-frame> is? ] filter [ <- mapped? not ] filter ;
 
 <unmapped-frames-menu> {
 
index f456c060f96173a9e32a5e4de1e2759c74c306ee..104021706f9f406dad9e013f3aa8e72c97e93977 100644 (file)
@@ -18,7 +18,7 @@ VAR: current-workspace
 : add-workspace ( -- ) { } clone <workspace> workspaces> push ;
 
 : mapped-windows ( -- seq )
-dpy get $default-root <- children [ <- mapped? ] subset ;
+dpy get $default-root <- children [ <- mapped? ] filter ;
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
index 72ab7b1340ec0c411dd1216112994d8781061fa0..d85345b3c72d87fca3ea4f0a974796df10ff9bb9 100644 (file)
@@ -36,7 +36,7 @@ SYMBOL: xml-file
 ] unit-test
 [ "abcd" ] [
     "<main>a<sub>bc</sub>d<nothing/></main>" string>xml
-    [ string? ] deep-subset concat
+    [ string? ] deep-filter concat
 ] unit-test
 [ "foo" ] [
     "<a><b id='c'>foo</b><d id='e'/></a>" string>xml
index ed0773bd6fb3823b51e0141b5f8bff25cd0189f5..87a0242412b45081b46e1cd40fb2fa7a80f6a502 100755 (executable)
@@ -54,7 +54,7 @@ M: process-missing error.
     concat ;
 
 : children-tags ( tag -- sequence )
-    tag-children [ tag? ] subset ;
+    tag-children [ tag? ] filter ;
 
 : first-child-tag ( tag -- tag )
     tag-children [ tag? ] find nip ;
@@ -73,7 +73,7 @@ M: process-missing error.
     assure-name [ swap tag-named? ] curry deep-find ;
 
 : deep-tags-named ( tag name/string -- tags-seq )
-    tags@ [ swap tag-named? ] curry deep-subset ;
+    tags@ [ swap tag-named? ] curry deep-filter ;
 
 : tag-named ( tag name/string -- matching-tag )
     ! like get-name-tag but only looks at direct children,
@@ -81,7 +81,7 @@ M: process-missing error.
     assure-name swap [ tag-named? ] with find nip ;
 
 : tags-named ( tag name/string -- tags-seq )
-    tags@ swap [ tag-named? ] with subset ;
+    tags@ swap [ tag-named? ] with filter ;
 
 : tag-with-attr? ( elem attr-value attr-name -- ? )
     rot dup tag? [ at = ] [ 3drop f ] if ;
@@ -90,13 +90,13 @@ M: process-missing error.
     assure-name [ tag-with-attr? ] 2curry find nip ;
 
 : tags-with-attr ( tag attr-value attr-name -- tags-seq )
-    tags@ [ tag-with-attr? ] 2curry subset tag-children ;
+    tags@ [ tag-with-attr? ] 2curry filter tag-children ;
 
 : deep-tag-with-attr ( tag attr-value attr-name -- matching-tag )
     assure-name [ tag-with-attr? ] 2curry deep-find ;
 
 : deep-tags-with-attr ( tag attr-value attr-name -- tags-seq )
-    tags@ [ tag-with-attr? ] 2curry deep-subset ;
+    tags@ [ tag-with-attr? ] 2curry deep-filter ;
 
 : get-id ( tag id -- elem ) ! elem=tag.getElementById(id)
     "id" deep-tag-with-attr ;
index 44c92006a068de2b4681ac3ae34642662bbcc6cb..41e54228309b5de36bd48b9f15cca57145ce9846 100644 (file)
@@ -34,7 +34,7 @@ SYMBOL: indenter
 : ?filter-children ( children -- no-whitespace )\r
     xml-pprint? get [\r
         [ dup string? [ trim-whitespace ] when ] map\r
-        [ dup empty? swap string? and not ] subset\r
+        [ dup empty? swap string? and not ] filter\r
     ] when ;\r
 \r
 : print-name ( name -- )\r
index 61ef27b72ef67a7f94fbf84207e3c8af3c03d461..a75c5396f047c969da9ea4e373485e88a78cc478 100644 (file)
@@ -72,7 +72,7 @@ M: closer process
     reset-prolog init-xml-stack init-ns-stack ;
 
 : assert-blanks ( seq pre? -- )
-    swap [ string? ] subset
+    swap [ string? ] filter
     [
         dup [ blank? ] all?
         [ drop ] [ swap <pre/post-content> throw ] if
index a6ef34a1f911fb9867dbe293bbf927eccc263a77..f78620986562f70ae993a7548ca09377194825a7 100644 (file)
@@ -26,7 +26,7 @@ M: keyword-map clear-assoc
 M: keyword-map >alist delegate >alist ;
 
 : (keyword-map-no-word-sep)
-    keys concat [ alpha? not ] subset prune natural-sort ;
+    keys concat [ alpha? not ] filter prune natural-sort ;
 
 : keyword-map-no-word-sep* ( keyword-map -- str )
     dup keyword-map-no-word-sep [ ] [
index 57a8a5ac16753d6a000e4a79900c68a46194f6e0..99689d88191fb72566ea93aa080d34dcf9acf194 100755 (executable)
@@ -35,7 +35,7 @@ TAGS>
         { { "type" >upper set-company-type } }
         init-from-tag dup
     ] keep
-    tag-children [ tag? ] subset
+    tag-children [ tag? ] filter
     [ parse-employee-tag ] with each ;
 
 [
index f7c8606420ee21cb5f8b18e22c4c878a6b24a8d8..db59465b7b559e937e5aa5585821d5d55945cc72 100644 (file)
@@ -4,7 +4,7 @@ IN: xmode.utilities
 
 : implies >r not r> or ; inline
 
-: child-tags ( tag -- seq ) tag-children [ tag? ] subset ;
+: child-tags ( tag -- seq ) tag-children [ tag? ] filter ;
 
 : map-find ( seq quot -- result elt )
     f -rot
@@ -13,7 +13,7 @@ IN: xmode.utilities
 
 : tag-init-form ( spec -- quot )
     {
-        { [ dup quotation? ] [ [ object get tag get ] swap compose ] }
+        { [ dup quotation? ] [ [ object get tag get ] prepose ] }
         { [ dup length 2 = ] [
             first2 [
                 >r >r tag get children>string
@@ -29,7 +29,7 @@ IN: xmode.utilities
     } cond ;
 
 : with-tag-initializer ( tag obj quot -- )
-    [ object set tag set ] swap compose with-scope ; inline
+    [ object set tag set ] prepose with-scope ; inline
 
 MACRO: (init-from-tag) ( specs -- )
     [ tag-init-form ] map concat [ ] like