RosettaCodeData/Task/Object-serialization/PicoLisp/object-serialization-1.l

31 lines
429 B
Plaintext

(class +Point)
# x y
(dm T (X Y)
(=: x (or X 0))
(=: y (or Y 0)) )
(dm print> ()
(prinl "Point " (: x) "," (: y)) )
(class +Circle +Point)
# r
(dm T (X Y R)
(super X Y)
(=: r (or R 0)) )
(dm print> ()
(prinl "Circle " (: x) "," (: y) "," (: r)) )
(setq
P (new '(+Point) 3 4)
C (new '(+Circle) 10 10 5) )
(print> P)
(print> C)
(out "objects.dat"
(pr (val P) (getl P))
(pr (val C) (getl C)) )