n-based-assoc
N-based sequences
Next:<n-based-assoc> ( seq base -- n-based-assoc )


Vocabulary
sequences.n-based

Class description
An adaptor class that allows a sequence to be treated as an assoc with non-zero-based keys.

Examples
USING: assocs prettyprint kernel sequences.n-based ; IN: scratchpad : months ( -- assoc ) { "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December" } 1 <n-based-assoc> ; 10 months at .
"October"


See also
<n-based-assoc>

Definition
IN: sequences.n-based

TUPLE: n-based-assoc seq base ;


Methods
USING: accessors assocs kernel sequences.n-based
sequences.n-based.private ;

M: n-based-assoc >alist [ n-based-keys ] [ seq>> ] bi zip ;


USING: accessors assocs sequences sequences.n-based ;

M: n-based-assoc assoc-size seq>> length ;


USING: assocs kernel sequences sequences.n-based
sequences.n-based.private sequences.private ;

M: n-based-assoc at*
n-based@ 2dup bounds-check?
[ nth-unsafe t ] [ 2drop f f ] if ;


USING: accessors assocs sequences sequences.n-based ;

M: n-based-assoc clear-assoc seq>> delete-all ;


USING: assocs kernel sequences sequences.n-based
sequences.n-based.private ;

M: n-based-assoc delete-at [ f ] 2dip n-based@ set-nth ;


USING: assocs sequences sequences.n-based
sequences.n-based.private ;

M: n-based-assoc set-at n-based@ set-nth ;