This function is useful for multiplying monomials or adding polynomials. We illustrate that with a simple-minded implmentation of the free abelian group on the set of strings, representing an element as a type of hash table that associates coefficients to strings.
i1 : Free = new Type of HashTable o1 = Free o1 : Type |
i2 : p = new Free from { "x" => 2, "y" => 3, "cat" => 5 }
o2 = Free{cat => 5}
x => 2
y => 3
o2 : Free
|
i3 : q = new Free from { "x" => 100, "y" => 200, "dog" => 7 }
o3 = Free{dog => 7}
x => 100
y => 200
o3 : Free
|
i4 : Free + Free := (p,q) -> merge(p,q,plus); |
i5 : p+q
o5 = Free{cat => 5}
dog => 7
x => 102
y => 203
o5 : Free
|