/usr/share/axiom-20170501/src/algebra/DIAGG.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 | )abbrev category DIAGG Dictionary
++ Author: Michael Monagan; revised by Manuel Bronstein and Richard Jenks
++ Date Created: August 87 through August 88
++ Date Last Updated: April 1991
++ Description:
++ A dictionary is an aggregate in which entries can be inserted,
++ searched for and removed. Duplicates are thrown away on insertion.
++ This category models the usual notion of dictionary which involves
++ large amounts of data where copying is impractical.
++ Principal operations are thus destructive (non-copying) ones.
Dictionary(S) : Category == SIG where
S : SetCategory
SIG ==> DictionaryOperations S
add
dictionary l ==
d := dictionary()
for x in l repeat insert_!(x, d)
d
if % has finiteAggregate then
select_!(f, t) == remove_!((x:S):Boolean +-> not f(x), t)
s = t ==
eq?(s,t) => true
#s ^= #t => false
_and/[member?(x, t) for x in parts s]
remove_!(f:S->Boolean, t:%) ==
for m in parts t repeat if f m then remove_!(m, t)
t
|