factor/basis/persistent/sequences/sequences.factor

20 lines
451 B
Factor

! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: sequences kernel ;
IN: persistent.sequences
GENERIC: ppush ( val seq -- seq' )
M: sequence ppush swap suffix ;
GENERIC: ppop ( seq -- seq' )
M: sequence ppop but-last ;
GENERIC: new-nth ( val i seq -- seq' )
M: sequence new-nth clone [ set-nth ] keep ;
: changed-nth ( i seq quot -- seq' )
[ [ nth ] dip call ] [ drop new-nth ] 3bi ; inline