/usr/share/axiom-20170501/src/algebra/GSTBL.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 | )abbrev domain GSTBL GeneralSparseTable
++ Author: Stephen M. Watt
++ Date Created: 1986
++ Date Last Updated: June 21, 1991
++ Description:
++ A sparse table has a default entry, which is returned if no other
++ value has been explicitly stored for a key.
GeneralSparseTable(Key, Entry, Tbl, dent) : SIG == CODE where
Key : SetCategory
Entry : SetCategory
Tbl : TableAggregate(Key, Entry)
dent : Entry
SIG ==> TableAggregate(Key, Entry)
CODE ==> Tbl add
Rep := Tbl
elt(t:%, k:Key) ==
(u := search(k, t)$Rep) case "failed" => dent
u::Entry
setelt(t:%, k:Key, e:Entry) ==
e = dent => (remove_!(k, t); e)
setelt(t, k, e)$Rep
search(k:Key, t:%) ==
(u := search(k, t)$Rep) case "failed" => dent
u
|