<> <> <> <<>> DIRECTORY Atom USING [DottedPairNode, PropList], ImmutablePropList USING []; ImmutablePropListImpl: CEDAR PROGRAM EXPORTS ImmutablePropList ~ BEGIN <> <<>> PropList: TYPE ~ Atom.PropList; <<>> Put: PUBLIC PROC[propList: PropList, key: REF, val: REF] RETURNS[PropList] ~ { RETURN[CONS[NEW[Atom.DottedPairNode _ [key: key, val: val]], propList]]; }; Get: PUBLIC PROC[propList: PropList, key: REF] RETURNS[val: REF] ~ { FOR list: PropList _ propList, list.rest UNTIL list=NIL DO IF list.first.key=key THEN RETURN[list.first.val]; ENDLOOP; RETURN[NIL]; }; Rem: PUBLIC PROC[propList: PropList, key: REF] RETURNS[PropList] ~ { RETURN[Put[propList, key, NIL]]; }; END.