/usr/share/axiom-20170501/src/algebra/DIOPS.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 42 43 44 45 46 47 | )abbrev category DIOPS DictionaryOperations
++ Author: Michael Monagan; revised by Manuel Bronstein and Richard Jenks
++ Date Created: August 87 through August 88
++ Date Last Updated: April 1991
++ Description:
++ This category is a collection of operations common to both
++ categories \spadtype{Dictionary} and \spadtype{MultiDictionary}
DictionaryOperations(S) : Category == SIG where
S : SetCategory
SIG ==> Join(BagAggregate S, Collection(S)) with
dictionary : () -> %
++ dictionary()$D creates an empty dictionary of type D.
dictionary : List S -> %
++ dictionary([x,y,...,z]) creates a dictionary consisting of
++ entries \axiom{x,y,...,z}.
if % has finiteAggregate then
remove_! : (S,%) -> %
++ remove!(x,d) destructively changes dictionary d by removing
++ all entries y such that \axiom{y = x}.
remove_! : (S->Boolean,%) -> %
++ remove!(p,d) destructively changes dictionary d by removeing
++ all entries x such that \axiom{p(x)} is true.
select_! : (S->Boolean,%) -> %
++ select!(p,d) destructively changes dictionary d by removing
++ all entries x such that \axiom{p(x)} is not true.
add
construct l == dictionary l
dictionary() == empty()
if % has finiteAggregate then
copy d == dictionary parts d
coerce(s:%):OutputForm ==
prefix("dictionary"@String :: OutputForm,
[x::OutputForm for x in parts s])
|