rename peek -> last and update all usages
parent
0ac80c6917
commit
407377fc98
|
@ -69,7 +69,7 @@ nl
|
||||||
"." write flush
|
"." write flush
|
||||||
|
|
||||||
{
|
{
|
||||||
new-sequence nth push pop peek flip
|
new-sequence nth push pop last flip
|
||||||
} compile-unoptimized
|
} compile-unoptimized
|
||||||
|
|
||||||
"." write flush
|
"." write flush
|
||||||
|
|
|
@ -46,13 +46,13 @@ M: growing-circular length length>> ;
|
||||||
: full? ( circular -- ? )
|
: full? ( circular -- ? )
|
||||||
[ length ] [ seq>> length ] bi = ;
|
[ length ] [ seq>> length ] bi = ;
|
||||||
|
|
||||||
: set-peek ( elt seq -- )
|
: set-last ( elt seq -- )
|
||||||
[ length 1- ] keep set-nth ;
|
[ length 1- ] keep set-nth ;
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: push-growing-circular ( elt circular -- )
|
: push-growing-circular ( elt circular -- )
|
||||||
dup full? [ push-circular ]
|
dup full? [ push-circular ]
|
||||||
[ [ 1+ ] change-length set-peek ] if ;
|
[ [ 1+ ] change-length set-last ] if ;
|
||||||
|
|
||||||
: <growing-circular> ( capacity -- growing-circular )
|
: <growing-circular> ( capacity -- growing-circular )
|
||||||
{ } new-sequence 0 0 growing-circular boa ;
|
{ } new-sequence 0 0 growing-circular boa ;
|
||||||
|
|
|
@ -165,7 +165,7 @@ SYMBOL: heap-ac
|
||||||
|
|
||||||
: record-constant-set-slot ( slot# vreg -- )
|
: record-constant-set-slot ( slot# vreg -- )
|
||||||
history [
|
history [
|
||||||
dup empty? [ dup peek store? [ dup pop* ] when ] unless
|
dup empty? [ dup last store? [ dup pop* ] when ] unless
|
||||||
store new-action swap ?push
|
store new-action swap ?push
|
||||||
] change-at ;
|
] change-at ;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ IN: compiler.cfg.intrinsics.allot
|
||||||
[ second ds-load ] [ ^^load-literal ] bi prefix ;
|
[ second ds-load ] [ ^^load-literal ] bi prefix ;
|
||||||
|
|
||||||
: emit-<tuple-boa> ( node -- )
|
: emit-<tuple-boa> ( node -- )
|
||||||
dup node-input-infos peek literal>>
|
dup node-input-infos last literal>>
|
||||||
dup array? [
|
dup array? [
|
||||||
nip
|
nip
|
||||||
ds-drop
|
ds-drop
|
||||||
|
|
|
@ -7,7 +7,7 @@ SYMBOL: node-stack
|
||||||
|
|
||||||
: >node ( cursor -- ) node-stack get push ;
|
: >node ( cursor -- ) node-stack get push ;
|
||||||
: node> ( -- cursor ) node-stack get pop ;
|
: node> ( -- cursor ) node-stack get pop ;
|
||||||
: node@ ( -- cursor ) node-stack get peek ;
|
: node@ ( -- cursor ) node-stack get last ;
|
||||||
: current-node ( -- node ) node@ first ;
|
: current-node ( -- node ) node@ first ;
|
||||||
: iterate-next ( -- cursor ) node@ rest-slice ;
|
: iterate-next ( -- cursor ) node@ rest-slice ;
|
||||||
: skip-next ( -- next ) node> rest-slice [ first ] [ >node ] bi ;
|
: skip-next ( -- next ) node> rest-slice [ first ] [ >node ] bi ;
|
||||||
|
|
|
@ -23,7 +23,7 @@ IN: compiler.cfg.linear-scan.debugger
|
||||||
[ split-children ] map concat check-assigned ;
|
[ split-children ] map concat check-assigned ;
|
||||||
|
|
||||||
: picture ( uses -- str )
|
: picture ( uses -- str )
|
||||||
dup peek 1 + CHAR: space <string>
|
dup last 1 + CHAR: space <string>
|
||||||
[ '[ CHAR: * swap _ set-nth ] each ] keep ;
|
[ '[ CHAR: * swap _ set-nth ] each ] keep ;
|
||||||
|
|
||||||
: interval-picture ( interval -- str )
|
: interval-picture ( interval -- str )
|
||||||
|
|
|
@ -244,7 +244,7 @@ SYMBOL: max-uses
|
||||||
swap int-regs swap vreg boa >>vreg
|
swap int-regs swap vreg boa >>vreg
|
||||||
max-uses get random 2 max [ not-taken ] replicate natural-sort
|
max-uses get random 2 max [ not-taken ] replicate natural-sort
|
||||||
[ >>uses ] [ first >>start ] bi
|
[ >>uses ] [ first >>start ] bi
|
||||||
dup uses>> peek >>end
|
dup uses>> last >>end
|
||||||
] map
|
] map
|
||||||
] with-scope ;
|
] with-scope ;
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ IN: compiler.cfg.useless-blocks
|
||||||
|
|
||||||
: delete-conditional? ( bb -- ? )
|
: delete-conditional? ( bb -- ? )
|
||||||
dup instructions>> [ drop f ] [
|
dup instructions>> [ drop f ] [
|
||||||
peek class {
|
last class {
|
||||||
##compare-branch
|
##compare-branch
|
||||||
##compare-imm-branch
|
##compare-imm-branch
|
||||||
##compare-float-branch
|
##compare-float-branch
|
||||||
|
|
|
@ -28,7 +28,7 @@ M: #branch remove-dead-code*
|
||||||
|
|
||||||
: remove-phi-inputs ( #phi -- )
|
: remove-phi-inputs ( #phi -- )
|
||||||
if-node get children>>
|
if-node get children>>
|
||||||
[ dup ends-with-terminate? [ drop f ] [ peek out-d>> ] if ] map
|
[ dup ends-with-terminate? [ drop f ] [ last out-d>> ] if ] map
|
||||||
pad-with-bottom >>phi-in-d drop ;
|
pad-with-bottom >>phi-in-d drop ;
|
||||||
|
|
||||||
: live-value-indices ( values -- indices )
|
: live-value-indices ( values -- indices )
|
||||||
|
|
|
@ -191,7 +191,7 @@ SYMBOL: node-count
|
||||||
propagate
|
propagate
|
||||||
compute-def-use
|
compute-def-use
|
||||||
dup check-nodes
|
dup check-nodes
|
||||||
peek node-input-infos ;
|
last node-input-infos ;
|
||||||
|
|
||||||
: final-classes ( quot -- seq )
|
: final-classes ( quot -- seq )
|
||||||
final-info [ class>> ] map ;
|
final-info [ class>> ] map ;
|
||||||
|
|
|
@ -83,7 +83,7 @@ TUPLE: implication p q ;
|
||||||
C: --> implication
|
C: --> implication
|
||||||
|
|
||||||
: assume-implication ( p q -- )
|
: assume-implication ( p q -- )
|
||||||
[ constraints get [ assoc-stack swap suffix ] 2keep peek set-at ]
|
[ constraints get [ assoc-stack swap suffix ] 2keep last set-at ]
|
||||||
[ satisfied? [ assume ] [ drop ] if ] 2bi ;
|
[ satisfied? [ assume ] [ drop ] if ] 2bi ;
|
||||||
|
|
||||||
M: implication assume*
|
M: implication assume*
|
||||||
|
|
|
@ -259,12 +259,12 @@ SYMBOL: value-infos
|
||||||
resolve-copy value-infos get assoc-stack null-info or ;
|
resolve-copy value-infos get assoc-stack null-info or ;
|
||||||
|
|
||||||
: set-value-info ( info value -- )
|
: set-value-info ( info value -- )
|
||||||
resolve-copy value-infos get peek set-at ;
|
resolve-copy value-infos get last set-at ;
|
||||||
|
|
||||||
: refine-value-info ( info value -- )
|
: refine-value-info ( info value -- )
|
||||||
resolve-copy value-infos get
|
resolve-copy value-infos get
|
||||||
[ assoc-stack value-info-intersect ] 2keep
|
[ assoc-stack value-info-intersect ] 2keep
|
||||||
peek set-at ;
|
last set-at ;
|
||||||
|
|
||||||
: value-literal ( value -- obj ? )
|
: value-literal ( value -- obj ? )
|
||||||
value-info >literal< ;
|
value-info >literal< ;
|
||||||
|
@ -294,10 +294,10 @@ SYMBOL: value-infos
|
||||||
dup in-d>> first node-value-info literal>> ;
|
dup in-d>> first node-value-info literal>> ;
|
||||||
|
|
||||||
: last-literal ( #call -- obj )
|
: last-literal ( #call -- obj )
|
||||||
dup out-d>> peek node-value-info literal>> ;
|
dup out-d>> last node-value-info literal>> ;
|
||||||
|
|
||||||
: immutable-tuple-boa? ( #call -- ? )
|
: immutable-tuple-boa? ( #call -- ? )
|
||||||
dup word>> \ <tuple-boa> eq? [
|
dup word>> \ <tuple-boa> eq? [
|
||||||
dup in-d>> peek node-value-info
|
dup in-d>> last node-value-info
|
||||||
literal>> first immutable-tuple-class?
|
literal>> first immutable-tuple-class?
|
||||||
] [ drop f ] if ;
|
] [ drop f ] if ;
|
||||||
|
|
|
@ -169,7 +169,7 @@ M: #return-recursive inputs/outputs [ in-d>> ] [ out-d>> ] bi ;
|
||||||
[ label>> calls>> [ in-d>> ] map ] [ in-d>> ] bi suffix ;
|
[ label>> calls>> [ in-d>> ] map ] [ in-d>> ] bi suffix ;
|
||||||
|
|
||||||
: ends-with-terminate? ( nodes -- ? )
|
: ends-with-terminate? ( nodes -- ? )
|
||||||
[ f ] [ peek #terminate? ] if-empty ;
|
[ f ] [ last #terminate? ] if-empty ;
|
||||||
|
|
||||||
M: vector child-visitor V{ } clone ;
|
M: vector child-visitor V{ } clone ;
|
||||||
M: vector #introduce, #introduce node, ;
|
M: vector #introduce, #introduce node, ;
|
||||||
|
|
|
@ -63,7 +63,7 @@ PRIVATE>
|
||||||
|
|
||||||
: csv ( stream -- rows )
|
: csv ( stream -- rows )
|
||||||
[ [ (csv) ] { } make ] with-input-stream
|
[ [ (csv) ] { } make ] with-input-stream
|
||||||
dup peek { "" } = [ but-last ] when ;
|
dup last { "" } = [ but-last ] when ;
|
||||||
|
|
||||||
: file>csv ( path encoding -- csv )
|
: file>csv ( path encoding -- csv )
|
||||||
<file-reader> csv ;
|
<file-reader> csv ;
|
||||||
|
|
|
@ -120,7 +120,7 @@ namespaces tools.test make arrays kernel fry ;
|
||||||
[ "Goodbye, cruel world." ] [ "d" get doc-string ] unit-test
|
[ "Goodbye, cruel world." ] [ "d" get doc-string ] unit-test
|
||||||
|
|
||||||
[ "" { 0 9 } { 0 15 } ] [
|
[ "" { 0 9 } { 0 15 } ] [
|
||||||
"d" get undos>> peek
|
"d" get undos>> last
|
||||||
[ old-string>> ] [ from>> ] [ new-to>> ] tri
|
[ old-string>> ] [ from>> ] [ new-to>> ] tri
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ CONSTANT: doc-start { 0 0 }
|
||||||
] [
|
] [
|
||||||
first swap length 1- + 0
|
first swap length 1- + 0
|
||||||
] if
|
] if
|
||||||
] dip peek length + 2array ;
|
] dip last length + 2array ;
|
||||||
|
|
||||||
: prepend-first ( str seq -- )
|
: prepend-first ( str seq -- )
|
||||||
0 swap [ append ] change-nth ;
|
0 swap [ append ] change-nth ;
|
||||||
|
|
|
@ -149,15 +149,15 @@ DEFER: (parse-paragraph)
|
||||||
|
|
||||||
: trim-row ( seq -- seq' )
|
: trim-row ( seq -- seq' )
|
||||||
rest
|
rest
|
||||||
dup peek empty? [ but-last ] when ;
|
dup last empty? [ but-last ] when ;
|
||||||
|
|
||||||
: ?peek ( seq -- elt/f )
|
: ?last ( seq -- elt/f )
|
||||||
[ f ] [ peek ] if-empty ;
|
[ f ] [ last ] if-empty ;
|
||||||
|
|
||||||
: coalesce ( rows -- rows' )
|
: coalesce ( rows -- rows' )
|
||||||
V{ } clone [
|
V{ } clone [
|
||||||
'[
|
'[
|
||||||
_ dup ?peek ?peek CHAR: \\ =
|
_ dup ?last ?last CHAR: \\ =
|
||||||
[ [ pop "|" rot 3append ] keep ] when
|
[ [ pop "|" rot 3append ] keep ] when
|
||||||
push
|
push
|
||||||
] each
|
] each
|
||||||
|
|
|
@ -76,7 +76,7 @@ MACRO: ncleave ( quots n -- )
|
||||||
MACRO: nspread ( quots n -- )
|
MACRO: nspread ( quots n -- )
|
||||||
over empty? [ 2drop [ ] ] [
|
over empty? [ 2drop [ ] ] [
|
||||||
[ [ but-last ] dip ]
|
[ [ but-last ] dip ]
|
||||||
[ [ peek ] dip ] 2bi
|
[ [ last ] dip ] 2bi
|
||||||
swap
|
swap
|
||||||
'[ [ _ _ nspread ] _ ndip @ ]
|
'[ [ _ _ nspread ] _ ndip @ ]
|
||||||
] if ;
|
] if ;
|
||||||
|
|
|
@ -76,7 +76,7 @@ M: heap heap-size ( heap -- n )
|
||||||
data>> pop* ; inline
|
data>> pop* ; inline
|
||||||
|
|
||||||
: data-peek ( heap -- entry )
|
: data-peek ( heap -- entry )
|
||||||
data>> peek ; inline
|
data>> last ; inline
|
||||||
|
|
||||||
: data-first ( heap -- entry )
|
: data-first ( heap -- entry )
|
||||||
data>> first ; inline
|
data>> first ; inline
|
||||||
|
|
|
@ -25,7 +25,7 @@ SYMBOL: vocab-articles
|
||||||
[ (eval>string) ] call( code -- output )
|
[ (eval>string) ] call( code -- output )
|
||||||
"\n" ?tail drop
|
"\n" ?tail drop
|
||||||
] keep
|
] keep
|
||||||
peek assert=
|
last assert=
|
||||||
] vocabs-quot get call( quot -- ) ;
|
] vocabs-quot get call( quot -- ) ;
|
||||||
|
|
||||||
: check-examples ( element -- )
|
: check-examples ( element -- )
|
||||||
|
|
|
@ -77,7 +77,7 @@ SYNTAX: HINTS:
|
||||||
{ first first2 first3 first4 }
|
{ first first2 first3 first4 }
|
||||||
[ { array } "specializer" set-word-prop ] each
|
[ { array } "specializer" set-word-prop ] each
|
||||||
|
|
||||||
{ peek pop* pop } [
|
{ last pop* pop } [
|
||||||
{ vector } "specializer" set-word-prop
|
{ vector } "specializer" set-word-prop
|
||||||
] each
|
] each
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ PEG: parse-header-line ( string -- pair )
|
||||||
'space' ,
|
'space' ,
|
||||||
'attr' ,
|
'attr' ,
|
||||||
'space' ,
|
'space' ,
|
||||||
[ "=" token , 'space' , 'value' , ] seq* [ peek ] action optional ,
|
[ "=" token , 'space' , 'value' , ] seq* [ last ] action optional ,
|
||||||
'space' ,
|
'space' ,
|
||||||
] seq* ;
|
] seq* ;
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ PRIVATE>
|
||||||
|
|
||||||
: &back ( -- )
|
: &back ( -- )
|
||||||
inspector-stack get
|
inspector-stack get
|
||||||
dup length 1 <= [ drop ] [ [ pop* ] [ peek reinspect ] bi ] if ;
|
dup length 1 <= [ drop ] [ [ pop* ] [ last reinspect ] bi ] if ;
|
||||||
|
|
||||||
: &add ( value key -- ) mirror get set-at &push reinspect ;
|
: &add ( value key -- ) mirror get set-at &push reinspect ;
|
||||||
|
|
||||||
|
|
|
@ -220,7 +220,7 @@ DEFER: __
|
||||||
\ first4 [ 4array ] define-inverse
|
\ first4 [ 4array ] define-inverse
|
||||||
|
|
||||||
\ prefix \ unclip define-dual
|
\ prefix \ unclip define-dual
|
||||||
\ suffix [ dup but-last swap peek ] define-inverse
|
\ suffix [ dup but-last swap last ] define-inverse
|
||||||
|
|
||||||
\ append 1 [ [ ?tail assure ] curry ] define-pop-inverse
|
\ append 1 [ [ ?tail assure ] curry ] define-pop-inverse
|
||||||
\ prepend 1 [ [ ?head assure ] curry ] define-pop-inverse
|
\ prepend 1 [ [ ?head assure ] curry ] define-pop-inverse
|
||||||
|
|
|
@ -34,7 +34,7 @@ PRIVATE>
|
||||||
|
|
||||||
: levenshtein ( old new -- n )
|
: levenshtein ( old new -- n )
|
||||||
[ levenshtein-initialize ] [ levenshtein-step ]
|
[ levenshtein-initialize ] [ levenshtein-step ]
|
||||||
run-lcs peek peek ;
|
run-lcs last last ;
|
||||||
|
|
||||||
TUPLE: retain item ;
|
TUPLE: retain item ;
|
||||||
TUPLE: delete item ;
|
TUPLE: delete item ;
|
||||||
|
|
|
@ -66,7 +66,7 @@ PEG: parse-log-line ( string -- entry ) 'log-line' ;
|
||||||
building get empty? [
|
building get empty? [
|
||||||
"Warning: log begins with multiline entry" print drop
|
"Warning: log begins with multiline entry" print drop
|
||||||
] [
|
] [
|
||||||
message>> first building get peek message>> push
|
message>> first building get last message>> push
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
: parse-log ( lines -- entries )
|
: parse-log ( lines -- entries )
|
||||||
|
|
|
@ -23,9 +23,9 @@ IN: math.bits.tests
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ t ] [
|
[ t ] [
|
||||||
1067811677921310779 make-bits peek
|
1067811677921310779 make-bits last
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
[ t ] [
|
[ t ] [
|
||||||
1067811677921310779 >bignum make-bits peek
|
1067811677921310779 >bignum make-bits last
|
||||||
] unit-test
|
] unit-test
|
|
@ -48,7 +48,7 @@ PRIVATE>
|
||||||
|
|
||||||
: /-last ( seq seq -- a )
|
: /-last ( seq seq -- a )
|
||||||
#! divide the last two numbers in the sequences
|
#! divide the last two numbers in the sequences
|
||||||
[ peek ] bi@ / ;
|
[ last ] bi@ / ;
|
||||||
|
|
||||||
: (p/mod) ( p p -- p p )
|
: (p/mod) ( p p -- p p )
|
||||||
2dup /-last
|
2dup /-last
|
||||||
|
|
|
@ -56,14 +56,14 @@ PRIVATE>
|
||||||
: range-decreasing? ( range -- ? )
|
: range-decreasing? ( range -- ? )
|
||||||
step>> 0 < ;
|
step>> 0 < ;
|
||||||
|
|
||||||
: first-or-peek ( seq head? -- elt )
|
: first-or-last ( seq head? -- elt )
|
||||||
[ first ] [ peek ] if ;
|
[ first ] [ last ] if ;
|
||||||
|
|
||||||
: range-min ( range -- min )
|
: range-min ( range -- min )
|
||||||
dup range-increasing? first-or-peek ;
|
dup range-increasing? first-or-last ;
|
||||||
|
|
||||||
: range-max ( range -- max )
|
: range-max ( range -- max )
|
||||||
dup range-decreasing? first-or-peek ;
|
dup range-decreasing? first-or-last ;
|
||||||
|
|
||||||
: clamp-to-range ( n range -- n )
|
: clamp-to-range ( n range -- n )
|
||||||
[ range-min ] [ range-max ] bi clamp ;
|
[ range-min ] [ range-max ] bi clamp ;
|
||||||
|
|
|
@ -370,7 +370,7 @@ SYMBOL: ignore-ws
|
||||||
] bind ;
|
] bind ;
|
||||||
|
|
||||||
M: ebnf (transform) ( ast -- parser )
|
M: ebnf (transform) ( ast -- parser )
|
||||||
rules>> [ (transform) ] map peek ;
|
rules>> [ (transform) ] map last ;
|
||||||
|
|
||||||
M: ebnf-tokenizer (transform) ( ast -- parser )
|
M: ebnf-tokenizer (transform) ( ast -- parser )
|
||||||
elements>> dup "default" = [
|
elements>> dup "default" = [
|
||||||
|
|
|
@ -70,7 +70,7 @@ M: persistent-vector nth-unsafe
|
||||||
dup level>> 1 = [
|
dup level>> 1 = [
|
||||||
new-child
|
new-child
|
||||||
] [
|
] [
|
||||||
tuck children>> peek (ppush-new-tail)
|
tuck children>> last (ppush-new-tail)
|
||||||
[ swap new-child ] [ swap node-set-last f ] ?if
|
[ swap new-child ] [ swap node-set-last f ] ?if
|
||||||
] if ;
|
] if ;
|
||||||
|
|
||||||
|
@ -127,13 +127,13 @@ M: persistent-vector new-nth ( obj i pvec -- pvec' )
|
||||||
|
|
||||||
: ppop-contraction ( node -- node' tail' )
|
: ppop-contraction ( node -- node' tail' )
|
||||||
dup children>> length 1 =
|
dup children>> length 1 =
|
||||||
[ children>> peek f swap ]
|
[ children>> last f swap ]
|
||||||
[ (ppop-contraction) ]
|
[ (ppop-contraction) ]
|
||||||
if ;
|
if ;
|
||||||
|
|
||||||
: (ppop-new-tail) ( root -- root' tail' )
|
: (ppop-new-tail) ( root -- root' tail' )
|
||||||
dup level>> 1 > [
|
dup level>> 1 > [
|
||||||
dup children>> peek (ppop-new-tail) [
|
dup children>> last (ppop-new-tail) [
|
||||||
dup
|
dup
|
||||||
[ swap node-set-last ]
|
[ swap node-set-last ]
|
||||||
[ drop ppop-contraction drop ]
|
[ drop ppop-contraction drop ]
|
||||||
|
|
|
@ -52,7 +52,7 @@ USING: kernel math parser sequences combinators splitting ;
|
||||||
: consonant-end? ( n seq -- ? )
|
: consonant-end? ( n seq -- ? )
|
||||||
[ length swap - ] keep consonant? ;
|
[ length swap - ] keep consonant? ;
|
||||||
|
|
||||||
: last-is? ( str possibilities -- ? ) [ peek ] dip member? ;
|
: last-is? ( str possibilities -- ? ) [ last ] dip member? ;
|
||||||
|
|
||||||
: cvc? ( str -- ? )
|
: cvc? ( str -- ? )
|
||||||
{
|
{
|
||||||
|
@ -67,7 +67,7 @@ USING: kernel math parser sequences combinators splitting ;
|
||||||
pick consonant-seq 0 > [ nip ] [ drop ] if append ;
|
pick consonant-seq 0 > [ nip ] [ drop ] if append ;
|
||||||
|
|
||||||
: step1a ( str -- newstr )
|
: step1a ( str -- newstr )
|
||||||
dup peek CHAR: s = [
|
dup last CHAR: s = [
|
||||||
{
|
{
|
||||||
{ [ "sses" ?tail ] [ "ss" append ] }
|
{ [ "sses" ?tail ] [ "ss" append ] }
|
||||||
{ [ "ies" ?tail ] [ "i" append ] }
|
{ [ "ies" ?tail ] [ "i" append ] }
|
||||||
|
@ -199,13 +199,13 @@ USING: kernel math parser sequences combinators splitting ;
|
||||||
[ 1 = [ but-last-slice cvc? not ] [ drop f ] if ] if ;
|
[ 1 = [ but-last-slice cvc? not ] [ drop f ] if ] if ;
|
||||||
|
|
||||||
: remove-e ( str -- newstr )
|
: remove-e ( str -- newstr )
|
||||||
dup peek CHAR: e = [
|
dup last CHAR: e = [
|
||||||
dup remove-e? [ but-last-slice ] when
|
dup remove-e? [ but-last-slice ] when
|
||||||
] when ;
|
] when ;
|
||||||
|
|
||||||
: ll->l ( str -- newstr )
|
: ll->l ( str -- newstr )
|
||||||
{
|
{
|
||||||
{ [ dup peek CHAR: l = not ] [ ] }
|
{ [ dup last CHAR: l = not ] [ ] }
|
||||||
{ [ dup length 1- over double-consonant? not ] [ ] }
|
{ [ dup length 1- over double-consonant? not ] [ ] }
|
||||||
{ [ dup consonant-seq 1 > ] [ but-last-slice ] }
|
{ [ dup consonant-seq 1 > ] [ but-last-slice ] }
|
||||||
[ ]
|
[ ]
|
||||||
|
|
|
@ -153,7 +153,7 @@ TUPLE: block < section sections ;
|
||||||
: <block> ( style -- block )
|
: <block> ( style -- block )
|
||||||
block new-block ;
|
block new-block ;
|
||||||
|
|
||||||
: pprinter-block ( -- block ) pprinter-stack get peek ;
|
: pprinter-block ( -- block ) pprinter-stack get last ;
|
||||||
|
|
||||||
: add-section ( section -- )
|
: add-section ( section -- )
|
||||||
pprinter-block sections>> push ;
|
pprinter-block sections>> push ;
|
||||||
|
@ -292,7 +292,7 @@ M: colon unindent-first-line? drop t ;
|
||||||
|
|
||||||
! Long section layout algorithm
|
! Long section layout algorithm
|
||||||
: chop-break ( seq -- seq )
|
: chop-break ( seq -- seq )
|
||||||
dup peek line-break? [ but-last-slice chop-break ] when ;
|
dup last line-break? [ but-last-slice chop-break ] when ;
|
||||||
|
|
||||||
SYMBOL: prev
|
SYMBOL: prev
|
||||||
SYMBOL: next
|
SYMBOL: next
|
||||||
|
@ -317,7 +317,7 @@ SYMBOL: next
|
||||||
] { } make { t } split harvest ;
|
] { } make { t } split harvest ;
|
||||||
|
|
||||||
: break-group? ( seq -- ? )
|
: break-group? ( seq -- ? )
|
||||||
[ first section-fits? ] [ peek section-fits? not ] bi and ;
|
[ first section-fits? ] [ last section-fits? not ] bi and ;
|
||||||
|
|
||||||
: ?break-group ( seq -- )
|
: ?break-group ( seq -- )
|
||||||
dup break-group? [ first <fresh-line ] [ drop ] if ;
|
dup break-group? [ first <fresh-line ] [ drop ] if ;
|
||||||
|
|
|
@ -27,4 +27,4 @@ and we didn't know hów tö do thât"> latin2 encode >quoted ] unit-test
|
||||||
[ 1 ] [ message >quoted string-lines length ] unit-test
|
[ 1 ] [ message >quoted string-lines length ] unit-test
|
||||||
[ t ] [ message >quoted-lines "=\r\n" swap subseq? ] unit-test
|
[ t ] [ message >quoted-lines "=\r\n" swap subseq? ] unit-test
|
||||||
[ 4 ] [ message >quoted-lines string-lines length ] unit-test
|
[ 4 ] [ message >quoted-lines string-lines length ] unit-test
|
||||||
[ "===o" ] [ message >quoted-lines string-lines [ peek ] "" map-as ] unit-test
|
[ "===o" ] [ message >quoted-lines string-lines [ last ] "" map-as ] unit-test
|
||||||
|
|
|
@ -9,7 +9,7 @@ IN: quoting
|
||||||
{
|
{
|
||||||
[ length 1 > ]
|
[ length 1 > ]
|
||||||
[ first quote? ]
|
[ first quote? ]
|
||||||
[ [ first ] [ peek ] bi = ]
|
[ [ first ] [ last ] bi = ]
|
||||||
} 1&& ;
|
} 1&& ;
|
||||||
|
|
||||||
: unquote ( str -- newstr )
|
: unquote ( str -- newstr )
|
||||||
|
|
|
@ -6,9 +6,9 @@ IN: splitting.monotonic
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: ,, ( obj -- ) building get peek push ;
|
: ,, ( obj -- ) building get last push ;
|
||||||
: v, ( -- ) V{ } clone , ;
|
: v, ( -- ) V{ } clone , ;
|
||||||
: ,v ( -- ) building get dup peek empty? [ dup pop* ] when drop ;
|
: ,v ( -- ) building get dup last empty? [ dup pop* ] when drop ;
|
||||||
|
|
||||||
: (monotonic-split) ( seq quot -- newseq )
|
: (monotonic-split) ( seq quot -- newseq )
|
||||||
[
|
[
|
||||||
|
|
|
@ -57,8 +57,8 @@ IN: stack-checker.transforms
|
||||||
[
|
[
|
||||||
[ no-case ]
|
[ no-case ]
|
||||||
] [
|
] [
|
||||||
dup peek callable? [
|
dup last callable? [
|
||||||
dup peek swap but-last
|
dup last swap but-last
|
||||||
] [
|
] [
|
||||||
[ no-case ] swap
|
[ no-case ] swap
|
||||||
] if case>quot
|
] if case>quot
|
||||||
|
|
|
@ -24,7 +24,7 @@ IN: tools.completion
|
||||||
2dup number=
|
2dup number=
|
||||||
[ drop ] [ nip V{ } clone pick push ] if
|
[ drop ] [ nip V{ } clone pick push ] if
|
||||||
1+
|
1+
|
||||||
] keep pick peek push
|
] keep pick last push
|
||||||
] each ;
|
] each ;
|
||||||
|
|
||||||
: runs ( seq -- newseq )
|
: runs ( seq -- newseq )
|
||||||
|
|
|
@ -83,7 +83,7 @@ M: pasteboard set-clipboard-contents
|
||||||
dup { 0 0 } = [
|
dup { 0 0 } = [
|
||||||
drop
|
drop
|
||||||
windows get length 1 <= [ -> center ] [
|
windows get length 1 <= [ -> center ] [
|
||||||
windows get peek second window-loc>>
|
windows get last second window-loc>>
|
||||||
dupd first2 <CGPoint> -> cascadeTopLeftFromPoint:
|
dupd first2 <CGPoint> -> cascadeTopLeftFromPoint:
|
||||||
-> setFrameTopLeftPoint:
|
-> setFrameTopLeftPoint:
|
||||||
] if
|
] if
|
||||||
|
|
|
@ -59,7 +59,7 @@ SYMBOL: locale ! Just casing locale, or overall?
|
||||||
|
|
||||||
: fix-sigma-end ( string -- string )
|
: fix-sigma-end ( string -- string )
|
||||||
[ "" ] [
|
[ "" ] [
|
||||||
dup peek CHAR: greek-small-letter-sigma =
|
dup last CHAR: greek-small-letter-sigma =
|
||||||
[ 1 head* CHAR: greek-small-letter-final-sigma suffix ] when
|
[ 1 head* CHAR: greek-small-letter-final-sigma suffix ] when
|
||||||
] if-empty ; inline
|
] if-empty ; inline
|
||||||
|
|
||||||
|
|
|
@ -63,13 +63,13 @@ ducet insert-helpers
|
||||||
[ drop { } ]
|
[ drop { } ]
|
||||||
[ [ AAAA ] [ BBBB ] bi 2array ] if ;
|
[ [ AAAA ] [ BBBB ] bi 2array ] if ;
|
||||||
|
|
||||||
: last ( -- char )
|
: building-last ( -- char )
|
||||||
building get empty? [ 0 ] [ building get peek peek ] if ;
|
building get empty? [ 0 ] [ building get last last ] if ;
|
||||||
|
|
||||||
: blocked? ( char -- ? )
|
: blocked? ( char -- ? )
|
||||||
combining-class dup { 0 f } member?
|
combining-class dup { 0 f } member?
|
||||||
[ drop last non-starter? ]
|
[ drop building-last non-starter? ]
|
||||||
[ last combining-class = ] if ;
|
[ building-last combining-class = ] if ;
|
||||||
|
|
||||||
: possible-bases ( -- slice-of-building )
|
: possible-bases ( -- slice-of-building )
|
||||||
building get dup [ first non-starter? not ] find-last
|
building get dup [ first non-starter? not ] find-last
|
||||||
|
|
|
@ -16,7 +16,7 @@ IN: vlists.tests
|
||||||
[ "foo" VL{ "hi" "there" } t ]
|
[ "foo" VL{ "hi" "there" } t ]
|
||||||
[
|
[
|
||||||
VL{ "hi" "there" "foo" } dup "v" set
|
VL{ "hi" "there" "foo" } dup "v" set
|
||||||
[ peek ] [ ppop ] bi
|
[ last ] [ ppop ] bi
|
||||||
dup "v" get [ vector>> ] bi@ eq?
|
dup "v" get [ vector>> ] bi@ eq?
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ IN: xml
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: add-child ( object -- )
|
: add-child ( object -- )
|
||||||
xml-stack get peek second push ;
|
xml-stack get last second push ;
|
||||||
|
|
||||||
: push-xml ( object -- )
|
: push-xml ( object -- )
|
||||||
V{ } clone 2array xml-stack get push ;
|
V{ } clone 2array xml-stack get push ;
|
||||||
|
|
|
@ -215,7 +215,7 @@ M: anonymous-complement (classes-intersect?)
|
||||||
: min-class ( class seq -- class/f )
|
: min-class ( class seq -- class/f )
|
||||||
over [ classes-intersect? ] curry filter
|
over [ classes-intersect? ] curry filter
|
||||||
[ drop f ] [
|
[ drop f ] [
|
||||||
[ nip ] [ [ class<= ] with all? ] 2bi [ peek ] [ drop f ] if
|
[ nip ] [ [ class<= ] with all? ] 2bi [ last ] [ drop f ] if
|
||||||
] if-empty ;
|
] if-empty ;
|
||||||
|
|
||||||
GENERIC: (flatten-class) ( class -- )
|
GENERIC: (flatten-class) ( class -- )
|
||||||
|
|
|
@ -152,7 +152,7 @@ ERROR: attempt-all-error ;
|
||||||
] [
|
] [
|
||||||
[
|
[
|
||||||
[ [ , f ] compose [ , drop t ] recover ] curry all?
|
[ [ , f ] compose [ , drop t ] recover ] curry all?
|
||||||
] { } make peek swap [ rethrow ] when
|
] { } make last swap [ rethrow ] when
|
||||||
] if ; inline
|
] if ; inline
|
||||||
|
|
||||||
TUPLE: condition error restarts continuation ;
|
TUPLE: condition error restarts continuation ;
|
||||||
|
|
|
@ -21,7 +21,7 @@ M: object dispose
|
||||||
: dispose-each ( seq -- )
|
: dispose-each ( seq -- )
|
||||||
[
|
[
|
||||||
[ [ dispose ] curry [ , ] recover ] each
|
[ [ dispose ] curry [ , ] recover ] each
|
||||||
] { } make [ peek rethrow ] unless-empty ;
|
] { } make [ last rethrow ] unless-empty ;
|
||||||
|
|
||||||
: with-disposal ( object quot -- )
|
: with-disposal ( object quot -- )
|
||||||
over [ dispose ] curry [ ] cleanup ; inline
|
over [ dispose ] curry [ ] cleanup ; inline
|
||||||
|
|
|
@ -15,7 +15,7 @@ PREDICATE: math-class < class
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: last/first ( seq -- pair ) [ peek ] [ first ] bi 2array ;
|
: last/first ( seq -- pair ) [ last ] [ first ] bi 2array ;
|
||||||
|
|
||||||
: bootstrap-words ( classes -- classes' )
|
: bootstrap-words ( classes -- classes' )
|
||||||
[ bootstrap-word ] map ;
|
[ bootstrap-word ] map ;
|
||||||
|
|
|
@ -235,7 +235,7 @@ M: predicate-engine-word stack-effect "owner-generic" word-prop stack-effect ;
|
||||||
quote-methods
|
quote-methods
|
||||||
prune-redundant-predicates
|
prune-redundant-predicates
|
||||||
class-predicates
|
class-predicates
|
||||||
[ peek ] [ alist>quot picker prepend define-predicate-engine ] if-empty ;
|
[ last ] [ alist>quot picker prepend define-predicate-engine ] if-empty ;
|
||||||
|
|
||||||
M: predicate-engine compile-engine
|
M: predicate-engine compile-engine
|
||||||
[ compile-predicate-engine ] [ class>> ] bi
|
[ compile-predicate-engine ] [ class>> ] bi
|
||||||
|
|
|
@ -12,7 +12,7 @@ IN: namespaces
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: namespace ( -- namespace ) namestack* peek ; inline
|
: namespace ( -- namespace ) namestack* last ; inline
|
||||||
: namestack ( -- namestack ) namestack* clone ;
|
: namestack ( -- namestack ) namestack* clone ;
|
||||||
: set-namestack ( namestack -- ) >vector 0 setenv ;
|
: set-namestack ( namestack -- ) >vector 0 setenv ;
|
||||||
: global ( -- g ) 21 getenv { hashtable } declare ; inline
|
: global ( -- g ) 21 getenv { hashtable } declare ; inline
|
||||||
|
|
|
@ -546,12 +546,12 @@ HELP: join
|
||||||
|
|
||||||
{ join concat concat-as } related-words
|
{ join concat concat-as } related-words
|
||||||
|
|
||||||
HELP: peek
|
HELP: last
|
||||||
{ $values { "seq" sequence } { "elt" object } }
|
{ $values { "seq" sequence } { "elt" object } }
|
||||||
{ $description "Outputs the last element of a sequence." }
|
{ $description "Outputs the last element of a sequence." }
|
||||||
{ $errors "Throws an error if the sequence is empty." } ;
|
{ $errors "Throws an error if the sequence is empty." } ;
|
||||||
|
|
||||||
{ peek pop pop* } related-words
|
{ last pop pop* } related-words
|
||||||
|
|
||||||
HELP: pop*
|
HELP: pop*
|
||||||
{ $values { "seq" "a resizable mutable sequence" } }
|
{ $values { "seq" "a resizable mutable sequence" } }
|
||||||
|
@ -1382,7 +1382,7 @@ ARTICLE: "sequences-access" "Accessing sequence elements"
|
||||||
{ $subsection first2 }
|
{ $subsection first2 }
|
||||||
{ $subsection first3 }
|
{ $subsection first3 }
|
||||||
{ $subsection first4 }
|
{ $subsection first4 }
|
||||||
{ $see-also nth peek } ;
|
{ $see-also nth last } ;
|
||||||
|
|
||||||
ARTICLE: "sequences-add-remove" "Adding and removing sequence elements"
|
ARTICLE: "sequences-add-remove" "Adding and removing sequence elements"
|
||||||
"Adding elements:"
|
"Adding elements:"
|
||||||
|
@ -1579,7 +1579,6 @@ ARTICLE: "sequences-destructive" "Destructive operations"
|
||||||
|
|
||||||
ARTICLE: "sequences-stacks" "Treating sequences as stacks"
|
ARTICLE: "sequences-stacks" "Treating sequences as stacks"
|
||||||
"The classical stack operations, modifying a sequence in place:"
|
"The classical stack operations, modifying a sequence in place:"
|
||||||
{ $subsection peek }
|
|
||||||
{ $subsection push }
|
{ $subsection push }
|
||||||
{ $subsection pop }
|
{ $subsection pop }
|
||||||
{ $subsection pop* }
|
{ $subsection pop* }
|
||||||
|
|
|
@ -626,7 +626,7 @@ PRIVATE>
|
||||||
[ 0 swap copy ] keep
|
[ 0 swap copy ] keep
|
||||||
] new-like ;
|
] new-like ;
|
||||||
|
|
||||||
: peek ( seq -- elt ) [ length 1 - ] [ nth ] bi ;
|
: last ( seq -- elt ) [ length 1 - ] [ nth ] bi ;
|
||||||
|
|
||||||
: pop* ( seq -- ) [ length 1 - ] [ shorten ] bi ;
|
: pop* ( seq -- ) [ length 1 - ] [ shorten ] bi ;
|
||||||
|
|
||||||
|
@ -821,7 +821,7 @@ PRIVATE>
|
||||||
[ rest ] [ first-unsafe ] bi ;
|
[ rest ] [ first-unsafe ] bi ;
|
||||||
|
|
||||||
: unclip-last ( seq -- butlast last )
|
: unclip-last ( seq -- butlast last )
|
||||||
[ but-last ] [ peek ] bi ;
|
[ but-last ] [ last ] bi ;
|
||||||
|
|
||||||
: unclip-slice ( seq -- rest-slice first )
|
: unclip-slice ( seq -- rest-slice first )
|
||||||
[ rest-slice ] [ first-unsafe ] bi ; inline
|
[ rest-slice ] [ first-unsafe ] bi ; inline
|
||||||
|
@ -852,7 +852,7 @@ PRIVATE>
|
||||||
[ find-last ] (map-find) ; inline
|
[ find-last ] (map-find) ; inline
|
||||||
|
|
||||||
: unclip-last-slice ( seq -- butlast-slice last )
|
: unclip-last-slice ( seq -- butlast-slice last )
|
||||||
[ but-last-slice ] [ peek ] bi ; inline
|
[ but-last-slice ] [ last ] bi ; inline
|
||||||
|
|
||||||
: <flat-slice> ( seq -- slice )
|
: <flat-slice> ( seq -- slice )
|
||||||
dup slice? [ { } like ] when
|
dup slice? [ { } like ] when
|
||||||
|
|
|
@ -75,7 +75,7 @@ M: string string-lines
|
||||||
but-last-slice [
|
but-last-slice [
|
||||||
"\r" ?tail drop "\r" split
|
"\r" ?tail drop "\r" split
|
||||||
] map
|
] map
|
||||||
] keep peek "\r" split suffix concat
|
] keep last "\r" split suffix concat
|
||||||
] [
|
] [
|
||||||
1array
|
1array
|
||||||
] if ;
|
] if ;
|
||||||
|
|
|
@ -62,7 +62,7 @@ IN: vectors.tests
|
||||||
[ ] [ V{ 1 5 } "funny-stack" get push ] unit-test
|
[ ] [ V{ 1 5 } "funny-stack" get push ] unit-test
|
||||||
[ ] [ V{ 2 3 } "funny-stack" get push ] unit-test
|
[ ] [ V{ 2 3 } "funny-stack" get push ] unit-test
|
||||||
[ V{ 2 3 } ] [ "funny-stack" get pop ] unit-test
|
[ V{ 2 3 } ] [ "funny-stack" get pop ] unit-test
|
||||||
[ V{ 1 5 } ] [ "funny-stack" get peek ] unit-test
|
[ V{ 1 5 } ] [ "funny-stack" get last ] unit-test
|
||||||
[ V{ 1 5 } ] [ "funny-stack" get pop ] unit-test
|
[ V{ 1 5 } ] [ "funny-stack" get pop ] unit-test
|
||||||
[ "funny-stack" get pop ] must-fail
|
[ "funny-stack" get pop ] must-fail
|
||||||
[ "funny-stack" get pop ] must-fail
|
[ "funny-stack" get pop ] must-fail
|
||||||
|
|
|
@ -39,7 +39,7 @@ PRIVATE>
|
||||||
|
|
||||||
: vocab-dir+ ( vocab str/f -- path )
|
: vocab-dir+ ( vocab str/f -- path )
|
||||||
[ vocab-name "." split ] dip
|
[ vocab-name "." split ] dip
|
||||||
[ [ dup peek ] dip append suffix ] when*
|
[ [ dup last ] dip append suffix ] when*
|
||||||
"/" join ;
|
"/" join ;
|
||||||
|
|
||||||
: find-vocab-root ( vocab -- path/f )
|
: find-vocab-root ( vocab -- path/f )
|
||||||
|
|
|
@ -193,7 +193,7 @@ TUPLE: ambiguous-use-error words ;
|
||||||
|
|
||||||
: qualified-search ( name manifest -- word/f )
|
: qualified-search ( name manifest -- word/f )
|
||||||
qualified-vocabs>>
|
qualified-vocabs>>
|
||||||
(vocab-search) 0 = [ drop f ] [ peek ] if ;
|
(vocab-search) 0 = [ drop f ] [ last ] if ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ SYMBOL: commands
|
||||||
if ;
|
if ;
|
||||||
DEFER: check-status
|
DEFER: check-status
|
||||||
: quit-game ( vector -- ) drop "you're a quitter" print ;
|
: quit-game ( vector -- ) drop "you're a quitter" print ;
|
||||||
: quit? ( vector -- t/f ) peek "quit" = ;
|
: quit? ( vector -- t/f ) last "quit" = ;
|
||||||
: end-game ( vector -- )
|
: end-game ( vector -- )
|
||||||
dup victory?
|
dup victory?
|
||||||
[ drop "You WON!" ]
|
[ drop "You WON!" ]
|
||||||
|
|
|
@ -83,7 +83,7 @@ GENERIC: element-binary-read ( length type -- object )
|
||||||
get-state element>> pop ; inline
|
get-state element>> pop ; inline
|
||||||
|
|
||||||
: peek-scope ( -- ht )
|
: peek-scope ( -- ht )
|
||||||
get-state scope>> peek ; inline
|
get-state scope>> last ; inline
|
||||||
|
|
||||||
: read-elements ( -- )
|
: read-elements ( -- )
|
||||||
read-element-type
|
read-element-type
|
||||||
|
@ -136,7 +136,7 @@ M: bson-not-eoo element-read ( type -- cont? )
|
||||||
read-int32 drop
|
read-int32 drop
|
||||||
get-state
|
get-state
|
||||||
[scope-changer] change-scope
|
[scope-changer] change-scope
|
||||||
scope>> peek ; inline
|
scope>> last ; inline
|
||||||
|
|
||||||
M: bson-object element-data-read ( type -- object )
|
M: bson-object element-data-read ( type -- object )
|
||||||
(object-data-read) ;
|
(object-data-read) ;
|
||||||
|
|
|
@ -495,7 +495,7 @@ ERROR: name-error name ;
|
||||||
: fully-qualified ( name -- name )
|
: fully-qualified ( name -- name )
|
||||||
{
|
{
|
||||||
{ [ dup empty? ] [ "." append ] }
|
{ [ dup empty? ] [ "." append ] }
|
||||||
{ [ dup peek CHAR: . = ] [ ] }
|
{ [ dup last CHAR: . = ] [ ] }
|
||||||
{ [ t ] [ "." append ] }
|
{ [ t ] [ "." append ] }
|
||||||
}
|
}
|
||||||
cond ;
|
cond ;
|
||||||
|
|
|
@ -21,7 +21,7 @@ SYMBOL: tagstack
|
||||||
|
|
||||||
: closing-tag? ( string -- ? )
|
: closing-tag? ( string -- ? )
|
||||||
[ f ]
|
[ f ]
|
||||||
[ { [ first CHAR: / = ] [ peek CHAR: / = ] } 1|| ] if-empty ;
|
[ { [ first CHAR: / = ] [ last CHAR: / = ] } 1|| ] if-empty ;
|
||||||
|
|
||||||
: <tag> ( name attributes closing? -- tag )
|
: <tag> ( name attributes closing? -- tag )
|
||||||
tag new
|
tag new
|
||||||
|
|
|
@ -65,7 +65,7 @@ IRC: rpl-nick-collision "436" nickname : comment ;
|
||||||
PREDICATE: channel-mode < mode name>> first "#&" member? ;
|
PREDICATE: channel-mode < mode name>> first "#&" member? ;
|
||||||
PREDICATE: participant-mode < channel-mode parameter>> ;
|
PREDICATE: participant-mode < channel-mode parameter>> ;
|
||||||
PREDICATE: ctcp < privmsg
|
PREDICATE: ctcp < privmsg
|
||||||
trailing>> { [ length 1 > ] [ first 1 = ] [ peek 1 = ] } 1&& ;
|
trailing>> { [ length 1 > ] [ first 1 = ] [ last 1 = ] } 1&& ;
|
||||||
PREDICATE: action < ctcp trailing>> rest "ACTION" head? ;
|
PREDICATE: action < ctcp trailing>> rest "ACTION" head? ;
|
||||||
|
|
||||||
M: rpl-names post-process-irc-message ( rpl-names -- )
|
M: rpl-names post-process-irc-message ( rpl-names -- )
|
||||||
|
|
|
@ -25,7 +25,7 @@ CONSTANT: random-rotation-angle $[ pi 20 / ]
|
||||||
|
|
||||||
: (random-segments) ( segments n -- segments )
|
: (random-segments) ( segments n -- segments )
|
||||||
dup 0 > [
|
dup 0 > [
|
||||||
[ dup peek random-segment over push ] dip 1- (random-segments)
|
[ dup last random-segment over push ] dip 1- (random-segments)
|
||||||
] [ drop ] if ;
|
] [ drop ] if ;
|
||||||
|
|
||||||
CONSTANT: default-segment-radius 1
|
CONSTANT: default-segment-radius 1
|
||||||
|
|
|
@ -45,7 +45,7 @@ builder "BUILDERS" {
|
||||||
SYMBOLS: host-name target-os target-cpu message message-arg ;
|
SYMBOLS: host-name target-os target-cpu message message-arg ;
|
||||||
|
|
||||||
: parse-args ( command-line -- )
|
: parse-args ( command-line -- )
|
||||||
dup peek message-arg set
|
dup last message-arg set
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
[ host-name set ]
|
[ host-name set ]
|
||||||
|
|
|
@ -5,7 +5,7 @@ IN: math.vectors.homogeneous
|
||||||
: (homogeneous-xyz) ( h -- xyz )
|
: (homogeneous-xyz) ( h -- xyz )
|
||||||
1 head* ; inline
|
1 head* ; inline
|
||||||
: (homogeneous-w) ( h -- w )
|
: (homogeneous-w) ( h -- w )
|
||||||
peek ; inline
|
last ; inline
|
||||||
|
|
||||||
: h+ ( a b -- c )
|
: h+ ( a b -- c )
|
||||||
2dup [ (homogeneous-w) ] bi@ over =
|
2dup [ (homogeneous-w) ] bi@ over =
|
||||||
|
|
|
@ -50,7 +50,7 @@ HINTS: count-digits fixnum ;
|
||||||
|
|
||||||
: (find-unusual-terms) ( n seq -- seq/f )
|
: (find-unusual-terms) ( n seq -- seq/f )
|
||||||
[ [ arithmetic-terms ] with map ] keep
|
[ [ arithmetic-terms ] with map ] keep
|
||||||
'[ _ [ peek ] dip member? ] find nip ;
|
'[ _ [ last ] dip member? ] find nip ;
|
||||||
|
|
||||||
: find-unusual-terms ( seq -- seq/? )
|
: find-unusual-terms ( seq -- seq/? )
|
||||||
unclip-slice over (find-unusual-terms) [
|
unclip-slice over (find-unusual-terms) [
|
||||||
|
|
|
@ -75,7 +75,7 @@ INSTANCE: rollover immutable-sequence
|
||||||
] { } make nip ; inline
|
] { } make nip ; inline
|
||||||
|
|
||||||
: most-frequent ( seq -- elt )
|
: most-frequent ( seq -- elt )
|
||||||
frequency-analysis sort-values keys peek ;
|
frequency-analysis sort-values keys last ;
|
||||||
|
|
||||||
: crack-key ( seq key-length -- key )
|
: crack-key ( seq key-length -- key )
|
||||||
[ " " decrypt ] dip group but-last-slice
|
[ " " decrypt ] dip group but-last-slice
|
||||||
|
|
|
@ -41,10 +41,10 @@ IN: project-euler.116
|
||||||
[ length swap - 1- ] keep ?nth 0 or ;
|
[ length swap - 1- ] keep ?nth 0 or ;
|
||||||
|
|
||||||
: next ( colortile seq -- )
|
: next ( colortile seq -- )
|
||||||
[ nth* ] [ peek + ] [ push ] tri ;
|
[ nth* ] [ last + ] [ push ] tri ;
|
||||||
|
|
||||||
: ways ( length colortile -- permutations )
|
: ways ( length colortile -- permutations )
|
||||||
V{ 1 } clone [ [ next ] 2curry times ] keep peek 1- ;
|
V{ 1 } clone [ [ next ] 2curry times ] keep last 1- ;
|
||||||
|
|
||||||
: (euler116) ( length -- permutations )
|
: (euler116) ( length -- permutations )
|
||||||
3 [1,b] [ ways ] with sigma ;
|
3 [1,b] [ ways ] with sigma ;
|
||||||
|
|
|
@ -31,7 +31,7 @@ IN: project-euler.117
|
||||||
[ 4 short tail* sum ] keep push ;
|
[ 4 short tail* sum ] keep push ;
|
||||||
|
|
||||||
: (euler117) ( n -- m )
|
: (euler117) ( n -- m )
|
||||||
V{ 1 } clone tuck [ next ] curry times peek ;
|
V{ 1 } clone tuck [ next ] curry times last ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ IN: project-euler.164
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: next-keys ( key -- keys )
|
: next-keys ( key -- keys )
|
||||||
[ peek ] [ 10 swap sum - ] bi [ 2array ] with map ;
|
[ last ] [ 10 swap sum - ] bi [ 2array ] with map ;
|
||||||
|
|
||||||
: next-table ( assoc -- assoc )
|
: next-table ( assoc -- assoc )
|
||||||
H{ } clone swap
|
H{ } clone swap
|
||||||
|
|
Loading…
Reference in New Issue