31 lines
990 B
Factor
31 lines
990 B
Factor
! Copyright (C) 2007 Daniel Ehrenberg
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: assocs delegate deques io sequences sequences.private
|
|
sets ;
|
|
IN: delegate.protocols
|
|
|
|
PROTOCOL: sequence-protocol
|
|
like new-sequence new-resizable nth nth-unsafe
|
|
set-nth set-nth-unsafe length set-length
|
|
lengthen ;
|
|
|
|
PROTOCOL: assoc-protocol
|
|
at* assoc-size >alist set-at assoc-clone-like
|
|
delete-at clear-assoc new-assoc assoc-like ;
|
|
|
|
PROTOCOL: deque-protocol
|
|
push-front* push-back* peek-front* peek-back* pop-front*
|
|
pop-back* delete-node deque-member? clear-deque deque-empty? ;
|
|
|
|
PROTOCOL: set-protocol
|
|
adjoin ?adjoin in? delete ?delete set-like fast-set members
|
|
union intersect intersects? diff subset? set= duplicates
|
|
all-unique? null? cardinality clear-set ;
|
|
|
|
PROTOCOL: input-stream-protocol
|
|
stream-read1 stream-read-unsafe stream-read-partial-unsafe
|
|
stream-readln stream-read-until stream-contents* ;
|
|
|
|
PROTOCOL: output-stream-protocol
|
|
stream-flush stream-write1 stream-write stream-nl ;
|