Handbook
Glossary
Double-linked lists
Factor handbook
»
The language
»
Collections
Prev:
Deques
Next:
Search deques
A double-linked list is the canonical implementation of a
deque
.
Double-linked lists form a class:
dlist
dlist?
( object -- ? )
Constructing a double-linked list:
<dlist>
( -- list )
Double-linked lists support all the operations of the deque protocol (
Deques
) as well as the following.
Iterating over elements:
dlist-each
( ... dlist quot: ( ... value -- ... ) -- ... )
dlist-find
( ... dlist quot: ( ... value -- ... ? ) -- ... obj/f ? )
dlist-filter
( ... dlist quot: ( ... value -- ... ? ) -- ... dlist' )
dlist-any?
( ... dlist quot: ( ... value -- ... ? ) -- ... ? )
Deleting a node matching a predicate:
delete-node-if*
( ... dlist quot: ( ... value -- ... ? ) -- ... obj/f ? )
delete-node-if
( ... dlist quot: ( ... value -- ... ? ) -- ... obj/f )
Search deque implementation:
<hashed-dlist>
( -- search-deque )