]> gitweb.factorcode.org Git - factor.git/blob - basis/persistent/sequences/sequences.factor
8f9cbe83c8204a6fd1ff4a13844bca296e1900a7
[factor.git] / basis / persistent / sequences / sequences.factor
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: sequences kernel ;
4 IN: persistent.sequences
5
6 GENERIC: ppush ( val seq -- seq' )
7
8 M: sequence ppush swap suffix ;
9
10 GENERIC: ppop ( seq -- seq' )
11
12 M: sequence ppop but-last ;
13
14 GENERIC: new-nth ( val i seq -- seq' )
15
16 M: sequence new-nth clone [ set-nth ] keep ;
17
18 : changed-nth ( i seq quot -- seq' )
19     [ [ nth ] dip call ] [ drop new-nth ] 3bi ; inline