Better dlists behavior
parent
42e97d4629
commit
bc5bc22072
|
@ -78,7 +78,8 @@ PRIVATE>
|
||||||
|
|
||||||
: pop-front ( dlist -- obj )
|
: pop-front ( dlist -- obj )
|
||||||
dup dlist-front [
|
dup dlist-front [
|
||||||
dlist-node-next
|
dup dlist-node-next
|
||||||
|
f rot set-dlist-node-next
|
||||||
f over set-prev-when
|
f over set-prev-when
|
||||||
swap set-dlist-front
|
swap set-dlist-front
|
||||||
] 2keep dlist-node-obj
|
] 2keep dlist-node-obj
|
||||||
|
@ -87,13 +88,13 @@ PRIVATE>
|
||||||
: pop-front* ( dlist -- ) pop-front drop ;
|
: pop-front* ( dlist -- ) pop-front drop ;
|
||||||
|
|
||||||
: pop-back ( dlist -- obj )
|
: pop-back ( dlist -- obj )
|
||||||
[
|
dup dlist-back [
|
||||||
dlist-back dup dlist-node-prev f over set-next-when
|
dup dlist-node-prev
|
||||||
] keep
|
f rot set-dlist-node-prev
|
||||||
[ set-dlist-back ] keep
|
f over set-next-when
|
||||||
[ normalize-front ] keep
|
swap set-dlist-back
|
||||||
dec-length
|
] 2keep dlist-node-obj
|
||||||
dlist-node-obj ;
|
swap [ normalize-front ] keep dec-length ;
|
||||||
|
|
||||||
: pop-back* ( dlist -- ) pop-back drop ;
|
: pop-back* ( dlist -- ) pop-back drop ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue