From bd13e018ddbe1a3b4fd73740f5a62daad507ba1b Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Wed, 28 Oct 2009 15:02:00 -0500 Subject: [PATCH] memq? -> member-eq?, sorted-memq? -> sorted-member-eq? --- basis/alien/c-types/c-types.factor | 6 +++--- basis/binary-search/binary-search-docs.factor | 6 +++--- basis/binary-search/binary-search.factor | 2 +- basis/bootstrap/compiler/compiler.factor | 4 ++-- basis/compiler/cfg/checker/checker.factor | 2 +- basis/compiler/cfg/comparisons/comparisons.factor | 2 +- basis/compiler/cfg/hats/hats.factor | 2 +- basis/compiler/cfg/instructions/instructions.factor | 2 +- basis/compiler/cfg/predecessors/predecessors.factor | 4 ++-- .../cfg/representations/preferred/preferred.factor | 2 +- .../cfg/useless-conditionals/useless-conditionals.factor | 2 +- basis/compiler/cfg/utilities/utilities.factor | 2 +- .../cfg/value-numbering/expressions/expressions.factor | 2 +- basis/compiler/cfg/value-numbering/rewrite/rewrite.factor | 6 +++--- basis/compiler/tests/stack-trace.factor | 2 +- .../tree/modular-arithmetic/modular-arithmetic.factor | 6 +++--- basis/compiler/tree/propagation/inlining/inlining.factor | 4 ++-- basis/compiler/tree/propagation/propagation-tests.factor | 4 ++-- basis/compiler/tree/propagation/slots/slots.factor | 2 +- .../tree/propagation/transforms/transforms.factor | 6 +++--- basis/cpu/x86/assembler/operands/operands.factor | 6 +++--- basis/cpu/x86/x86.factor | 8 ++++---- basis/fry/fry.factor | 2 +- basis/hints/hints.factor | 2 +- basis/inverse/inverse.factor | 4 ++-- basis/io/buffers/buffers.factor | 2 +- basis/io/streams/limited/limited.factor | 2 +- basis/locals/rewrite/sugar/sugar.factor | 2 +- basis/logging/analysis/analysis.factor | 2 +- basis/math/intervals/intervals.factor | 2 +- basis/math/partial-dispatch/partial-dispatch-tests.factor | 8 ++++---- basis/math/vectors/conversion/conversion.factor | 4 ++-- basis/math/vectors/simd/simd.factor | 2 +- basis/models/arrow/arrow-tests.factor | 4 ++-- basis/prettyprint/backend/backend.factor | 2 +- basis/tools/crossref/crossref.factor | 6 +++--- basis/tools/deploy/shaker/shaker.factor | 2 +- basis/ui/backend/cocoa/cocoa.factor | 2 +- basis/ui/backend/windows/windows.factor | 2 +- basis/ui/gadgets/labels/labels.factor | 2 +- basis/ui/gadgets/worlds/worlds.factor | 4 ++-- basis/ui/tools/listener/completion/completion.factor | 4 ++-- basis/ui/tools/profiler/profiler.factor | 2 +- core/alien/strings/strings.factor | 2 +- core/classes/mixin/mixin.factor | 2 +- core/classes/tuple/tuple-tests.factor | 2 +- core/io/streams/c/c.factor | 2 +- core/io/streams/sequence/sequence.factor | 2 +- core/parser/parser-tests.factor | 6 +++--- core/sequences/sequences-docs.factor | 4 ++-- core/sequences/sequences-tests.factor | 2 +- core/sequences/sequences.factor | 2 +- core/sets/sets-docs.factor | 2 +- .../reverse-complement/reverse-complement.factor | 2 +- extra/mongodb/tuple/collection/collection.factor | 2 +- misc/vim/syntax/factor.vim | 2 +- 56 files changed, 88 insertions(+), 88 deletions(-) diff --git a/basis/alien/c-types/c-types.factor b/basis/alien/c-types/c-types.factor index d622a42c9d..119e437734 100755 --- a/basis/alien/c-types/c-types.factor +++ b/basis/alien/c-types/c-types.factor @@ -501,9 +501,9 @@ M: double-2-rep rep-component-type drop double ; : c-type-interval ( c-type -- from to ) { - { [ dup { float double } memq? ] [ drop -1/0. 1/0. ] } - { [ dup { char short int long longlong } memq? ] [ signed-interval ] } - { [ dup { uchar ushort uint ulong ulonglong } memq? ] [ unsigned-interval ] } + { [ dup { float double } member-eq? ] [ drop -1/0. 1/0. ] } + { [ dup { char short int long longlong } member-eq? ] [ signed-interval ] } + { [ dup { uchar ushort uint ulong ulonglong } member-eq? ] [ unsigned-interval ] } } cond ; foldable : c-type-clamp ( value c-type -- value' ) c-type-interval clamp ; inline diff --git a/basis/binary-search/binary-search-docs.factor b/basis/binary-search/binary-search-docs.factor index 728ac41e94..aa015c5502 100644 --- a/basis/binary-search/binary-search-docs.factor +++ b/basis/binary-search/binary-search-docs.factor @@ -25,11 +25,11 @@ HELP: sorted-member? { member? sorted-member? } related-words -HELP: sorted-memq? +HELP: sorted-member-eq? { $values { "obj" object } { "seq" "a sorted sequence" } { "?" "a boolean" } } { $description "Tests if the sorted sequence contains " { $snippet "elt" } ". Equality is tested with " { $link eq? } "." } ; -{ memq? sorted-memq? } related-words +{ member-eq? sorted-member-eq? } related-words ARTICLE: "binary-search" "Binary search" "The " { $emphasis "binary search" } " algorithm allows elements to be located in sorted sequence in " { $snippet "O(log n)" } " time." @@ -38,7 +38,7 @@ ARTICLE: "binary-search" "Binary search" { $subsections sorted-index sorted-member? - sorted-memq? + sorted-member-eq? } { $see-also "order-specifiers" "sequences-sorting" } ; diff --git a/basis/binary-search/binary-search.factor b/basis/binary-search/binary-search.factor index aba3cfbfe5..89a300202a 100644 --- a/basis/binary-search/binary-search.factor +++ b/basis/binary-search/binary-search.factor @@ -49,5 +49,5 @@ HINTS: natural-search array ; : sorted-member? ( obj seq -- ? ) dupd natural-search nip = ; -: sorted-memq? ( obj seq -- ? ) +: sorted-member-eq? ( obj seq -- ? ) dupd natural-search nip eq? ; diff --git a/basis/bootstrap/compiler/compiler.factor b/basis/bootstrap/compiler/compiler.factor index e9187cc3b1..4c96ed4000 100755 --- a/basis/bootstrap/compiler/compiler.factor +++ b/basis/bootstrap/compiler/compiler.factor @@ -94,7 +94,7 @@ gc "." write flush { - memq? split harvest sift cut cut-slice start index clone + member-eq? split harvest sift cut cut-slice start index clone set-at reverse push-all class number>string string>number like clone-like } compile-unoptimized @@ -118,4 +118,4 @@ gc " done" print flush -] unless \ No newline at end of file +] unless diff --git a/basis/compiler/cfg/checker/checker.factor b/basis/compiler/cfg/checker/checker.factor index 510d7c45cb..051b0e3e1f 100644 --- a/basis/compiler/cfg/checker/checker.factor +++ b/basis/compiler/cfg/checker/checker.factor @@ -49,7 +49,7 @@ ERROR: bad-kill-insn bb ; ERROR: bad-successors ; : check-successors ( bb -- ) - dup successors>> [ predecessors>> memq? ] with all? + dup successors>> [ predecessors>> member-eq? ] with all? [ bad-successors ] unless ; : check-basic-block ( bb -- ) diff --git a/basis/compiler/cfg/comparisons/comparisons.factor b/basis/compiler/cfg/comparisons/comparisons.factor index 0b4a6f2f02..35f25c2d40 100644 --- a/basis/compiler/cfg/comparisons/comparisons.factor +++ b/basis/compiler/cfg/comparisons/comparisons.factor @@ -90,5 +90,5 @@ SYMBOLS: { cc/> { +lt+ +eq+ +unordered+ } } { cc/<> { +eq+ +unordered+ } } { cc/<>= { +unordered+ } } - } at memq? ; + } at member-eq? ; diff --git a/basis/compiler/cfg/hats/hats.factor b/basis/compiler/cfg/hats/hats.factor index 42aa5512bc..783df0678c 100644 --- a/basis/compiler/cfg/hats/hats.factor +++ b/basis/compiler/cfg/hats/hats.factor @@ -26,7 +26,7 @@ IN: compiler.cfg.hats : hat-effect ( insn -- effect ) "insn-slots" word-prop - [ type>> { def temp } memq? not ] filter [ name>> ] map + [ type>> { def temp } member-eq? not ] filter [ name>> ] map { "vreg" } ; : define-hat ( insn -- ) diff --git a/basis/compiler/cfg/instructions/instructions.factor b/basis/compiler/cfg/instructions/instructions.factor index bffa0e59d0..5712455988 100644 --- a/basis/compiler/cfg/instructions/instructions.factor +++ b/basis/compiler/cfg/instructions/instructions.factor @@ -833,7 +833,7 @@ SYMBOL: vreg-insn [ vreg-insn insn-classes get [ - "insn-slots" word-prop [ type>> { def use temp } memq? ] any? + "insn-slots" word-prop [ type>> { def use temp } member-eq? ] any? ] filter define-union-class ] with-compilation-unit diff --git a/basis/compiler/cfg/predecessors/predecessors.factor b/basis/compiler/cfg/predecessors/predecessors.factor index 8ab9f316a7..506d4aa46c 100644 --- a/basis/compiler/cfg/predecessors/predecessors.factor +++ b/basis/compiler/cfg/predecessors/predecessors.factor @@ -12,7 +12,7 @@ IN: compiler.cfg.predecessors : update-phi ( bb ##phi -- ) [ swap predecessors>> - '[ drop _ memq? ] assoc-filter + '[ drop _ member-eq? ] assoc-filter ] change-inputs drop ; : update-phis ( bb -- ) @@ -30,4 +30,4 @@ PRIVATE> : needs-predecessors ( cfg -- cfg' ) dup predecessors-valid?>> - [ compute-predecessors t >>predecessors-valid? ] unless ; \ No newline at end of file + [ compute-predecessors t >>predecessors-valid? ] unless ; diff --git a/basis/compiler/cfg/representations/preferred/preferred.factor b/basis/compiler/cfg/representations/preferred/preferred.factor index 4444290f05..1e07e56b35 100644 --- a/basis/compiler/cfg/representations/preferred/preferred.factor +++ b/basis/compiler/cfg/representations/preferred/preferred.factor @@ -26,7 +26,7 @@ GENERIC: uses-vreg-reps ( insn -- reps ) bi define ; : reps-getter-quot ( reps -- quot ) - dup [ rep>> { f scalar-rep } memq? not ] all? [ + dup [ rep>> { f scalar-rep } member-eq? not ] all? [ [ rep>> ] map [ drop ] swap suffix ] [ [ rep>> rep-getter-quot ] map dup length { diff --git a/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor b/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor index cd4978c585..a2885ae26e 100644 --- a/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor +++ b/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor @@ -13,7 +13,7 @@ IN: compiler.cfg.useless-conditionals ##compare-imm-branch ##compare-float-ordered-branch ##compare-float-unordered-branch - } memq? + } member-eq? ] [ successors>> first2 [ skip-empty-blocks ] bi@ eq? ] } 1&& ; diff --git a/basis/compiler/cfg/utilities/utilities.factor b/basis/compiler/cfg/utilities/utilities.factor index be8c9ad0ad..3710f4974b 100644 --- a/basis/compiler/cfg/utilities/utilities.factor +++ b/basis/compiler/cfg/utilities/utilities.factor @@ -40,7 +40,7 @@ SYMBOL: visited :: insert-basic-block ( froms to bb -- ) bb froms V{ } like >>predecessors drop bb to 1vector >>successors drop - to predecessors>> [ dup froms memq? [ drop bb ] when ] map! drop + to predecessors>> [ dup froms member-eq? [ drop bb ] when ] map! drop froms [ successors>> [ dup to eq? [ drop bb ] when ] map! drop ] each ; : add-instructions ( bb quot -- ) diff --git a/basis/compiler/cfg/value-numbering/expressions/expressions.factor b/basis/compiler/cfg/value-numbering/expressions/expressions.factor index 0ac973a206..6534aa74ab 100644 --- a/basis/compiler/cfg/value-numbering/expressions/expressions.factor +++ b/basis/compiler/cfg/value-numbering/expressions/expressions.factor @@ -42,7 +42,7 @@ M: ##load-constant >expr obj>> ; << : input-values ( slot-specs -- slot-specs' ) - [ type>> { use literal constant } memq? ] filter ; + [ type>> { use literal constant } member-eq? ] filter ; : expr-class ( insn -- expr ) name>> "##" ?head drop "-expr" append create-class-in ; diff --git a/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor b/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor index 28c6741bc1..5d4ff5efb9 100755 --- a/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor +++ b/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor @@ -111,7 +111,7 @@ M: ##compare-imm rewrite-tagged-comparison { [ src1>> vreg>expr general-compare-expr? ] [ src2>> \ f tag-number = ] - [ cc>> { cc= cc/= } memq? ] + [ cc>> { cc= cc/= } member-eq? ] } 1&& ; inline : rewrite-redundant-comparison ( insn -- insn' ) @@ -174,7 +174,7 @@ M: ##compare-imm-branch rewrite [ src1>> ] [ src2>> ] bi [ vreg>vn ] bi@ = ; inline : (rewrite-self-compare) ( insn -- ? ) - cc>> { cc= cc<= cc>= } memq? ; + cc>> { cc= cc<= cc>= } member-eq? ; : rewrite-self-compare-branch ( insn -- insn' ) (rewrite-self-compare) fold-branch ; @@ -279,7 +279,7 @@ M: ##not rewrite ##sub-imm ##mul ##mul-imm - } memq? ; + } member-eq? ; : immediate? ( value op -- ? ) arithmetic-op? [ immediate-arithmetic? ] [ immediate-bitwise? ] if ; diff --git a/basis/compiler/tests/stack-trace.factor b/basis/compiler/tests/stack-trace.factor index 20a5cc867c..40aa1bb336 100755 --- a/basis/compiler/tests/stack-trace.factor +++ b/basis/compiler/tests/stack-trace.factor @@ -19,7 +19,7 @@ IN: compiler.tests.stack-trace : bleh ( seq -- seq' ) [ 3 + ] map [ 0 > ] filter ; -: stack-trace-any? ( word -- ? ) symbolic-stack-trace memq? ; +: stack-trace-any? ( word -- ? ) symbolic-stack-trace member-eq? ; [ t ] [ [ { 1 "hi" } bleh ] ignore-errors \ + stack-trace-any? diff --git a/basis/compiler/tree/modular-arithmetic/modular-arithmetic.factor b/basis/compiler/tree/modular-arithmetic/modular-arithmetic.factor index 8ca80ccbae..ece2ed80f3 100644 --- a/basis/compiler/tree/modular-arithmetic/modular-arithmetic.factor +++ b/basis/compiler/tree/modular-arithmetic/modular-arithmetic.factor @@ -75,7 +75,7 @@ M: #push compute-modular-candidates* 0 cell-bits tag-bits get - 1 - [a,b] interval-subset? ; : modular-word? ( #call -- ? ) - dup word>> { shift fixnum-shift bignum-shift } memq? + dup word>> { shift fixnum-shift bignum-shift } member-eq? [ node-input-infos second interval>> small-shift? ] [ word>> "modular-arithmetic" word-prop ] if ; @@ -178,10 +178,10 @@ MEMO: fixnum-coercion ( flags -- nodes ) ] when ; : like->fixnum? ( #call -- ? ) - word>> { >fixnum bignum>fixnum float>fixnum } memq? ; + word>> { >fixnum bignum>fixnum float>fixnum } member-eq? ; : like->integer? ( #call -- ? ) - word>> { >integer >bignum fixnum>bignum } memq? ; + word>> { >integer >bignum fixnum>bignum } member-eq? ; M: #call optimize-modular-arithmetic* { diff --git a/basis/compiler/tree/propagation/inlining/inlining.factor b/basis/compiler/tree/propagation/inlining/inlining.factor index 367427c716..634fade609 100755 --- a/basis/compiler/tree/propagation/inlining/inlining.factor +++ b/basis/compiler/tree/propagation/inlining/inlining.factor @@ -90,7 +90,7 @@ M: callable splicing-nodes splicing-body ; ! Method body inlining SYMBOL: history -: already-inlined? ( obj -- ? ) history get memq? ; +: already-inlined? ( obj -- ? ) history get member-eq? ; : add-to-history ( obj -- ) history [ swap suffix ] change ; @@ -104,7 +104,7 @@ SYMBOL: history ] if ; : always-inline-word? ( word -- ? ) - { curry compose } memq? ; + { curry compose } member-eq? ; : never-inline-word? ( word -- ? ) { [ deferred? ] [ "default" word-prop ] [ \ call eq? ] } 1|| ; diff --git a/basis/compiler/tree/propagation/propagation-tests.factor b/basis/compiler/tree/propagation/propagation-tests.factor index 5d12c14f5f..0f04a5e3d5 100644 --- a/basis/compiler/tree/propagation/propagation-tests.factor +++ b/basis/compiler/tree/propagation/propagation-tests.factor @@ -867,8 +867,8 @@ SYMBOL: not-an-assoc [ t ] [ [ { 1 2 3 } member? ] { member? } inlined? ] unit-test [ f ] [ [ { 1 2 3 } swap member? ] { member? } inlined? ] unit-test -[ t ] [ [ { 1 2 3 } memq? ] { memq? } inlined? ] unit-test -[ f ] [ [ { 1 2 3 } swap memq? ] { memq? } inlined? ] unit-test +[ t ] [ [ { 1 2 3 } member-eq? ] { member-eq? } inlined? ] unit-test +[ f ] [ [ { 1 2 3 } swap member-eq? ] { member-eq? } inlined? ] unit-test [ t ] [ [ V{ } clone ] { clone (clone) } inlined? ] unit-test [ f ] [ [ { } clone ] { clone (clone) } inlined? ] unit-test diff --git a/basis/compiler/tree/propagation/slots/slots.factor b/basis/compiler/tree/propagation/slots/slots.factor index 4996729ded..11a4cdc4c6 100644 --- a/basis/compiler/tree/propagation/slots/slots.factor +++ b/basis/compiler/tree/propagation/slots/slots.factor @@ -11,7 +11,7 @@ IN: compiler.tree.propagation.slots UNION: fixed-length-sequence array byte-array string ; : sequence-constructor? ( word -- ? ) - { (byte-array) } memq? ; + { (byte-array) } member-eq? ; : constructor-output-class ( word -- class ) { diff --git a/basis/compiler/tree/propagation/transforms/transforms.factor b/basis/compiler/tree/propagation/transforms/transforms.factor index d1f5386450..1f40bf00a2 100644 --- a/basis/compiler/tree/propagation/transforms/transforms.factor +++ b/basis/compiler/tree/propagation/transforms/transforms.factor @@ -213,12 +213,12 @@ ERROR: bad-partial-eval quot word ; ] [ drop f ] if ] 1 define-partial-eval -: memq-quot ( seq -- newquot ) +: member-eq-quot ( seq -- newquot ) [ [ dupd eq? ] curry [ drop t ] ] { } map>assoc [ drop f ] suffix [ cond ] curry ; -\ memq? [ - dup sequence? [ memq-quot ] [ drop f ] if +\ member-eq? [ + dup sequence? [ member-eq-quot ] [ drop f ] if ] 1 define-partial-eval ! Membership testing diff --git a/basis/cpu/x86/assembler/operands/operands.factor b/basis/cpu/x86/assembler/operands/operands.factor index df49ae0a15..bd9a3f6cdd 100644 --- a/basis/cpu/x86/assembler/operands/operands.factor +++ b/basis/cpu/x86/assembler/operands/operands.factor @@ -65,7 +65,7 @@ M: indirect extended? base>> extended? ; ERROR: bad-index indirect ; : check-ESP ( indirect -- indirect ) - dup index>> { ESP RSP } memq? [ bad-index ] when ; + dup index>> { ESP RSP } member-eq? [ bad-index ] when ; : canonicalize ( indirect -- indirect ) #! Modify the indirect to work around certain addressing mode @@ -103,7 +103,7 @@ TUPLE: byte value ; C: byte : extended-8-bit-register? ( register -- ? ) - { SPL BPL SIL DIL } memq? ; + { SPL BPL SIL DIL } member-eq? ; : n-bit-version-of ( register n -- register' ) ! Certain 8-bit registers don't exist in 32-bit mode... @@ -115,4 +115,4 @@ C: byte : 16-bit-version-of ( register -- register' ) 16 n-bit-version-of ; : 32-bit-version-of ( register -- register' ) 32 n-bit-version-of ; : 64-bit-version-of ( register -- register' ) 64 n-bit-version-of ; -: native-version-of ( register -- register' ) cell-bits n-bit-version-of ; \ No newline at end of file +: native-version-of ( register -- register' ) cell-bits n-bit-version-of ; diff --git a/basis/cpu/x86/x86.factor b/basis/cpu/x86/x86.factor index d19a9b0c8c..07b21c9612 100644 --- a/basis/cpu/x86/x86.factor +++ b/basis/cpu/x86/x86.factor @@ -254,7 +254,7 @@ CONSTANT: have-byte-regs { EAX ECX EDX EBX } M: x86.32 has-small-reg? { - { 8 [ have-byte-regs memq? ] } + { 8 [ have-byte-regs member-eq? ] } { 16 [ drop t ] } { 32 [ drop t ] } } case ; @@ -264,7 +264,7 @@ M: x86.64 has-small-reg? 2drop t ; : small-reg-that-isn't ( exclude -- reg' ) [ have-byte-regs ] dip [ native-version-of ] map - '[ _ memq? not ] find nip ; + '[ _ member-eq? not ] find nip ; : with-save/restore ( reg quot -- ) [ drop PUSH ] [ call ] [ drop POP ] 2tri ; inline @@ -356,7 +356,7 @@ M: x86 %set-alien-float [ [+] ] dip MOVSS ; M: x86 %set-alien-double [ [+] ] dip MOVSD ; M: x86 %set-alien-vector [ [+] ] 2dip %copy ; -: shift-count? ( reg -- ? ) { ECX RCX } memq? ; +: shift-count? ( reg -- ? ) { ECX RCX } member-eq? ; :: emit-shift ( dst src quot -- ) src shift-count? [ @@ -893,7 +893,7 @@ M: x86 %compare-vector ( dst src1 src2 rep cc -- ) M: x86 %compare-vector-reps { - { [ dup { cc= cc/= cc/<>= cc<>= } memq? ] [ drop %compare-vector-eq-reps ] } + { [ dup { cc= cc/= cc/<>= cc<>= } member-eq? ] [ drop %compare-vector-eq-reps ] } [ drop %compare-vector-ord-reps ] } cond ; diff --git a/basis/fry/fry.factor b/basis/fry/fry.factor index fd029cc329..046da86b7b 100644 --- a/basis/fry/fry.factor +++ b/basis/fry/fry.factor @@ -28,7 +28,7 @@ M: >r/r>-in-fry-error summary dup { load-local load-locals get-local drop-locals } intersect [ >r/r>-in-fry-error ] unless-empty ; -PREDICATE: fry-specifier < word { _ @ } memq? ; +PREDICATE: fry-specifier < word { _ @ } member-eq? ; GENERIC: count-inputs ( quot -- n ) diff --git a/basis/hints/hints.factor b/basis/hints/hints.factor index 2c250aa66d..d7c745500b 100644 --- a/basis/hints/hints.factor +++ b/basis/hints/hints.factor @@ -119,7 +119,7 @@ SYNTAX: HINTS: \ split, { string string } "specializer" set-word-prop -\ memq? { array } "specializer" set-word-prop +\ member-eq? { array } "specializer" set-word-prop \ member? { array } "specializer" set-word-prop diff --git a/basis/inverse/inverse.factor b/basis/inverse/inverse.factor index 6b1e839ca6..1e941afed0 100755 --- a/basis/inverse/inverse.factor +++ b/basis/inverse/inverse.factor @@ -97,7 +97,7 @@ SYMBOL: visited [ dup flattenable? [ def>> - [ visited get memq? [ no-recursive-inverse ] when ] + [ visited get member-eq? [ no-recursive-inverse ] when ] [ flatten ] bi ] [ 1quotation ] if @@ -149,7 +149,7 @@ MACRO: undo ( quot -- ) [undo] ; \ tri* 3 [ [ [undo] ] tri@ '[ _ _ _ tri* ] ] define-pop-inverse \ not define-involution -\ >boolean [ dup { t f } memq? assure ] define-inverse +\ >boolean [ dup { t f } member-eq? assure ] define-inverse \ tuple>array \ >tuple define-dual \ reverse define-involution diff --git a/basis/io/buffers/buffers.factor b/basis/io/buffers/buffers.factor index aa9cedf340..91524dd6e1 100644 --- a/basis/io/buffers/buffers.factor +++ b/basis/io/buffers/buffers.factor @@ -73,7 +73,7 @@ HINTS: >buffer byte-array buffer ; bi ; inline : search-buffer-until ( pos fill ptr separators -- n ) - [ [ swap alien-unsigned-1 ] dip memq? ] 2curry find-from drop ; inline + [ [ swap alien-unsigned-1 ] dip member-eq? ] 2curry find-from drop ; inline : finish-buffer-until ( buffer n -- byte-array separator ) [ diff --git a/basis/io/streams/limited/limited.factor b/basis/io/streams/limited/limited.factor index 403643ed73..f5aab9c976 100755 --- a/basis/io/streams/limited/limited.factor +++ b/basis/io/streams/limited/limited.factor @@ -123,7 +123,7 @@ M: limited-stream stream-read-partial r/r>-in-lambda-error ] [ call-next-method ] if ; M: object rewrite-sugar* , ; diff --git a/basis/logging/analysis/analysis.factor b/basis/logging/analysis/analysis.factor index 0ba98996b3..eb8a2eaf76 100644 --- a/basis/logging/analysis/analysis.factor +++ b/basis/logging/analysis/analysis.factor @@ -12,7 +12,7 @@ SYMBOL: word-histogram SYMBOL: message-histogram : analyze-entry ( entry -- ) - dup level>> { ERROR CRITICAL } memq? [ dup errors get push ] when + dup level>> { ERROR CRITICAL } member-eq? [ dup errors get push ] when dup word-name>> word-histogram get inc-at dup word-name>> word-names get member? [ dup [ level>> ] [ word-name>> ] [ message>> ] tri 3array diff --git a/basis/math/intervals/intervals.factor b/basis/math/intervals/intervals.factor index 05f9906bb9..ec742cb1ce 100755 --- a/basis/math/intervals/intervals.factor +++ b/basis/math/intervals/intervals.factor @@ -192,7 +192,7 @@ MEMO: array-capacity-interval ( -- interval ) : interval-sq ( i1 -- i2 ) dup interval* ; : special-interval? ( interval -- ? ) - { empty-interval full-interval } memq? ; + { empty-interval full-interval } member-eq? ; : interval-singleton? ( int -- ? ) dup special-interval? [ diff --git a/basis/math/partial-dispatch/partial-dispatch-tests.factor b/basis/math/partial-dispatch/partial-dispatch-tests.factor index 29979b62d3..8bca1459c0 100644 --- a/basis/math/partial-dispatch/partial-dispatch-tests.factor +++ b/basis/math/partial-dispatch/partial-dispatch-tests.factor @@ -10,9 +10,9 @@ tools.test math kernel sequences ; [ f ] [ \ + object number math-both-known? ] unit-test [ f ] [ \ number= fixnum object math-both-known? ] unit-test [ t ] [ \ number= integer fixnum math-both-known? ] unit-test -[ f ] [ \ >fixnum \ shift derived-ops memq? ] unit-test -[ f ] [ \ >integer \ /i derived-ops memq? ] unit-test -[ t ] [ \ fixnum-shift \ shift derived-ops memq? ] unit-test +[ f ] [ \ >fixnum \ shift derived-ops member-eq? ] unit-test +[ f ] [ \ >integer \ /i derived-ops member-eq? ] unit-test +[ t ] [ \ fixnum-shift \ shift derived-ops member-eq? ] unit-test [ { integer fixnum } ] [ \ +-integer-fixnum integer-op-input-classes ] unit-test [ { fixnum fixnum } ] [ \ fixnum+ integer-op-input-classes ] unit-test @@ -30,4 +30,4 @@ tools.test math kernel sequences ; [ 3 ] [ 1 2 +-integer-integer ] unit-test [ 3 ] [ 1 >bignum 2 +-integer-integer ] unit-test [ 3 ] [ 1 2 >bignum +-integer-integer ] unit-test -[ 3 ] [ 1 >bignum 2 >bignum +-integer-integer ] unit-test \ No newline at end of file +[ 3 ] [ 1 >bignum 2 >bignum +-integer-integer ] unit-test diff --git a/basis/math/vectors/conversion/conversion.factor b/basis/math/vectors/conversion/conversion.factor index f70dfc9b27..a4f90ce938 100644 --- a/basis/math/vectors/conversion/conversion.factor +++ b/basis/math/vectors/conversion/conversion.factor @@ -11,9 +11,9 @@ ERROR: bad-vconvert-input value expected-type ; > "math.vectors.simd.instances." prepend ; : parse-base-type ( c-type -- c-type ) - dup { c:char c:uchar c:short c:ushort c:int c:uint c:longlong c:ulonglong c:float c:double } memq? + dup { c:char c:uchar c:short c:ushort c:int c:uint c:longlong c:ulonglong c:float c:double } member-eq? [ bad-base-type ] unless ; : forget-instances ( -- ) diff --git a/basis/models/arrow/arrow-tests.factor b/basis/models/arrow/arrow-tests.factor index d7900f1dbd..6bd6395ac0 100644 --- a/basis/models/arrow/arrow-tests.factor +++ b/basis/models/arrow/arrow-tests.factor @@ -6,12 +6,12 @@ IN: models.arrow.tests "x" get [ 2 * ] dup "z" set [ 1 + ] "y" set [ ] [ "y" get activate-model ] unit-test -[ t ] [ "z" get "x" get connections>> memq? ] unit-test +[ t ] [ "z" get "x" get connections>> member-eq? ] unit-test [ 7 ] [ "y" get value>> ] unit-test [ ] [ 4 "x" get set-model ] unit-test [ 9 ] [ "y" get value>> ] unit-test [ ] [ "y" get deactivate-model ] unit-test -[ f ] [ "z" get "x" get connections>> memq? ] unit-test +[ f ] [ "z" get "x" get connections>> member-eq? ] unit-test 3 "x" set "x" get [ sq ] "y" set diff --git a/basis/prettyprint/backend/backend.factor b/basis/prettyprint/backend/backend.factor index f919573ea9..0ba1d38ae6 100644 --- a/basis/prettyprint/backend/backend.factor +++ b/basis/prettyprint/backend/backend.factor @@ -119,7 +119,7 @@ M: pathname pprint* "~" over class name>> "~" 3append swap present-text ] [ - over recursion-check get memq? [ + over recursion-check get member-eq? [ drop "~circularity~" swap present-text ] [ over recursion-check get push diff --git a/basis/tools/crossref/crossref.factor b/basis/tools/crossref/crossref.factor index beaf1c0673..90fe7e8e9d 100644 --- a/basis/tools/crossref/crossref.factor +++ b/basis/tools/crossref/crossref.factor @@ -24,13 +24,13 @@ M: word quot-uses over crossref? [ conjoin ] [ 2drop ] if ; [ quot-uses ] curry each ; : seq-uses ( seq assoc -- ) - over visited get memq? [ 2drop ] [ + over visited get member-eq? [ 2drop ] [ over visited get push (seq-uses) ] if ; : assoc-uses ( assoc' assoc -- ) - over visited get memq? [ 2drop ] [ + over visited get member-eq? [ 2drop ] [ over visited get push [ >alist ] dip (seq-uses) ] if ; @@ -137,4 +137,4 @@ M: invalidate-crossref definitions-changed 2drop crossref global delete-at ; [ invalidate-crossref add-definition-observer ] "tools.crossref" add-init-hook -PRIVATE> \ No newline at end of file +PRIVATE> diff --git a/basis/tools/deploy/shaker/shaker.factor b/basis/tools/deploy/shaker/shaker.factor index 48e33be43e..e42f478de6 100755 --- a/basis/tools/deploy/shaker/shaker.factor +++ b/basis/tools/deploy/shaker/shaker.factor @@ -477,7 +477,7 @@ SYMBOL: deploy-vocab next-method ; : calls-next-method? ( method -- ? ) - def>> flatten \ (call-next-method) swap memq? ; + def>> flatten \ (call-next-method) swap member-eq? ; : compute-next-methods ( -- ) [ standard-generic? ] instances [ diff --git a/basis/ui/backend/cocoa/cocoa.factor b/basis/ui/backend/cocoa/cocoa.factor index a262b549f2..9759dbfcc5 100755 --- a/basis/ui/backend/cocoa/cocoa.factor +++ b/basis/ui/backend/cocoa/cocoa.factor @@ -130,7 +130,7 @@ CONSTANT: window-control>styleMask M:: cocoa-ui-backend (open-window) ( world -- ) world [ [ dim>> ] dip ] with-world-pixel-format :> view - world window-controls>> textured-background swap memq? + world window-controls>> textured-background swap member-eq? [ view make-context-transparent ] when view world [ world>NSRect ] [ world>styleMask ] bi :> window view -> release diff --git a/basis/ui/backend/windows/windows.factor b/basis/ui/backend/windows/windows.factor index b099917e7c..a6d73ca80f 100755 --- a/basis/ui/backend/windows/windows.factor +++ b/basis/ui/backend/windows/windows.factor @@ -537,7 +537,7 @@ SYMBOL: nc-buttons COLOR_BTNFACE GetSysColor RGB>color ; : ?make-glass ( world hwnd -- ) - over window-controls>> textured-background swap memq? [ + over window-controls>> textured-background swap member-eq? [ composition-enabled? [ full-window-margins DwmExtendFrameIntoClientArea drop T{ rgba f 0.0 0.0 0.0 0.0 } diff --git a/basis/ui/gadgets/labels/labels.factor b/basis/ui/gadgets/labels/labels.factor index 83d15911e7..c655e289b0 100644 --- a/basis/ui/gadgets/labels/labels.factor +++ b/basis/ui/gadgets/labels/labels.factor @@ -22,7 +22,7 @@ PREDICATE: string-array < array [ string? ] all? ; PRIVATE> : ?string-lines ( string -- string/array ) - CHAR: \n over memq? [ string-lines ] when ; + CHAR: \n over member-eq? [ string-lines ] when ; ERROR: not-a-string object ; diff --git a/basis/ui/gadgets/worlds/worlds.factor b/basis/ui/gadgets/worlds/worlds.factor index 61f84870e5..8f38cee988 100755 --- a/basis/ui/gadgets/worlds/worlds.factor +++ b/basis/ui/gadgets/worlds/worlds.factor @@ -120,7 +120,7 @@ M: world request-focus-on ( child gadget -- ) V{ } clone >>window-resources ; : initial-background-color ( attributes -- color ) - window-controls>> textured-background swap memq? + window-controls>> textured-background swap member-eq? [ T{ rgba f 0.0 0.0 0.0 0.0 } ] [ T{ rgba f 1.0 1.0 1.0 1.0 } ] if ; @@ -151,7 +151,7 @@ M: world focusable-child* children>> [ t ] [ first ] if-empty ; M: world children-on nip children>> ; M: world remove-gadget - 2dup layers>> memq? + 2dup layers>> member-eq? [ layers>> remove-eq! drop ] [ call-next-method ] if ; SYMBOL: flush-layout-cache-hook diff --git a/basis/ui/tools/listener/completion/completion.factor b/basis/ui/tools/listener/completion/completion.factor index 5dd0581cf2..b069de1887 100644 --- a/basis/ui/tools/listener/completion/completion.factor +++ b/basis/ui/tools/listener/completion/completion.factor @@ -64,7 +64,7 @@ M: definition-completion row-columns M: word-completion row-color [ vocabulary>> ] [ manifest>> ] bi* { { [ dup not ] [ COLOR: black ] } - { [ 2dup search-vocabs>> memq? ] [ COLOR: black ] } + { [ 2dup search-vocabs>> member-eq? ] [ COLOR: black ] } { [ over ".private" tail? ] [ COLOR: dark-red ] } [ COLOR: dark-gray ] } cond 2nip ; @@ -181,4 +181,4 @@ completion-popup H{ M: completion-popup handle-gesture ( gesture completion -- ? ) 2dup completion-gesture dup [ [ nip hide-glass ] [ invoke-command ] 2bi* f - ] [ 2drop call-next-method ] if ; \ No newline at end of file + ] [ 2drop call-next-method ] if ; diff --git a/basis/ui/tools/profiler/profiler.factor b/basis/ui/tools/profiler/profiler.factor index bb23bc0692..3de7c9cc70 100644 --- a/basis/ui/tools/profiler/profiler.factor +++ b/basis/ui/tools/profiler/profiler.factor @@ -107,7 +107,7 @@ M: method-renderer column-titles drop { "" "Method" "Count" } ; : method-matches? ( method generic class -- ? ) [ first ] 2dip { - [ drop dup [ subwords memq? ] [ 2drop t ] if ] + [ drop dup [ subwords member-eq? ] [ 2drop t ] if ] [ nip dup [ swap "method-class" word-prop = ] [ 2drop t ] if ] } 3&& ; diff --git a/core/alien/strings/strings.factor b/core/alien/strings/strings.factor index e96b13478e..83758cd866 100644 --- a/core/alien/strings/strings.factor +++ b/core/alien/strings/strings.factor @@ -21,7 +21,7 @@ M: f alien>string ERROR: invalid-c-string string ; : check-string ( string -- ) - 0 over memq? [ invalid-c-string ] [ drop ] if ; + 0 over member-eq? [ invalid-c-string ] [ drop ] if ; GENERIC# string>alien 1 ( string encoding -- byte-array ) diff --git a/core/classes/mixin/mixin.factor b/core/classes/mixin/mixin.factor index 6cf95716be..6514f36074 100644 --- a/core/classes/mixin/mixin.factor +++ b/core/classes/mixin/mixin.factor @@ -34,7 +34,7 @@ TUPLE: check-mixin-class class ; ] unless ; : if-mixin-member? ( class mixin true false -- ) - [ check-mixin-class 2dup members memq? ] 2dip if ; inline + [ check-mixin-class 2dup members member-eq? ] 2dip if ; inline : change-mixin-class ( class mixin quot -- ) [ [ members swap bootstrap-word ] dip call ] [ drop ] 2bi diff --git a/core/classes/tuple/tuple-tests.factor b/core/classes/tuple/tuple-tests.factor index 5ab83aa015..3555147542 100644 --- a/core/classes/tuple/tuple-tests.factor +++ b/core/classes/tuple/tuple-tests.factor @@ -110,7 +110,7 @@ TUPLE: yo-momma ; [ t ] [ \ yo-momma class? ] unit-test [ ] [ \ yo-momma forget ] unit-test [ ] [ \ forget ] unit-test - [ f ] [ \ yo-momma update-map get values memq? ] unit-test + [ f ] [ \ yo-momma update-map get values member-eq? ] unit-test ] with-compilation-unit TUPLE: loc-recording ; diff --git a/core/io/streams/c/c.factor b/core/io/streams/c/c.factor index 6ff1a4b35c..1da30fe922 100755 --- a/core/io/streams/c/c.factor +++ b/core/io/streams/c/c.factor @@ -49,7 +49,7 @@ M: c-reader stream-read1 dup check-disposed handle>> fgetc ; : read-until-loop ( stream delim -- ch ) over stream-read1 dup [ - dup pick memq? [ 2nip ] [ , read-until-loop ] if + dup pick member-eq? [ 2nip ] [ , read-until-loop ] if ] [ 2nip ] if ; diff --git a/core/io/streams/sequence/sequence.factor b/core/io/streams/sequence/sequence.factor index 036bab2213..5ecbc321ce 100644 --- a/core/io/streams/sequence/sequence.factor +++ b/core/io/streams/sequence/sequence.factor @@ -32,7 +32,7 @@ SLOT: i : find-sep ( seps stream -- sep/f n ) swap [ >sequence-stream< swap tail-slice ] dip - [ memq? ] curry find swap ; inline + [ member-eq? ] curry find swap ; inline : sequence-read-until ( separators stream -- seq sep/f ) [ find-sep ] keep diff --git a/core/parser/parser-tests.factor b/core/parser/parser-tests.factor index 791fe1fa36..f30eb68684 100644 --- a/core/parser/parser-tests.factor +++ b/core/parser/parser-tests.factor @@ -141,15 +141,15 @@ IN: parser.tests ] unit-test [ t ] [ - array "smudge-me" "parser.tests" lookup order memq? + array "smudge-me" "parser.tests" lookup order member-eq? ] unit-test [ t ] [ - integer "smudge-me" "parser.tests" lookup order memq? + integer "smudge-me" "parser.tests" lookup order member-eq? ] unit-test [ f ] [ - string "smudge-me" "parser.tests" lookup order memq? + string "smudge-me" "parser.tests" lookup order member-eq? ] unit-test [ ] [ diff --git a/core/sequences/sequences-docs.factor b/core/sequences/sequences-docs.factor index 99ad019063..cb3968ab0f 100755 --- a/core/sequences/sequences-docs.factor +++ b/core/sequences/sequences-docs.factor @@ -461,7 +461,7 @@ HELP: member? { $description "Tests if the sequence contains an element equal to the object." } { $notes "This word uses equality comparison (" { $link = } ")." } ; -HELP: memq? +HELP: member-eq? { $values { "elt" object } { "seq" sequence } { "?" "a boolean" } } { $description "Tests if the sequence contains the object." } { $notes "This word uses identity comparison (" { $link eq? } ")." } ; @@ -1566,7 +1566,7 @@ ARTICLE: "sequences-tests" "Testing sequences" "Testing indices:" { $subsections bounds-check? } "Testing if a sequence contains an object:" -{ $subsections member? memq? } +{ $subsections member? member-eq? } "Testing if a sequence contains a subsequence:" { $subsections head? tail? subseq? } ; diff --git a/core/sequences/sequences-tests.factor b/core/sequences/sequences-tests.factor index d25c62c561..58e61cc94c 100644 --- a/core/sequences/sequences-tests.factor +++ b/core/sequences/sequences-tests.factor @@ -42,7 +42,7 @@ IN: sequences.tests [ t ] [ 2 [ 1 2 ] member? ] unit-test [ t ] -[ [ "hello" "world" ] [ second ] keep memq? ] unit-test +[ [ "hello" "world" ] [ second ] keep member-eq? ] unit-test [ 4 ] [ CHAR: x "tuvwxyz" >vector index ] unit-test diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index ee78daed17..8e15f73ed7 100755 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -567,7 +567,7 @@ PRIVATE> : member? ( elt seq -- ? ) [ = ] with any? ; -: memq? ( elt seq -- ? ) +: member-eq? ( elt seq -- ? ) [ eq? ] with any? ; : remove ( elt seq -- newseq ) diff --git a/core/sets/sets-docs.factor b/core/sets/sets-docs.factor index 26bfc140fb..999e963f36 100755 --- a/core/sets/sets-docs.factor +++ b/core/sets/sets-docs.factor @@ -32,7 +32,7 @@ $nl conjoin conjoin-at } -{ $see-also member? memq? any? all? "assocs-sets" } ; +{ $see-also member? member-eq? any? all? "assocs-sets" } ; ABOUT: "sets" diff --git a/extra/benchmark/reverse-complement/reverse-complement.factor b/extra/benchmark/reverse-complement/reverse-complement.factor index 39b7433a75..95035e6cd8 100755 --- a/extra/benchmark/reverse-complement/reverse-complement.factor +++ b/extra/benchmark/reverse-complement/reverse-complement.factor @@ -15,7 +15,7 @@ TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ; translate-seq 60 [ print ] each ; : do-line ( seq line -- seq ) - dup first ">;" memq? + dup first ">;" member-eq? [ over show-seq print dup delete-all ] [ over push ] if ; HINTS: do-line vector string ; diff --git a/extra/mongodb/tuple/collection/collection.factor b/extra/mongodb/tuple/collection/collection.factor index 6c2b89a571..85036c8d86 100644 --- a/extra/mongodb/tuple/collection/collection.factor +++ b/extra/mongodb/tuple/collection/collection.factor @@ -152,7 +152,7 @@ M: mdb-collection mdb-index-map : slot-option? ( tuple slot option -- ? ) [ swap mdb-slot-map at ] dip - '[ _ swap memq? ] [ f ] if* ; + '[ _ swap member-eq? ] [ f ] if* ; PRIVATE> diff --git a/misc/vim/syntax/factor.vim b/misc/vim/syntax/factor.vim index ed8fd0d9e6..13b999250d 100644 --- a/misc/vim/syntax/factor.vim +++ b/misc/vim/syntax/factor.vim @@ -53,7 +53,7 @@ syn keyword factorKeyword or tuck 2bi 2tri while wrapper nip 4dip wrapper? bi* c syn keyword factorKeyword ?at assoc? assoc-clone-like assoc= delete-at* assoc-partition extract-keys new-assoc value? assoc-size map>assoc push-at assoc-like key? assoc-intersect assoc-refine update assoc-union assoc-combine at* assoc-empty? at+ set-at assoc-all? assoc-subset? assoc-hashcode change-at assoc-each assoc-diff zip values value-at rename-at inc-at enum? at cache assoc>map assoc assoc-map enum value-at* assoc-map-as >alist assoc-filter-as clear-assoc assoc-stack maybe-set-at substitute assoc-filter 2cache delete-at assoc-find keys assoc-any? unzip syn keyword factorKeyword case execute-effect no-cond no-case? 3cleave>quot 2cleave cond>quot wrong-values? no-cond? cleave>quot no-case case>quot 3cleave wrong-values to-fixed-point alist>quot case-find cond cleave call-effect 2cleave>quot recursive-hashcode linear-case-quot spread spread>quot syn keyword factorKeyword byte-array>bignum sgn >bignum next-float number= each-integer next-power-of-2 ?1+ fp-special? imaginary-part mod recip float>bits rational >float number? 2^ bignum? integer fixnum? neg fixnum sq bignum fp-snan? fp-infinity? denominator (all-integers?) times find-last-integer (each-integer) bit? * + fp-bitwise= - fp-qnan? / power-of-2? >= bitand find-integer complex < log2 > integer? real number bits>double double>bits bitor 2/ zero? rem fp-nan-payload all-integers? (find-integer) real-part prev-float align bits>float float? shift float fp-nan? abs bitxor ratio? even? <= /mod odd? >integer ratio rational? bitnot real? >fixnum complex? /i numerator /f -syn keyword factorKeyword append assert-sequence= find-last-from trim-head-slice clone-like 3sequence assert-sequence? map-as filter! last-index-from reversed index-from cut* pad-tail (indices) concat-as remove-eq but-last snip trim-tail nths nth 2pusher sequence slice? partition remove-nth tail-slice empty? tail* if-empty find-from virtual-sequence? member? set-length remove-eq! drop-prefix unclip iota unclip-last-slice bounds-error? sequence-hashcode-step map start midpoint@ rest-slice prepend fourth sift delete sigma new-sequence follow like remove-nth! first4 1sequence reverse slice unless-empty padding virtual@ repetition? set-last index 4sequence max-length set-second immutable-sequence first2 first3 replicate-as reduce-index unclip-slice supremum insert-nth trim-tail-slice tail 3append short count suffix concat flip filter sum immutable? 2sequence map-integers delete-all start* indices snip-slice check-slice sequence? head map-find reduce append-as reverse! sequence= halves collapse-slice interleave 2map binary-reduce virtual-seq slice-error? product bounds-check? bounds-check harvest immutable find produce remove pad-head last replicate set-fourth shorten reversed? map-find-last 3map-as 2unclip-slice shorter? 3map find-last head-slice pop* 2map-as tail-slice* but-last-slice 2map-reduce iota? accumulate each pusher cut-slice new-resizable each-index head-slice* 2reverse-each sequence-hashcode memq? pop set-nth ?nth second map! join when-empty accumulator immutable-sequence? all? 3append-as virtual-sequence subseq? push-either new-like length last-index push-if 2all? lengthen assert-sequence copy map-reduce move third first 3each tail? set-first prefix bounds-error any? trim-slice exchange surround 2reduce cut change-nth min-length set-third produce-as push-all head? delete-slice rest sum-lengths 2each head* infimum glue slice-error subseq replace-slice push repetition map-index trim-head unclip-last mismatch trim +syn keyword factorKeyword append assert-sequence= find-last-from trim-head-slice clone-like 3sequence assert-sequence? map-as filter! last-index-from reversed index-from cut* pad-tail (indices) concat-as remove-eq but-last snip trim-tail nths nth 2pusher sequence slice? partition remove-nth tail-slice empty? tail* if-empty find-from virtual-sequence? member? set-length remove-eq! drop-prefix unclip iota unclip-last-slice bounds-error? sequence-hashcode-step map start midpoint@ rest-slice prepend fourth sift delete sigma new-sequence follow like remove-nth! first4 1sequence reverse slice unless-empty padding virtual@ repetition? set-last index 4sequence max-length set-second immutable-sequence first2 first3 replicate-as reduce-index unclip-slice supremum insert-nth trim-tail-slice tail 3append short count suffix concat flip filter sum immutable? 2sequence map-integers delete-all start* indices snip-slice check-slice sequence? head map-find reduce append-as reverse! sequence= halves collapse-slice interleave 2map binary-reduce virtual-seq slice-error? product bounds-check? bounds-check harvest immutable find produce remove pad-head last replicate set-fourth shorten reversed? map-find-last 3map-as 2unclip-slice shorter? 3map find-last head-slice pop* 2map-as tail-slice* but-last-slice 2map-reduce iota? accumulate each pusher cut-slice new-resizable each-index head-slice* 2reverse-each sequence-hashcode member-eq? pop set-nth ?nth second map! join when-empty accumulator immutable-sequence? all? 3append-as virtual-sequence subseq? push-either new-like length last-index push-if 2all? lengthen assert-sequence copy map-reduce move third first 3each tail? set-first prefix bounds-error any? trim-slice exchange surround 2reduce cut change-nth min-length set-third produce-as push-all head? delete-slice rest sum-lengths 2each head* infimum glue slice-error subseq replace-slice push repetition map-index trim-head unclip-last mismatch trim syn keyword factorKeyword global +@ change set-namestack change-global init-namespaces on off set-global namespace set with-scope bind with-variable inc dec counter initialize namestack get get-global make-assoc syn keyword factorKeyword 2array 3array pair >array 1array 4array pair? array resize-array array? syn keyword factorKeyword +character+ bad-seek-type? readln stream-seek read print with-output-stream contents write1 stream-write1 stream-copy stream-element-type with-input-stream stream-print stream-read stream-contents bl seek-output bad-seek-type nl stream-nl write flush stream-lines +byte+ stream-flush read1 seek-absolute? stream-read1 lines stream-readln stream-read-until each-line seek-end with-output-stream* seek-absolute with-streams seek-input seek-relative? input-stream stream-write read-partial seek-end? seek-relative error-stream read-until with-input-stream* with-streams* each-block output-stream stream-read-partial