Hello,
I've been tinkering with the defstruct code.
defstruct (foo (a, b, c));
x : new (foo);
x at a evaluates to x at a when field a is not bound to anything in particular.
x at a;
=> x at a
Instances of structures defined by defstruct are displayed with
foo=bar notation in 2-d display. But 1-d output doesn't show
that because the equal sign is not recognized in input (and the
1-d output is supposed to be what could be input).
x at a : 123;
x at b : xyz;
x;
=> foo(a = 123, b = xyz, c)
grind (x);
=> foo(123,xyz,c)$
Individual fields in an instance can be killed.
kill (x at a);
x;
=> foo(a, b = xyz, c)
defstruct & kill maintain structures as an infolist (like functions or values).
structures;
=> [foo(a, b, c)]
kill (foo);
structures;
=> []
I've committed changes to cvs for this stuff.
If you have any opinions for or against I would be interested
to hear about it.
HTH
Robert