% A memory store % From http://www.info.ucl.ac.be/people/PVR/ds/booksuppl.oz %--- declare fun {NewStore} D={NewDictionary} C={NewCell 0} proc {Put K X} if {Not {Dictionary.member D K}} then C:=@C+1 end D.K:=X end fun {Get K} D.K end fun {Size} @C end in storeobject(put:Put get:Get size:Size) end proc {Put S K X} {S.put K X} end fun {Get S K} {S.get K} end fun {Size S} {S.size} end %--- declare S = {NewStore} {S.put 1 a} {Browse {S.get 1}} {Browse {S.size}} {Browse {Size S}} {Put S 2 [1 1]} {Browse {Get S 2}} {Browse {Size S}}