memq? -> member-eq?, sorted-memq? -> sorted-member-eq?
parent
1476cdb974
commit
bd13e018dd
|
@ -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
|
||||||
|
|
|
@ -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" } ;
|
||||||
|
|
||||||
|
|
|
@ -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? ;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 -- )
|
||||||
|
|
|
@ -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? ;
|
||||||
|
|
||||||
|
|
|
@ -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 -- )
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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&& ;
|
||||||
|
|
|
@ -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 -- )
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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?
|
||||||
|
|
|
@ -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*
|
||||||
{
|
{
|
||||||
|
|
|
@ -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|| ;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 )
|
||||||
[
|
[
|
||||||
|
|
|
@ -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 -- )
|
||||||
|
|
|
@ -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* , ;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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? [
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ( -- )
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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 [
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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&& ;
|
||||||
|
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
[ ] [
|
[ ] [
|
||||||
|
|
|
@ -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? } ;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 )
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue