]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences: swap stack arguments for start/start*/subseq?.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 21 Jan 2017 06:49:53 +0000 (22:49 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 21 Jan 2017 06:49:53 +0000 (22:49 -0800)
It is more natural to be ( seq subseq -- ? ).

33 files changed:
basis/alien/libraries/finder/linux/linux-tests.factor
basis/alien/libraries/finder/macosx/macosx-tests.factor
basis/alien/libraries/finder/macosx/macosx.factor
basis/cocoa/application/application.factor
basis/db/sqlite/sqlite.factor
basis/game/input/iokit/iokit.factor
basis/help/lint/checks/checks.factor
basis/help/search/search.factor
basis/html/templates/fhtml/fhtml.factor
basis/http/client/client-tests.factor
basis/mime/multipart/multipart.factor
basis/models/search/search.factor
basis/multiline/multiline.factor
basis/quoted-printable/quoted-printable-tests.factor
basis/sequences/deep/deep-tests.factor
basis/sequences/deep/deep.factor
basis/tools/scaffold/scaffold.factor
basis/urls/urls.factor
core/sequences/sequences.factor
core/splitting/splitting.factor
core/strings/strings-tests.factor
extra/alien/fortran/fortran.factor
extra/html/parser/analyzer/analyzer.factor
extra/io/encodings/detect/detect.factor
extra/lint/lint.factor
extra/metar/metar.factor
extra/project-euler/047/047.factor
extra/rosetta-code/text-processing/max-licenses/max-licenses.factor
extra/rosetta-code/web-scraping/web-scraping.factor
extra/sequences/extras/extras-docs.factor
extra/sequences/extras/extras-tests.factor
extra/sequences/extras/extras.factor
extra/txon/txon.factor

index 416217560f39e71d4e6ead7c0038d0567870bb17..ff06c4bb890293bc382d86c95d2ced3a28178a9f 100644 (file)
@@ -1,5 +1,5 @@
 USING: alien.libraries.finder sequences tools.test ;
 IN: alien.libraries.fidner.linux
 
-{ t } [ "libm.so" "m" find-library subseq? ] unit-test
-{ t } [ "libc.so" "c" find-library subseq? ] unit-test
+{ t } [ "m" find-library "libm.so" subseq? ] unit-test
+{ t } [ "c" find-library "libc.so" subseq? ] unit-test
index 3fe2f938c25b00ae82d2ed7bcee23ef787bba6f4..a7c61e9852d89bab5ca1e678a5e0f8338bca0bc1 100644 (file)
@@ -44,7 +44,7 @@ IN: alien.libraries.finder.macosx
     } [ dyld-find ] map
 ] unit-test
 
-{ t } [ "libm.dylib" "m" find-library subseq? ] unit-test
-{ t } [ "libc.dylib" "c" find-library subseq? ] unit-test
-{ t } [ "libbz2.dylib" "bz2" find-library subseq? ] unit-test
-{ t } [ "AGL.framework" "AGL" find-library subseq? ] unit-test
+{ t } [ "m" find-library "libm.dylib" subseq? ] unit-test
+{ t } [ "c" find-library "libc.dylib" subseq? ] unit-test
+{ t } [ "bz2" find-library "libbz2.dylib" subseq? ] unit-test
+{ t } [ "AGL" find-library "AGL.framework" subseq? ] unit-test
index c6d260b6d91c5fb720d6e137fe7b85d321421b15..659b342b052ee2b8d20288e928200887185ea132 100644 (file)
@@ -121,7 +121,7 @@ PRIVATE>
 
 : framework-find ( name -- path )
     dup dyld-find [ nip ] [
-        ".framework" over start [
+        dup ".framework" start [
             dupd head
         ] [
             [ ".framework" append ] keep
index 86cd1779169a3dcd6362773b3b8629d6a9bf5cee..91971c1c9d10a7c8300fc9d80e9311a25820e2c1 100644 (file)
@@ -40,9 +40,8 @@ FUNCTION: void NSBeep ( )
 
 : running.app? ( -- ? )
     ! Test if we're running a .app.
-    ".app"
     NSBundle -> mainBundle -> bundlePath CF>string
-    subseq? ;
+    ".app" subseq? ;
 
 : assert.app ( message -- )
     running.app? [
index 29abb0422ad9d0adc8261d34d8a064b787ac2047..fbc512a8b3605be0512304cbccebf39d0bd0de8e 100644 (file)
@@ -259,7 +259,7 @@ M: sqlite-db-connection persistent-table ( -- assoc )
     "sql-spec" get modifiers>> [ +not-null+ = ] any? not ;
 
 : delete-cascade? ( -- ? )
-    "sql-spec" get modifiers>> { +on-delete+ +cascade+ } swap subseq? ;
+    "sql-spec" get modifiers>> { +on-delete+ +cascade+ } subseq? ;
 
 : sqlite-trigger, ( string -- )
     { } { } <simple-statement> 3, ;
index 9eb30d7467021248b36b659afb35f049240a628c..a89c925989d42ca58111ed809301082f6817dd12 100644 (file)
@@ -338,7 +338,7 @@ M: iokit-game-input-backend get-controllers ( -- sequence )
     +controller-states+ get-global keys [ controller boa ] map ;
 
 : ?join ( pre post sep -- string )
-    2over start [ swap 2nip ] [ [ 2array ] dip join ] if ;
+    2over swap start [ swap 2nip ] [ [ 2array ] dip join ] if ;
 
 M: iokit-game-input-backend product-string ( controller -- string )
     handle>>
index e5f3a93e4a40bb936df721ee94d6616c2b0e56a9..3be202efb12211661a42caa3da7b25b4626a37f1 100644 (file)
@@ -137,7 +137,7 @@ SYMBOL: vocab-articles
             simple-lint-error
         ] when
     ] [
-        "  " swap subseq? [
+        "  " subseq? [
             "Paragraph text should not contain double spaces"
             simple-lint-error
         ] when
index 87db04467f5b77987ce0c8ce8e5790b973e73b7a..b68193fa4177351f30c5e50cf0c07e811a03a3ce 100644 (file)
@@ -38,7 +38,7 @@ MEMO: article-words ( name -- words )
     search-words [ { } ] [
         [ all-articles ] dip
         dup length 1 > [
-            '[ article-words _ swap subseq? ] filter
+            '[ article-words _ subseq? ] filter
         ] [
             first '[ article-words [ _ head? ] any? ] filter
         ] if
index 1d72c04c43ea55965704c7d2e8947d90b1741a5f..f4ee1bca8fa96f11ffa659fca9ea358cd38538cd 100644 (file)
@@ -25,7 +25,7 @@ M: template-lexer skip-word
 DEFER: <% delimiter
 
 : check-<% ( lexer -- col )
-    "<%" swap [ line-text>> ] [ column>> ] bi start* ;
+    [ line-text>> "<%" ] [ column>> ] bi start ;
 
 : found-<% ( accum lexer col -- accum )
     [
index 651770acc8ec437e7b8684670a6de63951e1af32..de5f6cbad864d501db4e8d3b6d896d85503ee1f2 100644 (file)
@@ -50,8 +50,8 @@ IN: http.client.tests
 ! hit the velox.ch website.
 ! { t } [
     ! "https://alice.sni.velox.ch" http-get nip
-    ! [ "Great!" swap subseq? ]
-    ! [ "TLS SNI Test Site: alice.sni.velox.ch" swap subseq? ] bi and
+    ! [ "Great!" subseq? ]
+    ! [ "TLS SNI Test Site: alice.sni.velox.ch" subseq? ] bi and
 ! ] unit-test
 
 { t } [
index d8daba5be1d3ba031ae6fffada6e9febe969396a..bacf544c5f0e556373f3d4090bf4dc4199333563 100644 (file)
@@ -45,8 +45,7 @@ C: <mime-variable> mime-variable
 
 : dump-until-separator ( multipart -- multipart )
     dup
-    [ current-separator>> ] [ bytes>> ] bi
-    [ nip ] [ start ] 2bi [
+    [ bytes>> ] [ current-separator>> ] bi dupd start [
         cut-slice
         [ mime-write ]
         [ over current-separator>> length short tail-slice >>bytes ] bi*
index 061acc7d9cffc3fd2747200a9f25a13e50fa9304..85db884a892344dee5dc163526cc05f7549497fd 100644 (file)
@@ -7,4 +7,4 @@ IN: models.search
     '[ _ curry filter ] <smart-arrow> ; inline
 
 : <string-search> ( values search quot -- model )
-    '[ swap @ [ >case-fold ] bi@ subseq? ] <search> ; inline
+    '[ swap @ [ >case-fold ] bi@ swap subseq? ] <search> ; inline
index 1c2c1d462dfac8ba3a856db332fa941c76dcb9db..3a645a15ed51e33d66c5bf6bd2aac5cfbc1dac94 100644 (file)
@@ -42,7 +42,7 @@ SYNTAX: STRING:
 :: (scan-multiline-string) ( i end lexer -- j )
     lexer line-text>> :> text
     lexer still-parsing? [
-        end text i start* [| j |
+        text end i start* [| j |
             i j text subseq % j end length +
         ] [
             text i short tail % CHAR: \n ,
index d9d8385195622e348e225edfc92fa7ca32c15d1b..f4df65b2545e5a8935e26dea4b16fcfe874c1590 100644 (file)
@@ -23,8 +23,8 @@ and we didn't know hów tö do thât" latin2 encode >quoted ] unit-test
 : message ( -- str )
     55 [ "hello" ] replicate concat ;
 
-{ f } [ message >quoted "=\r\n" swap subseq? ] unit-test
+{ f } [ message >quoted "=\r\n" subseq? ] unit-test
 { 1 } [ message >quoted string-lines length ] unit-test
-{ t } [ message >quoted-lines "=\r\n" swap subseq? ] unit-test
+{ t } [ message >quoted-lines "=\r\n" subseq? ] unit-test
 { 4 } [ message >quoted-lines string-lines length ] unit-test
 { "===o" } [ message >quoted-lines string-lines [ last ] "" map-as ] unit-test
index b96a51699a528bb70c70b75fe45276bba5775e23..83ef78ccf1ee567ffe45a870f319d7b944f36d7a 100644 (file)
@@ -34,13 +34,13 @@ IN: sequences.deep.tests
 [ { { 1 2 3 } 4 } { { { 1 2 3 } 4 } 2 } deep-member? ] unit-test
 
 { f }
-[ { 1 2 3 4 } { 1 2 3 { 4 } } deep-subseq? ] unit-test
+[ { 1 2 3 { 4 } } { 1 2 3 4 } deep-subseq? ] unit-test
 
 { t }
 [ { 1 2 3 4 } { 1 2 3 4 } deep-subseq? ] unit-test
 
 { t }
-[ { 1 2 3 4 } { { 1 2 3 4 } } deep-subseq? ] unit-test
+[ { { 1 2 3 4 } } { 1 2 3 4 } deep-subseq? ] unit-test
 
 { 3 } [
     { 1 { 2 3 { 4 } } 5 { { 6 } 7 } } 0 [
index e4edd80685ecf5096a58a884f7607c7b9daf8d05..d90c167b2a94df50dd2edf0babf02316122e3d19 100644 (file)
@@ -54,9 +54,9 @@ M: object branch? drop f ;
         _ swap dup branch? [ member? ] [ 2drop f ] if
     ] deep-find >boolean ;
 
-: deep-subseq? ( subseq seq -- ? )
-    swap '[
-        _ swap dup branch? [ subseq? ] [ 2drop f ] if
+: deep-subseq? ( seq subseq -- ? )
+    '[
+        dup branch? [ _ subseq? ] [ drop f ] if
     ] deep-find >boolean ;
 
 : deep-map! ( ... obj quot: ( ... elt -- ... elt' ) -- ... obj )
index 003c90e14cfcfde3f5ecafcfb1a01d91ff20ed2d..726ed1a0805453324d062011786b1dfd368cbedb 100644 (file)
@@ -20,7 +20,7 @@ ERROR: not-a-vocab-root string ;
     trim-tail-separators
     vocab-roots get member? ;
 
-: contains-dot? ( string -- ? ) ".." swap subseq? ;
+: contains-dot? ( string -- ? ) ".." subseq? ;
 
 : contains-separator? ( string -- ? ) [ path-separator? ] any? ;
 
index 858f4a57c94d36ab405c41024ecd9a3f6aaa49a8..3bff389364c50a2da87d9ff716b269577d285e60 100644 (file)
@@ -138,7 +138,7 @@ PRIVATE>
         { [ dup "/" head? ] [ nip ] }
         { [ dup empty? ] [ drop ] }
         { [ over "/" tail? ] [ append ] }
-        { [ "/" pick start not ] [ nip ] }
+        { [ over "/" start not ] [ nip ] }
         [ [ "/" split1-last drop "/" ] dip 3append ]
     } cond ;
 
index b559d3659483be15bb3b8e291bb2eec565bf52ad..057d8799d3ddd8f849f00f70f373c094baff2d8d 100644 (file)
@@ -972,20 +972,21 @@ PRIVATE>
 
 <PRIVATE
 
-: (start) ( subseq seq n length -- subseq seq ? )
+: (start) ( seq subseq n length -- seq subseq ? )
     [
-        [ 3dup ] dip [ + swap nth-unsafe ] keep rot nth-unsafe =
+        [ 3dup ] dip [ + ] keep
+        [ swap nth-unsafe ] bi-curry@ bi* =
     ] all-integers? nip ; inline
 
 PRIVATE>
 
-: start* ( subseq seq n -- i )
-    pick length [ pick length swap - 1 + ] keep
+: start* ( seq subseq n -- i )
+    2over [ length ] bi@ [ - 1 + ] keep
     [ (start) ] curry (find-integer) 2nip ;
 
-: start ( subseq seq -- i ) 0 start* ; inline
+: start ( seq subseq -- i ) 0 start* ; inline
 
-: subseq? ( subseq seq -- ? ) start >boolean ;
+: subseq? ( seq subseq -- ? ) start >boolean ;
 
 : drop-prefix ( seq1 seq2 -- slice1 slice2 )
     2dup mismatch [ 2dup min-length ] unless*
index 5a413b916ec6572adfe5f1cfeea37c4927f03a19..9e812163adcfab784f098b86d7f5e27554e6820f 100644 (file)
@@ -30,7 +30,7 @@ PRIVATE>
 : (split1) ( seq subseq snip-quot -- before after )
     [
         swap [
-            [ drop length ] [ start dup ] 2bi
+            [ drop length ] [ swap start dup ] 2bi
             [ [ nip ] [ + ] 2bi t ]
             [ 2drop f f f ]
             if
index ae3b8746204f81b762fe03511957478c5da52298..fddf7106bc45f27d3c909548ee5360d33ef7be38 100644 (file)
@@ -12,20 +12,20 @@ vectors ;
 { "abc" } [ "ab" "c" append ] unit-test
 { "abc" } [ "a" "b" "c" 3append ] unit-test
 
-{ 3 } [ "a" "hola" start ] unit-test
-{ f } [ "x" "hola" start ] unit-test
-{ 0 } [ "" "a" start ] unit-test
+{ 3 } [ "hola" "a" start ] unit-test
+{ f } [ "hola" "x" start ] unit-test
+{ 0 } [ "a" "" start ] unit-test
 { 0 } [ "" "" start ] unit-test
 { 0 } [ "hola" "hola" start ] unit-test
-{ 1 } [ "ol" "hola" start ] unit-test
-{ f } [ "amigo" "hola" start ] unit-test
-{ f } [ "holaa" "hola" start ] unit-test
+{ 1 } [ "hola" "ol" start ] unit-test
+{ f } [ "hola" "amigo" start ] unit-test
+{ f } [ "hola" "holaa" start ] unit-test
 
 { "Beginning" } [ "Beginning and end" 9 head ] unit-test
 
 { f } [ CHAR: I "team" member? ] unit-test
-{ t } [ "ea" "team" subseq? ] unit-test
-{ f } [ "actore" "Factor" subseq? ] unit-test
+{ t } [ "team" "ea" subseq? ] unit-test
+{ f } [ "Factor" "actore" subseq? ] unit-test
 
 { "end" } [ "Beginning and end" 14 tail ] unit-test
 
index 4f0633b5d09b08f930f1308d56c091e0c3eff326..0702dccdac4c175472ed3ea6fa5a1805fd1b89f0 100755 (executable)
@@ -440,6 +440,8 @@ MACRO: fortran-invoke ( return library function parameters -- quot )
     return library function parameters return [ c:void ] unless* parse-arglist
     [ \ fortran-invoke 5 [ ] nsequence ] dip define-declared ;
 
+! TODO: I THINK THIS IS RIGHT FOR SUBSEQ?
+
 SYNTAX: SUBROUTINE:
     f current-library get scan-token ")" parse-tokens
     [ "()" subseq? ] reject define-fortran-function ;
index 9a2653152597739aabd93710fdfa5a37531c0d55..8d8e1d6c860a5553b9b35580dfecdbd20fecff77 100644 (file)
@@ -141,7 +141,7 @@ ERROR: undefined-find-nth m n seq quot ;
     [ { [ name>> = ] [ closing?>> not ] } 1&& ] with find-all ;
 
 : href-contains? ( str tag -- ? )
-    "href" attribute* [ subseq? ] [ 2drop f ] if ;
+    "href" attribute* [ swap subseq? ] [ 2drop f ] if ;
 
 : find-hrefs ( vector -- vector' )
     [ { [ name>> "a" = ] [ "href" attribute? ] } 1&& ] filter sift
index ab6158b6395147e8799be1dc73bc27481846bd01..518cfa1c47d374e048ad6f1f7cc04e92def9eab6 100644 (file)
@@ -17,7 +17,7 @@ default-8bit-encoding [ latin1 ] initialize
 
 : prolog-encoding ( string -- iana-encoding )
     '[
-        _ "encoding=" over start
+        _ dup "encoding=" start
         10 + swap [ [ 1 - ] dip nth ] [ index-from ] [ swapd subseq ] 2tri
     ] [ drop "UTF-8" ] recover ;
 
index dee21564c2c077a8ea79a73b458b8af7ca8c042e..77fae4d5205098d7b353ab4c3220395f5ee47fde 100644 (file)
@@ -246,7 +246,7 @@ GENERIC: lint ( obj -- seq )
 M: object lint ( obj -- seq ) drop f ;
 
 M: callable lint ( quot -- seq )
-    [ lint-definitions-keys get-global ] dip '[ _ subseq? ] filter ;
+    lint-definitions-keys get-global [ subseq? ] with filter ;
 
 M: word lint ( word -- seq/f )
     def>> [ callable? ] deep-filter [ lint ] map concat ;
index fc6df7b008634ca9f7691707d06fdcbce96e4e18..a04a254d2b3f24def6dc888259a7a28eda85bc02 100644 (file)
@@ -227,7 +227,7 @@ CONSTANT: compass-directions H{
     ] if ;
 
 : parse-weather ( str -- str' )
-    "VC" over subseq? [ "VC" "" replace t ] [ f ] if
+    dup "VC" subseq? [ "VC" "" replace t ] [ f ] if
     [ (parse-weather) ]
     [ [ " in the vicinity" append ] when ] bi* ;
 
index e7b585bf0d5b030edf1216c6c9fd49fc66178e5c..3b0c6c6755445a6ed8908d9d24b23923c1840cbf 100644 (file)
@@ -80,7 +80,7 @@ SYMBOL: sieve
     ] each sieve get ;
 
 : consecutive-under ( m limit -- n/f )
-    prime-tau-upto [ dup <repetition> ] dip start ;
+    prime-tau-upto swap dup <repetition> start ;
 
 PRIVATE>
 
index 994347091642a0d10a60b170c146be67e6e4795f..e80688dd82bb0259b9809677c60f30dbd12fe070 100644 (file)
@@ -32,7 +32,7 @@ TUPLE: maxlicense max-count current-count times ;
 
 : <maxlicense> ( -- max ) -1 0 V{ } clone \ maxlicense boa ; inline
 
-: out? ( line -- ? ) [ "OUT" ] dip subseq? ; inline
+: out? ( line -- ? ) "OUT" subseq? ; inline
 
 : line-time ( line -- time ) " " split harvest fourth ; inline
 
index 402a960124e28422ceadd9f03249ac68bb4ac10d..d0a56184cb2a94610a9100f1270f467ae1ab1d80 100644 (file)
@@ -16,6 +16,6 @@ IN: rosetta-code.web-scraping
 
 : web-scraping-main ( -- )
     "http://tycho.usno.navy.mil/cgi-bin/timer.pl" http-get nip
-    [ "UTC" swap start [ 9 - ] [ 1 - ] bi ] keep subseq print ;
+    [ "UTC" start [ 9 - ] [ 1 - ] bi ] keep subseq print ;
 
 MAIN: web-scraping-main
index d52928eea3669956990831c1c093cdbe76ab3723..e3ca8fc9d700ed9fd7b1c59224b01549061857a7 100644 (file)
@@ -187,10 +187,10 @@ HELP: start-all
      { "subseq" sequence } { "seq" sequence } { "indices" sequence } }
 { $description "Outputs the starting indices of the non-overlapping occurrences of " { $snippet "subseq" } " in " { $snippet "seq" } "." }
 { $examples
-    { $example "USING: prettyprint sequences.extras ; \"ABA\" \"ABABA\" start-all ."
+    { $example "USING: prettyprint sequences.extras ; \"ABABA\" \"ABA\" start-all ."
                "{ 0 }"
     }
-    { $example "USING: prettyprint sequences.extras ; \"ABA\" \"ABAABA\" start-all ."
+    { $example "USING: prettyprint sequences.extras ; \"ABAABA\" \"ABA\" start-all ."
       "{ 0 3 }"
     }
  } ;
@@ -200,7 +200,7 @@ HELP: start-all*
     { "subseq" sequence } { "seq" sequence } { "indices" sequence } }
 { $description "Outputs the starting indices of the possibly overlapping occurrences of " { $snippet "subseq" } " in " { $snippet "seq" } "." }
 { $examples
-    { $example "USING: prettyprint sequences.extras ; \"ABA\" \"ABABA\" start-all* ."
+    { $example "USING: prettyprint sequences.extras ; \"ABABA\" \"ABA\" start-all* ."
                "{ 0 2 }"
     } } ;
 
@@ -209,7 +209,7 @@ HELP: count-subseq
     { "subseq" sequence } { "seq" sequence } { "n" integer } }
 { $description "Outputs the number of non-overlapping occurrences of " { $snippet "subseq" } " in " { $snippet "seq" } "." }
 { $examples
-    { $example "USING: prettyprint sequences.extras ; \"ABA\" \"ABABA\" count-subseq ."
+    { $example "USING: prettyprint sequences.extras ; \"ABABA\" \"ABA\" count-subseq ."
                "1"
     } } ;
 
@@ -219,7 +219,7 @@ HELP: count-subseq*
     { "subseq" sequence } { "seq" sequence } { "n" integer } }
 { $description "Outputs the number of possibly overlapping occurrences of " { $snippet "subseq" } " in " { $snippet "seq" } "." }
 { $examples
-    { $example "USING: prettyprint sequences.extras ; \"ABA\" \"ABABA\" count-subseq* ."
+    { $example "USING: prettyprint sequences.extras ; \"ABABA\" \"ABA\" count-subseq* ."
                "2"
     } } ;
 
index 28db9fb03f82b5093e5308a5ca53b490c70bae6d..c4d919c4c69b94942f88f090c6c099cfb37b5510 100644 (file)
@@ -226,11 +226,11 @@ IN: sequences.extras.tests
 
 { 3/10 } [ 10 iota [ 3 < ] count* ] unit-test
 
-{ { 0 } } [ "ABA" "ABABA" start-all ] unit-test
-{ { 0 2 } } [ "ABA" "ABABA" start-all* ] unit-test
-{ { 0 3 } } [ "ABA" "ABAABA" start-all ] unit-test
-{ 1 } [ "ABA" "ABABA" count-subseq ] unit-test
-{ 2 } [ "ABA" "ABABA" count-subseq* ] unit-test
+{ { 0 } } [ "ABABA" "ABA" start-all ] unit-test
+{ { 0 2 } } [ "ABABA" "ABA" start-all* ] unit-test
+{ { 0 3 } } [ "ABAABA" "ABA" start-all ] unit-test
+{ 1 } [ "ABABA" "ABA" count-subseq ] unit-test
+{ 2 } [ "ABABA" "ABA" count-subseq* ] unit-test
 
 { 120000 } [ { 10 20 30 40 50 60 } 1 [ * ] 3 reduce-from ] unit-test
 
index 8d2805473cbd0198f381e44334f91d35beb53ee7..58eec4380b4b8f261d6db6798b78b6f635abf61b 100644 (file)
@@ -577,21 +577,21 @@ PRIVATE>
 : map-find-last-index ( ... seq quot: ( ... elt index -- ... result/f ) -- ... result i elt )
     [ find-last-index ] (map-find-index) ; inline
 
-:: (start-all) ( subseq seq increment -- indices )
+:: (start-all) ( seq subseq increment -- indices )
     0
-    [ [ subseq seq ] dip start* dup ]
+    [ [ seq subseq ] dip start* dup ]
     [ [ increment + ] keep ] produce nip ;
 
-: start-all ( subseq seq -- indices )
-    over length (start-all) ; inline
+: start-all ( seq subseq -- indices )
+    dup length (start-all) ; inline
 
-: start-all* ( subseq seq -- indices )
+: start-all* ( seq subseq -- indices )
     1 (start-all) ; inline
 
-: count-subseq ( subseq seq -- n )
+: count-subseq ( seq subseq -- n )
     start-all length ; inline
 
-: count-subseq* ( subseq seq -- n )
+: count-subseq* ( seq subseq -- n )
     start-all* length ; inline
 
 : map-zip ( quot: ( x -- y ) -- alist )
index e04c7c1a3d2091a32b027c774691b9e0d2dac4d1..f774530529a3651accbc44707c1d3cad2082c4f8 100644 (file)
@@ -41,8 +41,8 @@ DEFER: name/values
     parse-name [ parse-value ] dip associate ;
 
 : name=value ( string -- remain term )
-    [ blank? ] trim
-    ":`" over subseq? [ (name=value) ] [ f swap ] if ;
+    [ blank? ] trim dup ":`" subseq?
+    [ (name=value) ] [ f swap ] if ;
 
 : name/values ( string -- remain terms )
     [ dup { [ empty? not ] [ first CHAR: ` = not ] } 1&& ]