partial class MAP_INCL{ITP,ETP}
****
Partial class for MAPs


Ancestors
COMPARE{_}

Descendants
H_MAP{_,_} MAP{_,_}



Public


Features
stub aget(ind: ITP): ETP;
**** Return the target corresponding to index "ind"
stub aset(ind: ITP,e: ETP);
**** Set the target of index "ind" to "e"
count(v:ETP):INT
**** The number of elements that are `elt_eq' to `v'. Self may be void.
count_if( test:ROUT{ETP}:BOOL ):INT
**** The number of elements which satisfy `test'. Self may be void.
elt_eq(e1,e2:ETP):BOOL .. Included as elt_eq
**** The "less than" relation used in the sorting routines. Compares the object "id" by default. May be redefined in descendants.
elt_hash(e:ETP):INT .. Included as elt_hash
**** A hash value associated with an element. Must have the property that if "elt_eq(e1,e2)" then "elt_hash(e1)=elt_hash(e2)". Can be defined to always return 0, but many routines will then become quadratic. Uses object "id" by default. May be redefined in descendants.
elt_lt(e1,e2:ETP):BOOL .. Included as elt_lt
**** The "less than" relation used in the sorting routines. Compares the object "id" by default. May be redefined in descendants.
elt_nil: ETP .. Included as elt_nil
**** Return the nil value. If the element is under $NIL then return e.nil. Otherwise, return void
_
elt_str: STR
**** Prints out a string version of the array of the components that are under $STR, and their associated indices
equals(e: $RO_MAP{ITP,ETP}): BOOL
**** Returns true if all of "e"'s elements are equal to self's elts Ordering is an issue. Should be redefined to be more precise for particular descendants
every( test:ROUT{ETP}:BOOL ):BOOL
**** True if every element of self satisfies `test'. Self may be void.
has(e: ETP): BOOL
has_elt(e:ETP):BOOL
**** True if the self has an element which is `elt_eq' to `e'.
inds: ARRAY{ITP}
**** Return an index array which is the same size as self and is set to the values of the indices
is_elt_nil(e:ETP):BOOL .. Included as is_elt_nil
map(r:ROUT{ETP}:ETP)
**** Set each element of self to the result of applying `r' to it.
notany( test:ROUT{ETP}:BOOL ):BOOL
**** True if none of the elements of self satisfies `test'. Self may be void.
notevery( test:ROUT{ETP}:BOOL ):BOOL
**** True if not every element of self satisfies `test'. Self may be void.
permute_into( new_pos :$RO_MAP{ITP,ITP}, destination: $MAP{ITP,ETP})
**** Copy the entries from orig_arr into self using the permutation array "new_positions"
replace(o,n:ETP)
**** Replace elements that are `elt_eq' to `o' by `n' wherever it occurs
replace_if(test:ROUT{ETP}:BOOL, n:ETP)
**** Replace elements that satisfy `test' by `n'.
stub size: INT;
**** Return the number of elements in the map
some( test:ROUT{ETP}:BOOL ):BOOL
**** True if some element of self satisfies `test'. Self may be void.
str: STR
**** Prints out a string version of the array of the components that are under $STR, and their associated indices
test_if(test:ROUT{ETP}:BOOL,out ind: ITP, out elt: ETP):BOOL
**** Return true if an element satisfies test "test" Arg "ind" is set to the index of the element satisfying "test" Arg "elt" is set to the element satisfying "test"

Iters
stub elt!: ETP;
**** Yield the elements (targets) of the map
stub ind!: ITP;
**** Yield the indices (keys) of the map


Private

elt_str(e: ETP): STR
ind_str(i: ITP): STR

The Sather Home Page