memq? -> member-eq?, sorted-memq? -> sorted-member-eq?

db4
Doug Coleman 2009-10-28 15:02:00 -05:00
parent 1476cdb974
commit bd13e018dd
56 changed files with 88 additions and 88 deletions

View File

@ -501,9 +501,9 @@ M: double-2-rep rep-component-type drop double ;
: c-type-interval ( c-type -- from to ) : c-type-interval ( c-type -- from to )
{ {
{ [ dup { float double } memq? ] [ drop -1/0. 1/0. ] } { [ dup { float double } member-eq? ] [ drop -1/0. 1/0. ] }
{ [ dup { char short int long longlong } memq? ] [ signed-interval ] } { [ dup { char short int long longlong } member-eq? ] [ signed-interval ] }
{ [ dup { uchar ushort uint ulong ulonglong } memq? ] [ unsigned-interval ] } { [ dup { uchar ushort uint ulong ulonglong } member-eq? ] [ unsigned-interval ] }
} cond ; foldable } cond ; foldable
: c-type-clamp ( value c-type -- value' ) c-type-interval clamp ; inline : c-type-clamp ( value c-type -- value' ) c-type-interval clamp ; inline

View File

@ -25,11 +25,11 @@ HELP: sorted-member?
{ member? sorted-member? } related-words { member? sorted-member? } related-words
HELP: sorted-memq? HELP: sorted-member-eq?
{ $values { "obj" object } { "seq" "a sorted sequence" } { "?" "a boolean" } } { $values { "obj" object } { "seq" "a sorted sequence" } { "?" "a boolean" } }
{ $description "Tests if the sorted sequence contains " { $snippet "elt" } ". Equality is tested with " { $link eq? } "." } ; { $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" ARTICLE: "binary-search" "Binary search"
"The " { $emphasis "binary search" } " algorithm allows elements to be located in sorted sequence in " { $snippet "O(log n)" } " time." "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 { $subsections
sorted-index sorted-index
sorted-member? sorted-member?
sorted-memq? sorted-member-eq?
} }
{ $see-also "order-specifiers" "sequences-sorting" } ; { $see-also "order-specifiers" "sequences-sorting" } ;

View File

@ -49,5 +49,5 @@ HINTS: natural-search array ;
: sorted-member? ( obj seq -- ? ) : sorted-member? ( obj seq -- ? )
dupd natural-search nip = ; dupd natural-search nip = ;
: sorted-memq? ( obj seq -- ? ) : sorted-member-eq? ( obj seq -- ? )
dupd natural-search nip eq? ; dupd natural-search nip eq? ;

View File

@ -94,7 +94,7 @@ gc
"." write flush "." 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 set-at reverse push-all class number>string string>number
like clone-like like clone-like
} compile-unoptimized } compile-unoptimized
@ -118,4 +118,4 @@ gc
" done" print flush " done" print flush
] unless ] unless

View File

@ -49,7 +49,7 @@ ERROR: bad-kill-insn bb ;
ERROR: bad-successors ; ERROR: bad-successors ;
: check-successors ( bb -- ) : check-successors ( bb -- )
dup successors>> [ predecessors>> memq? ] with all? dup successors>> [ predecessors>> member-eq? ] with all?
[ bad-successors ] unless ; [ bad-successors ] unless ;
: check-basic-block ( bb -- ) : check-basic-block ( bb -- )

View File

@ -90,5 +90,5 @@ SYMBOLS:
{ cc/> { +lt+ +eq+ +unordered+ } } { cc/> { +lt+ +eq+ +unordered+ } }
{ cc/<> { +eq+ +unordered+ } } { cc/<> { +eq+ +unordered+ } }
{ cc/<>= { +unordered+ } } { cc/<>= { +unordered+ } }
} at memq? ; } at member-eq? ;

View File

@ -26,7 +26,7 @@ IN: compiler.cfg.hats
: hat-effect ( insn -- effect ) : hat-effect ( insn -- effect )
"insn-slots" word-prop "insn-slots" word-prop
[ type>> { def temp } memq? not ] filter [ name>> ] map [ type>> { def temp } member-eq? not ] filter [ name>> ] map
{ "vreg" } <effect> ; { "vreg" } <effect> ;
: define-hat ( insn -- ) : define-hat ( insn -- )

View File

@ -833,7 +833,7 @@ SYMBOL: vreg-insn
[ [
vreg-insn vreg-insn
insn-classes get [ 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 ] filter
define-union-class define-union-class
] with-compilation-unit ] with-compilation-unit

View File

@ -12,7 +12,7 @@ IN: compiler.cfg.predecessors
: update-phi ( bb ##phi -- ) : update-phi ( bb ##phi -- )
[ [
swap predecessors>> swap predecessors>>
'[ drop _ memq? ] assoc-filter '[ drop _ member-eq? ] assoc-filter
] change-inputs drop ; ] change-inputs drop ;
: update-phis ( bb -- ) : update-phis ( bb -- )
@ -30,4 +30,4 @@ PRIVATE>
: needs-predecessors ( cfg -- cfg' ) : needs-predecessors ( cfg -- cfg' )
dup predecessors-valid?>> dup predecessors-valid?>>
[ compute-predecessors t >>predecessors-valid? ] unless ; [ compute-predecessors t >>predecessors-valid? ] unless ;

View File

@ -26,7 +26,7 @@ GENERIC: uses-vreg-reps ( insn -- reps )
bi define ; bi define ;
: reps-getter-quot ( reps -- quot ) : 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>> ] map [ drop ] swap suffix
] [ ] [
[ rep>> rep-getter-quot ] map dup length { [ rep>> rep-getter-quot ] map dup length {

View File

@ -13,7 +13,7 @@ IN: compiler.cfg.useless-conditionals
##compare-imm-branch ##compare-imm-branch
##compare-float-ordered-branch ##compare-float-ordered-branch
##compare-float-unordered-branch ##compare-float-unordered-branch
} memq? } member-eq?
] ]
[ successors>> first2 [ skip-empty-blocks ] bi@ eq? ] [ successors>> first2 [ skip-empty-blocks ] bi@ eq? ]
} 1&& ; } 1&& ;

View File

@ -40,7 +40,7 @@ SYMBOL: visited
:: insert-basic-block ( froms to bb -- ) :: insert-basic-block ( froms to bb -- )
bb froms V{ } like >>predecessors drop bb froms V{ } like >>predecessors drop
bb to 1vector >>successors 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 ; froms [ successors>> [ dup to eq? [ drop bb ] when ] map! drop ] each ;
: add-instructions ( bb quot -- ) : add-instructions ( bb quot -- )

View File

@ -42,7 +42,7 @@ M: ##load-constant >expr obj>> <constant> ;
<< <<
: input-values ( slot-specs -- slot-specs' ) : input-values ( slot-specs -- slot-specs' )
[ type>> { use literal constant } memq? ] filter ; [ type>> { use literal constant } member-eq? ] filter ;
: expr-class ( insn -- expr ) : expr-class ( insn -- expr )
name>> "##" ?head drop "-expr" append create-class-in ; name>> "##" ?head drop "-expr" append create-class-in ;

View File

@ -111,7 +111,7 @@ M: ##compare-imm rewrite-tagged-comparison
{ {
[ src1>> vreg>expr general-compare-expr? ] [ src1>> vreg>expr general-compare-expr? ]
[ src2>> \ f tag-number = ] [ src2>> \ f tag-number = ]
[ cc>> { cc= cc/= } memq? ] [ cc>> { cc= cc/= } member-eq? ]
} 1&& ; inline } 1&& ; inline
: rewrite-redundant-comparison ( insn -- insn' ) : rewrite-redundant-comparison ( insn -- insn' )
@ -174,7 +174,7 @@ M: ##compare-imm-branch rewrite
[ src1>> ] [ src2>> ] bi [ vreg>vn ] bi@ = ; inline [ src1>> ] [ src2>> ] bi [ vreg>vn ] bi@ = ; inline
: (rewrite-self-compare) ( insn -- ? ) : (rewrite-self-compare) ( insn -- ? )
cc>> { cc= cc<= cc>= } memq? ; cc>> { cc= cc<= cc>= } member-eq? ;
: rewrite-self-compare-branch ( insn -- insn' ) : rewrite-self-compare-branch ( insn -- insn' )
(rewrite-self-compare) fold-branch ; (rewrite-self-compare) fold-branch ;
@ -279,7 +279,7 @@ M: ##not rewrite
##sub-imm ##sub-imm
##mul ##mul
##mul-imm ##mul-imm
} memq? ; } member-eq? ;
: immediate? ( value op -- ? ) : immediate? ( value op -- ? )
arithmetic-op? [ immediate-arithmetic? ] [ immediate-bitwise? ] if ; arithmetic-op? [ immediate-arithmetic? ] [ immediate-bitwise? ] if ;

View File

@ -19,7 +19,7 @@ IN: compiler.tests.stack-trace
: bleh ( seq -- seq' ) [ 3 + ] map [ 0 > ] filter ; : 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 ] [ [ t ] [
[ { 1 "hi" } bleh ] ignore-errors \ + stack-trace-any? [ { 1 "hi" } bleh ] ignore-errors \ + stack-trace-any?

View File

@ -75,7 +75,7 @@ M: #push compute-modular-candidates*
0 cell-bits tag-bits get - 1 - [a,b] interval-subset? ; 0 cell-bits tag-bits get - 1 - [a,b] interval-subset? ;
: modular-word? ( #call -- ? ) : 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? ] [ node-input-infos second interval>> small-shift? ]
[ word>> "modular-arithmetic" word-prop ] [ word>> "modular-arithmetic" word-prop ]
if ; if ;
@ -178,10 +178,10 @@ MEMO: fixnum-coercion ( flags -- nodes )
] when ; ] when ;
: like->fixnum? ( #call -- ? ) : like->fixnum? ( #call -- ? )
word>> { >fixnum bignum>fixnum float>fixnum } memq? ; word>> { >fixnum bignum>fixnum float>fixnum } member-eq? ;
: like->integer? ( #call -- ? ) : like->integer? ( #call -- ? )
word>> { >integer >bignum fixnum>bignum } memq? ; word>> { >integer >bignum fixnum>bignum } member-eq? ;
M: #call optimize-modular-arithmetic* M: #call optimize-modular-arithmetic*
{ {

View File

@ -90,7 +90,7 @@ M: callable splicing-nodes splicing-body ;
! Method body inlining ! Method body inlining
SYMBOL: history SYMBOL: history
: already-inlined? ( obj -- ? ) history get memq? ; : already-inlined? ( obj -- ? ) history get member-eq? ;
: add-to-history ( obj -- ) history [ swap suffix ] change ; : add-to-history ( obj -- ) history [ swap suffix ] change ;
@ -104,7 +104,7 @@ SYMBOL: history
] if ; ] if ;
: always-inline-word? ( word -- ? ) : always-inline-word? ( word -- ? )
{ curry compose } memq? ; { curry compose } member-eq? ;
: never-inline-word? ( word -- ? ) : never-inline-word? ( word -- ? )
{ [ deferred? ] [ "default" word-prop ] [ \ call eq? ] } 1|| ; { [ deferred? ] [ "default" word-prop ] [ \ call eq? ] } 1|| ;

View File

@ -867,8 +867,8 @@ SYMBOL: not-an-assoc
[ t ] [ [ { 1 2 3 } member? ] { member? } inlined? ] unit-test [ t ] [ [ { 1 2 3 } member? ] { member? } inlined? ] unit-test
[ f ] [ [ { 1 2 3 } swap member? ] { member? } inlined? ] unit-test [ f ] [ [ { 1 2 3 } swap member? ] { member? } inlined? ] unit-test
[ t ] [ [ { 1 2 3 } memq? ] { memq? } inlined? ] unit-test [ t ] [ [ { 1 2 3 } member-eq? ] { member-eq? } inlined? ] unit-test
[ f ] [ [ { 1 2 3 } swap memq? ] { memq? } inlined? ] unit-test [ f ] [ [ { 1 2 3 } swap member-eq? ] { member-eq? } inlined? ] unit-test
[ t ] [ [ V{ } clone ] { clone (clone) } inlined? ] unit-test [ t ] [ [ V{ } clone ] { clone (clone) } inlined? ] unit-test
[ f ] [ [ { } clone ] { clone (clone) } inlined? ] unit-test [ f ] [ [ { } clone ] { clone (clone) } inlined? ] unit-test

View File

@ -11,7 +11,7 @@ IN: compiler.tree.propagation.slots
UNION: fixed-length-sequence array byte-array string ; UNION: fixed-length-sequence array byte-array string ;
: sequence-constructor? ( word -- ? ) : sequence-constructor? ( word -- ? )
{ <array> <byte-array> (byte-array) <string> } memq? ; { <array> <byte-array> (byte-array) <string> } member-eq? ;
: constructor-output-class ( word -- class ) : constructor-output-class ( word -- class )
{ {

View File

@ -213,12 +213,12 @@ ERROR: bad-partial-eval quot word ;
] [ drop f ] if ] [ drop f ] if
] 1 define-partial-eval ] 1 define-partial-eval
: memq-quot ( seq -- newquot ) : member-eq-quot ( seq -- newquot )
[ [ dupd eq? ] curry [ drop t ] ] { } map>assoc [ [ dupd eq? ] curry [ drop t ] ] { } map>assoc
[ drop f ] suffix [ cond ] curry ; [ drop f ] suffix [ cond ] curry ;
\ memq? [ \ member-eq? [
dup sequence? [ memq-quot ] [ drop f ] if dup sequence? [ member-eq-quot ] [ drop f ] if
] 1 define-partial-eval ] 1 define-partial-eval
! Membership testing ! Membership testing

View File

@ -65,7 +65,7 @@ M: indirect extended? base>> extended? ;
ERROR: bad-index indirect ; ERROR: bad-index indirect ;
: check-ESP ( indirect -- 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 ) : canonicalize ( indirect -- indirect )
#! Modify the indirect to work around certain addressing mode #! Modify the indirect to work around certain addressing mode
@ -103,7 +103,7 @@ TUPLE: byte value ;
C: <byte> byte C: <byte> byte
: extended-8-bit-register? ( register -- ? ) : extended-8-bit-register? ( register -- ? )
{ SPL BPL SIL DIL } memq? ; { SPL BPL SIL DIL } member-eq? ;
: n-bit-version-of ( register n -- register' ) : n-bit-version-of ( register n -- register' )
! Certain 8-bit registers don't exist in 32-bit mode... ! Certain 8-bit registers don't exist in 32-bit mode...
@ -115,4 +115,4 @@ C: <byte> byte
: 16-bit-version-of ( register -- register' ) 16 n-bit-version-of ; : 16-bit-version-of ( register -- register' ) 16 n-bit-version-of ;
: 32-bit-version-of ( register -- register' ) 32 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 ; : 64-bit-version-of ( register -- register' ) 64 n-bit-version-of ;
: native-version-of ( register -- register' ) cell-bits n-bit-version-of ; : native-version-of ( register -- register' ) cell-bits n-bit-version-of ;

View File

@ -254,7 +254,7 @@ CONSTANT: have-byte-regs { EAX ECX EDX EBX }
M: x86.32 has-small-reg? M: x86.32 has-small-reg?
{ {
{ 8 [ have-byte-regs memq? ] } { 8 [ have-byte-regs member-eq? ] }
{ 16 [ drop t ] } { 16 [ drop t ] }
{ 32 [ drop t ] } { 32 [ drop t ] }
} case ; } case ;
@ -264,7 +264,7 @@ M: x86.64 has-small-reg? 2drop t ;
: small-reg-that-isn't ( exclude -- reg' ) : small-reg-that-isn't ( exclude -- reg' )
[ have-byte-regs ] dip [ have-byte-regs ] dip
[ native-version-of ] map [ native-version-of ] map
'[ _ memq? not ] find nip ; '[ _ member-eq? not ] find nip ;
: with-save/restore ( reg quot -- ) : with-save/restore ( reg quot -- )
[ drop PUSH ] [ call ] [ drop POP ] 2tri ; inline [ 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-double [ [+] ] dip MOVSD ;
M: x86 %set-alien-vector [ [+] ] 2dip %copy ; 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 -- ) :: emit-shift ( dst src quot -- )
src shift-count? [ src shift-count? [
@ -893,7 +893,7 @@ M: x86 %compare-vector ( dst src1 src2 rep cc -- )
M: x86 %compare-vector-reps 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 ] [ drop %compare-vector-ord-reps ]
} cond ; } cond ;

View File

@ -28,7 +28,7 @@ M: >r/r>-in-fry-error summary
dup { load-local load-locals get-local drop-locals } intersect dup { load-local load-locals get-local drop-locals } intersect
[ >r/r>-in-fry-error ] unless-empty ; [ >r/r>-in-fry-error ] unless-empty ;
PREDICATE: fry-specifier < word { _ @ } memq? ; PREDICATE: fry-specifier < word { _ @ } member-eq? ;
GENERIC: count-inputs ( quot -- n ) GENERIC: count-inputs ( quot -- n )

View File

@ -119,7 +119,7 @@ SYNTAX: HINTS:
\ split, { string string } "specializer" set-word-prop \ 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 \ member? { array } "specializer" set-word-prop

View File

@ -97,7 +97,7 @@ SYMBOL: visited
[ [
dup flattenable? [ dup flattenable? [
def>> def>>
[ visited get memq? [ no-recursive-inverse ] when ] [ visited get member-eq? [ no-recursive-inverse ] when ]
[ flatten ] [ flatten ]
bi bi
] [ 1quotation ] if ] [ 1quotation ] if
@ -149,7 +149,7 @@ MACRO: undo ( quot -- ) [undo] ;
\ tri* 3 [ [ [undo] ] tri@ '[ _ _ _ tri* ] ] define-pop-inverse \ tri* 3 [ [ [undo] ] tri@ '[ _ _ _ tri* ] ] define-pop-inverse
\ not define-involution \ 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 \ tuple>array \ >tuple define-dual
\ reverse define-involution \ reverse define-involution

View File

@ -73,7 +73,7 @@ HINTS: >buffer byte-array buffer ;
bi ; inline bi ; inline
: search-buffer-until ( pos fill ptr separators -- n ) : 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 ) : finish-buffer-until ( buffer n -- byte-array separator )
[ [

View File

@ -123,7 +123,7 @@ M: limited-stream stream-read-partial
<PRIVATE <PRIVATE
: (read-until) ( stream seps buf -- stream seps buf sep/f ) : (read-until) ( stream seps buf -- stream seps buf sep/f )
3dup [ [ stream-read1 dup ] dip memq? ] dip 3dup [ [ stream-read1 dup ] dip member-eq? ] dip
swap [ drop ] [ push (read-until) ] if ; swap [ drop ] [ push (read-until) ] if ;
:: limited-stream-seek ( n seek-type stream -- ) :: limited-stream-seek ( n seek-type stream -- )

View File

@ -110,7 +110,7 @@ M: wrapper rewrite-sugar*
rewrite-wrapper ; rewrite-wrapper ;
M: word rewrite-sugar* M: word rewrite-sugar*
dup { load-locals get-local drop-locals } memq? dup { load-locals get-local drop-locals } member-eq?
[ >r/r>-in-lambda-error ] [ call-next-method ] if ; [ >r/r>-in-lambda-error ] [ call-next-method ] if ;
M: object rewrite-sugar* , ; M: object rewrite-sugar* , ;

View File

@ -12,7 +12,7 @@ SYMBOL: word-histogram
SYMBOL: message-histogram SYMBOL: message-histogram
: analyze-entry ( entry -- ) : 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-histogram get inc-at
dup word-name>> word-names get member? [ dup word-name>> word-names get member? [
dup [ level>> ] [ word-name>> ] [ message>> ] tri 3array dup [ level>> ] [ word-name>> ] [ message>> ] tri 3array

View File

@ -192,7 +192,7 @@ MEMO: array-capacity-interval ( -- interval )
: interval-sq ( i1 -- i2 ) dup interval* ; : interval-sq ( i1 -- i2 ) dup interval* ;
: special-interval? ( interval -- ? ) : special-interval? ( interval -- ? )
{ empty-interval full-interval } memq? ; { empty-interval full-interval } member-eq? ;
: interval-singleton? ( int -- ? ) : interval-singleton? ( int -- ? )
dup special-interval? [ dup special-interval? [

View File

@ -10,9 +10,9 @@ tools.test math kernel sequences ;
[ f ] [ \ + object number math-both-known? ] unit-test [ f ] [ \ + object number math-both-known? ] unit-test
[ f ] [ \ number= fixnum object math-both-known? ] unit-test [ f ] [ \ number= fixnum object math-both-known? ] unit-test
[ t ] [ \ number= integer fixnum math-both-known? ] unit-test [ t ] [ \ number= integer fixnum math-both-known? ] unit-test
[ f ] [ \ >fixnum \ shift derived-ops memq? ] unit-test [ f ] [ \ >fixnum \ shift derived-ops member-eq? ] unit-test
[ f ] [ \ >integer \ /i derived-ops memq? ] unit-test [ f ] [ \ >integer \ /i derived-ops member-eq? ] unit-test
[ t ] [ \ fixnum-shift \ shift derived-ops memq? ] unit-test [ t ] [ \ fixnum-shift \ shift derived-ops member-eq? ] unit-test
[ { integer fixnum } ] [ \ +-integer-fixnum integer-op-input-classes ] unit-test [ { integer fixnum } ] [ \ +-integer-fixnum integer-op-input-classes ] unit-test
[ { fixnum fixnum } ] [ \ 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 2 +-integer-integer ] unit-test
[ 3 ] [ 1 >bignum 2 +-integer-integer ] unit-test [ 3 ] [ 1 >bignum 2 +-integer-integer ] unit-test
[ 3 ] [ 1 2 >bignum +-integer-integer ] unit-test [ 3 ] [ 1 2 >bignum +-integer-integer ] unit-test
[ 3 ] [ 1 >bignum 2 >bignum +-integer-integer ] unit-test [ 3 ] [ 1 >bignum 2 >bignum +-integer-integer ] unit-test

View File

@ -11,9 +11,9 @@ ERROR: bad-vconvert-input value expected-type ;
<PRIVATE <PRIVATE
: float-type? ( c-type -- ? ) : float-type? ( c-type -- ? )
{ float double } memq? ; { float double } member-eq? ;
: unsigned-type? ( c-type -- ? ) : unsigned-type? ( c-type -- ? )
{ uchar ushort uint ulonglong } memq? ; { uchar ushort uint ulonglong } member-eq? ;
: check-vconvert-type ( value expected-type -- value ) : check-vconvert-type ( value expected-type -- value )
2dup instance? [ drop ] [ bad-vconvert-input ] if ; inline 2dup instance? [ drop ] [ bad-vconvert-input ] if ; inline

View File

@ -15,7 +15,7 @@ ERROR: bad-base-type type ;
name>> "math.vectors.simd.instances." prepend ; name>> "math.vectors.simd.instances." prepend ;
: parse-base-type ( c-type -- c-type ) : 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 ; [ bad-base-type ] unless ;
: forget-instances ( -- ) : forget-instances ( -- )

View File

@ -6,12 +6,12 @@ IN: models.arrow.tests
"x" get [ 2 * ] <arrow> dup "z" set "x" get [ 2 * ] <arrow> dup "z" set
[ 1 + ] <arrow> "y" set [ 1 + ] <arrow> "y" set
[ ] [ "y" get activate-model ] unit-test [ ] [ "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 [ 7 ] [ "y" get value>> ] unit-test
[ ] [ 4 "x" get set-model ] unit-test [ ] [ 4 "x" get set-model ] unit-test
[ 9 ] [ "y" get value>> ] unit-test [ 9 ] [ "y" get value>> ] unit-test
[ ] [ "y" get deactivate-model ] 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 <model> "x" set 3 <model> "x" set
"x" get [ sq ] <arrow> "y" set "x" get [ sq ] <arrow> "y" set

View File

@ -119,7 +119,7 @@ M: pathname pprint*
"~" over class name>> "~" 3append "~" over class name>> "~" 3append
swap present-text swap present-text
] [ ] [
over recursion-check get memq? [ over recursion-check get member-eq? [
drop "~circularity~" swap present-text drop "~circularity~" swap present-text
] [ ] [
over recursion-check get push over recursion-check get push

View File

@ -24,13 +24,13 @@ M: word quot-uses over crossref? [ conjoin ] [ 2drop ] if ;
[ quot-uses ] curry each ; [ quot-uses ] curry each ;
: seq-uses ( seq assoc -- ) : seq-uses ( seq assoc -- )
over visited get memq? [ 2drop ] [ over visited get member-eq? [ 2drop ] [
over visited get push over visited get push
(seq-uses) (seq-uses)
] if ; ] if ;
: assoc-uses ( assoc' assoc -- ) : assoc-uses ( assoc' assoc -- )
over visited get memq? [ 2drop ] [ over visited get member-eq? [ 2drop ] [
over visited get push over visited get push
[ >alist ] dip (seq-uses) [ >alist ] dip (seq-uses)
] if ; ] 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 [ invalidate-crossref add-definition-observer ] "tools.crossref" add-init-hook
PRIVATE> PRIVATE>

View File

@ -477,7 +477,7 @@ SYMBOL: deploy-vocab
next-method ; next-method ;
: calls-next-method? ( method -- ? ) : calls-next-method? ( method -- ? )
def>> flatten \ (call-next-method) swap memq? ; def>> flatten \ (call-next-method) swap member-eq? ;
: compute-next-methods ( -- ) : compute-next-methods ( -- )
[ standard-generic? ] instances [ [ standard-generic? ] instances [

View File

@ -130,7 +130,7 @@ CONSTANT: window-control>styleMask
M:: cocoa-ui-backend (open-window) ( world -- ) M:: cocoa-ui-backend (open-window) ( world -- )
world [ [ dim>> ] dip <FactorView> ] world [ [ dim>> ] dip <FactorView> ]
with-world-pixel-format :> view 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 make-context-transparent ] when
view world [ world>NSRect ] [ world>styleMask ] bi <ViewWindow> :> window view world [ world>NSRect ] [ world>styleMask ] bi <ViewWindow> :> window
view -> release view -> release

View File

@ -537,7 +537,7 @@ SYMBOL: nc-buttons
COLOR_BTNFACE GetSysColor RGB>color ; COLOR_BTNFACE GetSysColor RGB>color ;
: ?make-glass ( world hwnd -- ) : ?make-glass ( world hwnd -- )
over window-controls>> textured-background swap memq? [ over window-controls>> textured-background swap member-eq? [
composition-enabled? [ composition-enabled? [
full-window-margins DwmExtendFrameIntoClientArea drop full-window-margins DwmExtendFrameIntoClientArea drop
T{ rgba f 0.0 0.0 0.0 0.0 } T{ rgba f 0.0 0.0 0.0 0.0 }

View File

@ -22,7 +22,7 @@ PREDICATE: string-array < array [ string? ] all? ;
PRIVATE> PRIVATE>
: ?string-lines ( string -- string/array ) : ?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 ; ERROR: not-a-string object ;

View File

@ -120,7 +120,7 @@ M: world request-focus-on ( child gadget -- )
V{ } clone >>window-resources ; V{ } clone >>window-resources ;
: initial-background-color ( attributes -- color ) : 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 0.0 0.0 0.0 0.0 } ]
[ T{ rgba f 1.0 1.0 1.0 1.0 } ] if ; [ 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 children-on nip children>> ;
M: world remove-gadget M: world remove-gadget
2dup layers>> memq? 2dup layers>> member-eq?
[ layers>> remove-eq! drop ] [ call-next-method ] if ; [ layers>> remove-eq! drop ] [ call-next-method ] if ;
SYMBOL: flush-layout-cache-hook SYMBOL: flush-layout-cache-hook

View File

@ -64,7 +64,7 @@ M: definition-completion row-columns
M: word-completion row-color M: word-completion row-color
[ vocabulary>> ] [ manifest>> ] bi* { [ vocabulary>> ] [ manifest>> ] bi* {
{ [ dup not ] [ COLOR: black ] } { [ dup not ] [ COLOR: black ] }
{ [ 2dup search-vocabs>> memq? ] [ COLOR: black ] } { [ 2dup search-vocabs>> member-eq? ] [ COLOR: black ] }
{ [ over ".private" tail? ] [ COLOR: dark-red ] } { [ over ".private" tail? ] [ COLOR: dark-red ] }
[ COLOR: dark-gray ] [ COLOR: dark-gray ]
} cond 2nip ; } cond 2nip ;
@ -181,4 +181,4 @@ completion-popup H{
M: completion-popup handle-gesture ( gesture completion -- ? ) M: completion-popup handle-gesture ( gesture completion -- ? )
2dup completion-gesture dup [ 2dup completion-gesture dup [
[ nip hide-glass ] [ invoke-command ] 2bi* f [ nip hide-glass ] [ invoke-command ] 2bi* f
] [ 2drop call-next-method ] if ; ] [ 2drop call-next-method ] if ;

View File

@ -107,7 +107,7 @@ M: method-renderer column-titles drop { "" "Method" "Count" } ;
: method-matches? ( method generic class -- ? ) : method-matches? ( method generic class -- ? )
[ first ] 2dip [ 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 ] [ nip dup [ swap "method-class" word-prop = ] [ 2drop t ] if ]
} 3&& ; } 3&& ;

View File

@ -21,7 +21,7 @@ M: f alien>string
ERROR: invalid-c-string string ; ERROR: invalid-c-string string ;
: check-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 ) GENERIC# string>alien 1 ( string encoding -- byte-array )

View File

@ -34,7 +34,7 @@ TUPLE: check-mixin-class class ;
] unless ; ] unless ;
: if-mixin-member? ( class mixin true false -- ) : 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 -- ) : change-mixin-class ( class mixin quot -- )
[ [ members swap bootstrap-word ] dip call ] [ drop ] 2bi [ [ members swap bootstrap-word ] dip call ] [ drop ] 2bi

View File

@ -110,7 +110,7 @@ TUPLE: yo-momma ;
[ t ] [ \ yo-momma class? ] unit-test [ t ] [ \ yo-momma class? ] unit-test
[ ] [ \ yo-momma forget ] unit-test [ ] [ \ yo-momma forget ] unit-test
[ ] [ \ <yo-momma> forget ] unit-test [ ] [ \ <yo-momma> 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 ] with-compilation-unit
TUPLE: loc-recording ; TUPLE: loc-recording ;

View File

@ -49,7 +49,7 @@ M: c-reader stream-read1 dup check-disposed handle>> fgetc ;
: read-until-loop ( stream delim -- ch ) : read-until-loop ( stream delim -- ch )
over stream-read1 dup [ over stream-read1 dup [
dup pick memq? [ 2nip ] [ , read-until-loop ] if dup pick member-eq? [ 2nip ] [ , read-until-loop ] if
] [ ] [
2nip 2nip
] if ; ] if ;

View File

@ -32,7 +32,7 @@ SLOT: i
: find-sep ( seps stream -- sep/f n ) : find-sep ( seps stream -- sep/f n )
swap [ >sequence-stream< swap tail-slice ] dip 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 ) : sequence-read-until ( separators stream -- seq sep/f )
[ find-sep ] keep [ find-sep ] keep

View File

@ -141,15 +141,15 @@ IN: parser.tests
] unit-test ] unit-test
[ t ] [ [ t ] [
array "smudge-me" "parser.tests" lookup order memq? array "smudge-me" "parser.tests" lookup order member-eq?
] unit-test ] unit-test
[ t ] [ [ t ] [
integer "smudge-me" "parser.tests" lookup order memq? integer "smudge-me" "parser.tests" lookup order member-eq?
] unit-test ] unit-test
[ f ] [ [ f ] [
string "smudge-me" "parser.tests" lookup order memq? string "smudge-me" "parser.tests" lookup order member-eq?
] unit-test ] unit-test
[ ] [ [ ] [

View File

@ -461,7 +461,7 @@ HELP: member?
{ $description "Tests if the sequence contains an element equal to the object." } { $description "Tests if the sequence contains an element equal to the object." }
{ $notes "This word uses equality comparison (" { $link = } ")." } ; { $notes "This word uses equality comparison (" { $link = } ")." } ;
HELP: memq? HELP: member-eq?
{ $values { "elt" object } { "seq" sequence } { "?" "a boolean" } } { $values { "elt" object } { "seq" sequence } { "?" "a boolean" } }
{ $description "Tests if the sequence contains the object." } { $description "Tests if the sequence contains the object." }
{ $notes "This word uses identity comparison (" { $link eq? } ")." } ; { $notes "This word uses identity comparison (" { $link eq? } ")." } ;
@ -1566,7 +1566,7 @@ ARTICLE: "sequences-tests" "Testing sequences"
"Testing indices:" "Testing indices:"
{ $subsections bounds-check? } { $subsections bounds-check? }
"Testing if a sequence contains an object:" "Testing if a sequence contains an object:"
{ $subsections member? memq? } { $subsections member? member-eq? }
"Testing if a sequence contains a subsequence:" "Testing if a sequence contains a subsequence:"
{ $subsections head? tail? subseq? } ; { $subsections head? tail? subseq? } ;

View File

@ -42,7 +42,7 @@ IN: sequences.tests
[ t ] [ 2 [ 1 2 ] member? ] unit-test [ t ] [ 2 [ 1 2 ] member? ] unit-test
[ t ] [ t ]
[ [ "hello" "world" ] [ second ] keep memq? ] unit-test [ [ "hello" "world" ] [ second ] keep member-eq? ] unit-test
[ 4 ] [ CHAR: x "tuvwxyz" >vector index ] unit-test [ 4 ] [ CHAR: x "tuvwxyz" >vector index ] unit-test

View File

@ -567,7 +567,7 @@ PRIVATE>
: member? ( elt seq -- ? ) : member? ( elt seq -- ? )
[ = ] with any? ; [ = ] with any? ;
: memq? ( elt seq -- ? ) : member-eq? ( elt seq -- ? )
[ eq? ] with any? ; [ eq? ] with any? ;
: remove ( elt seq -- newseq ) : remove ( elt seq -- newseq )

View File

@ -32,7 +32,7 @@ $nl
conjoin conjoin
conjoin-at conjoin-at
} }
{ $see-also member? memq? any? all? "assocs-sets" } ; { $see-also member? member-eq? any? all? "assocs-sets" } ;
ABOUT: "sets" ABOUT: "sets"

View File

@ -15,7 +15,7 @@ TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ;
translate-seq 60 <groups> [ print ] each ; translate-seq 60 <groups> [ print ] each ;
: do-line ( seq line -- seq ) : do-line ( seq line -- seq )
dup first ">;" memq? dup first ">;" member-eq?
[ over show-seq print dup delete-all ] [ over push ] if ; [ over show-seq print dup delete-all ] [ over push ] if ;
HINTS: do-line vector string ; HINTS: do-line vector string ;

View File

@ -152,7 +152,7 @@ M: mdb-collection mdb-index-map
: slot-option? ( tuple slot option -- ? ) : slot-option? ( tuple slot option -- ? )
[ swap mdb-slot-map at ] dip [ swap mdb-slot-map at ] dip
'[ _ swap memq? ] [ f ] if* ; '[ _ swap member-eq? ] [ f ] if* ;
PRIVATE> PRIVATE>

View File

@ -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 <enum> 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 ?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 <enum> 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 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 <fp-nan> < 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 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 <fp-nan> < 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? <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 <flat-slice> second map! join when-empty accumulator immutable-sequence? <reversed> 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? <repetition> 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? <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 <flat-slice> second map! join when-empty accumulator immutable-sequence? <reversed> 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? <repetition> 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 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 <array> 2array 3array pair >array 1array 4array pair? array resize-array array? syn keyword factorKeyword <array> 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 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