Remove some usages of slip combinators from the core
parent
88b401b383
commit
1bbabcd5e1
|
@ -42,7 +42,7 @@ SYMBOL: previous
|
||||||
2drop
|
2drop
|
||||||
] [
|
] [
|
||||||
over previous get conjoin
|
over previous get conjoin
|
||||||
dup slip
|
[ call ] keep
|
||||||
[ nip (closure) ] curry assoc-each
|
[ nip (closure) ] curry assoc-each
|
||||||
] if ; inline recursive
|
] if ; inline recursive
|
||||||
|
|
||||||
|
|
|
@ -61,9 +61,8 @@ M: decoder stream-read1
|
||||||
: (read) ( n quot -- n string )
|
: (read) ( n quot -- n string )
|
||||||
over 0 <string> [
|
over 0 <string> [
|
||||||
[
|
[
|
||||||
slip over
|
over [ swapd set-nth-unsafe f ] [ 3drop t ] if
|
||||||
[ swapd set-nth-unsafe f ] [ 3drop t ] if
|
] curry compose find-integer
|
||||||
] 2curry find-integer
|
|
||||||
] keep ; inline
|
] keep ; inline
|
||||||
|
|
||||||
: finish-read ( n string -- string/f )
|
: finish-read ( n string -- string/f )
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
! Copyright (C) 2004, 2008 Slava Pestov.
|
! Copyright (C) 2004, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel.private slots.private math.private
|
USING: kernel.private slots.private math.private
|
||||||
classes.tuple.private ;
|
classes.tuple.private ;
|
||||||
|
@ -227,7 +227,7 @@ PRIVATE>
|
||||||
|
|
||||||
! Loops
|
! Loops
|
||||||
: loop ( pred: ( -- ? ) -- )
|
: loop ( pred: ( -- ? ) -- )
|
||||||
dup slip swap [ loop ] [ drop ] if ; inline recursive
|
[ call ] keep [ loop ] curry when ; inline recursive
|
||||||
|
|
||||||
: do ( pred body tail -- pred body tail )
|
: do ( pred body tail -- pred body tail )
|
||||||
over 3dip ; inline
|
over 3dip ; inline
|
||||||
|
|
|
@ -120,7 +120,7 @@ M: float fp-infinity? ( float -- ? )
|
||||||
|
|
||||||
: iterate-step ( i n quot -- i n quot )
|
: iterate-step ( i n quot -- i n quot )
|
||||||
#! Apply quot to i, keep i and quot, hide n.
|
#! Apply quot to i, keep i and quot, hide n.
|
||||||
swap [ 2dup 2slip ] dip swap ; inline
|
[ nip call ] 3keep ; inline
|
||||||
|
|
||||||
: iterate-next ( i n quot -- i' n quot ) [ 1+ ] 2dip ; inline
|
: iterate-next ( i n quot -- i' n quot ) [ 1+ ] 2dip ; inline
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ PRIVATE>
|
||||||
over 0 < [
|
over 0 < [
|
||||||
2drop f
|
2drop f
|
||||||
] [
|
] [
|
||||||
2dup 2slip rot [
|
[ call ] 2keep rot [
|
||||||
drop
|
drop
|
||||||
] [
|
] [
|
||||||
[ 1- ] dip find-last-integer
|
[ 1- ] dip find-last-integer
|
||||||
|
|
|
@ -416,7 +416,7 @@ PRIVATE>
|
||||||
over map-into ; inline
|
over map-into ; inline
|
||||||
|
|
||||||
: accumulate ( seq identity quot -- final newseq )
|
: accumulate ( seq identity quot -- final newseq )
|
||||||
swapd [ pick slip ] curry map ; inline
|
swapd [ [ call ] [ 2drop ] 3bi ] curry map ; inline
|
||||||
|
|
||||||
: 2each ( seq1 seq2 quot -- )
|
: 2each ( seq1 seq2 quot -- )
|
||||||
(2each) each-integer ; inline
|
(2each) each-integer ; inline
|
||||||
|
@ -825,7 +825,8 @@ PRIVATE>
|
||||||
[ but-last-slice ] [ peek ] bi ; inline
|
[ but-last-slice ] [ peek ] bi ; inline
|
||||||
|
|
||||||
: <flat-slice> ( seq -- slice )
|
: <flat-slice> ( seq -- slice )
|
||||||
dup slice? [ { } like ] when 0 over length rot <slice> ;
|
dup slice? [ { } like ] when
|
||||||
|
[ drop 0 ] [ length ] [ ] tri <slice> ;
|
||||||
inline
|
inline
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
@ -866,7 +867,8 @@ PRIVATE>
|
||||||
|
|
||||||
: supremum ( seq -- n ) [ ] [ max ] map-reduce ;
|
: supremum ( seq -- n ) [ ] [ max ] map-reduce ;
|
||||||
|
|
||||||
: sigma ( seq quot -- n ) [ 0 ] 2dip [ rot slip + ] curry each ; inline
|
: sigma ( seq quot -- n )
|
||||||
|
[ 0 ] 2dip [ dip + ] curry [ swap ] prepose each ; inline
|
||||||
|
|
||||||
: count ( seq quot -- n ) [ 1 0 ? ] compose sigma ; inline
|
: count ( seq quot -- n ) [ 1 0 ? ] compose sigma ; inline
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue