Dear all,
I need some advice on how to pickle a recursive data structure that may contain
cells.
I know that the Pickle module only works for stateless data, so I thought I'd
write a small conversion function that I call before the call to Pickle.save.
And a similar function to apply after Pickle.load.
The conversion function would look like this:
declare
CellMarker = 'unique-string-marking-cells'
fun {ConvertToStateless D}
if {Record.is D} then
{Record.map D ConvertToStateless}
elseif {Cell.is D} then
CellMarker#{ConvertToStateless @D}
else
D
end
end
The problem is that this function diverges on cyclic records, like
A = test(1:A)
in
{ConvertToStateless A}
Any idea how I could make this work for such records?
I guess I need to detect cycles in some way. Maybe there is some existing code
in the standard library that can show me the way?
Thank you for any hints,
Wolfgang
--
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users