Object serialization: Difference between revisions

Content added Content deleted
(→‎{{header|Racket}}: actual implementation added)
Line 1,530: Line 1,530:
<lang racket>(require racket/serialize)</lang>
<lang racket>(require racket/serialize)</lang>
The rest is covered by the Racket language.
The rest is covered by the Racket language.

(I have elided the paths in objects.dat -- you wouldn't be able to use them anyway)


<lang racket>#lang racket
<lang racket>#lang racket
Line 1,605: Line 1,607:


{{out}}
{{out}}
<pre>The original family: John + Jane -> Jack, Joan
<pre>Language: racket [custom]; memory limit: 512 MB.
The original family: John + Jane -> Jack, Joan
The cloned family: John + Jane -> Jack, Joan
The cloned family: John + Jane -> Jack, Joan


objects.dat contains ----
objects.dat contains ----
((3) 3 ((#"C:\\Users\\Tim\\Dropbox\\rosettacode\\Serializable-Objects.rkt" . deserialize-info:person%) (#"C:\\Users\\Tim\\Dropbox\\rosettacode\\Serializable-Objects.rkt" . deserialize-info:nuclear-family%) (#"C:\\Users\\Tim\\Dropbox\\rosettacode\\Serializable-Objects.rkt" . deserialize-info:parent%)) 4 ((q . #(())) #&0 (0 (c (? . 0) c "Joan" c (c (? . 1)))) (c (? . 1) c (? . 2))) ((1 0 (c (? . 0) c "Jack" c (c (? . 2))))) (1 (c (? . 0) c (2 (c (v! (c (? . 0) q "John" ())) c (? . 3))) c (2 (c (v! (c (? . 0) q "Jane" ())) c (? . 3))) c (? . 3))))
((3) 3 ((#"C:\\[...]\\Serializable-Objects.rkt" . deserialize-info:person%) (#"C:\\[...]\\Serializable-Objects.rkt" . deserialize-info:nuclear-family%) (#"C:\\[...]\\Serializable-Objects.rkt" . deserialize-info:parent%)) 4 ((q . #(())) #&0 (0 (c (? . 0) c "Joan" c (c (? . 1)))) (c (? . 1) c (? . 2))) ((1 0 (c (? . 0) c "Jack" c (c (? . 2))))) (1 (c (? . 0) c (2 (c (v! (c (? . 0) q "John" ())) c (? . 3))) c (2 (c (v! (c (? . 0) q "Jane" ())) c (? . 3))) c (? . 3))))
-------------------
-------------------