DIRECTORY Atom, Rope, IO, AlgebraClasses, Basics; AlgebraClassesImpl: CEDAR PROGRAM IMPORTS Atom, Rope EXPORTS AlgebraClasses = BEGIN OPEN AlgebraClasses; defaultStructureEqualityTest: PUBLIC StructureEqualityTest = { IF thisStructure = otherStructure THEN RETURN[TRUE]; RETURN[Rope.Equal[thisStructure.class.printName[thisStructure], otherStructure.class.printName[otherStructure] ] ]; }; StructureCategoryToRope: PUBLIC PROC [category: Category] RETURNS [rope: Rope.ROPE]~ { SELECT category FROM lattice => RETURN["Lattice"]; group => RETURN["Group"]; ring => RETURN["Ring"]; field => RETURN["Field"]; vectorSpace => RETURN["Vector Space"]; algebra => RETURN["Algebra"]; divisionAlgebra => RETURN["Division Algebra"]; ENDCASE; }; GetProperty: PUBLIC PROC [structure: Structure, prop: ATOM] RETURNS [val: REF _ NIL] ~ { RETURN[Atom.GetPropFromList[structure.class.propList, prop] ]; }; defaultElementOfProc: PUBLIC ElementOfProc = { IF NOT structure.class.structureEqual[structure, item.structure] THEN RETURN[FALSE]; RETURN[ TRUE ] }; END. žAlgebraClassesImpl.mesa Last Edited by: Arnon, June 10, 1985 4:19:22 pm PDT Structure Operation Types and Operations Structure Element Operation Types สา˜Jšœ™J™3J˜šฯk ˜ J˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜—head2šะblœœ˜!Jšœ ˜Jšœ˜—Jšœœ˜J˜headšฯn(™(codešœœ˜>Jšœ œœœ˜4Jšœm˜sJ˜J˜—š Ÿœœœœ œ˜Všœ ˜Mšœ œ ˜Mšœ œ ˜Mšœœ ˜Mšœ œ ˜Mšœœ˜&Mšœ œ ˜Mšœœ˜.Mšœ˜—M˜M˜—šŸ œœœœœœœ˜XMšœ8˜>M˜M˜—J˜—šŸ!™!šœœ˜.Jš œœ;œœœ˜TJšœœ˜J˜J˜—J˜—J˜Jšœ˜—…—Ž