/usr/share/axiom-20170501/src/algebra/KDAGG.spad is in axiom-source 20170501-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | )abbrev category KDAGG KeyedDictionary
++ Author: Michael Monagan; revised by Manuel Bronstein and Richard Jenks
++ Date Created: August 87 through August 88
++ Date Last Updated: April 1991
++ Description:
++ A keyed dictionary is a dictionary of key-entry pairs for which there is
++ a unique entry for each key.
KeyedDictionary(Key, Entry) : Category == SIG where
Key : SetCategory
Entry : SetCategory
SIG ==> Dictionary Record(key:Key,entry:Entry) with
key? : (Key, %) -> Boolean
++ key?(k,t) tests if k is a key in table t.
keys : % -> List Key
++ keys(t) returns the list the keys in table t.
remove_! : (Key, %) -> Union(Entry,"failed")
++ remove!(k,t) searches the table t for the key k removing
++ (and return) the entry if there.
++ If t has no such key, \axiom{remove!(k,t)} returns "failed".
search : (Key, %) -> Union(Entry,"failed")
++ search(k,t) searches the table t for the key k,
++ returning the entry stored in t for key k.
++ If t has no such key, \axiom{search(k,t)} returns "failed".
add
key?(k, t) == search(k, t) case Entry
member?(p, t) ==
r := search(p.key, t)
r case Entry and r::Entry = p.entry
if % has finiteAggregate then
keys t == [x.key for x in parts t]
|