What Lawrence says is not strictly correct. Actually you can use the -> and ~> interchangeably except on lists, where they behave differently. With a list, if you use -> then you are treating the list as a disembodied property list where you have a list with a dummy value first (often nil) followed by key/value pairs where the key is a symbol. So for example:
dpl=list(nil)
dpl->colour="red"
dpl->shape="circle"
then:
> dpl
(nil shape "circle" colour "red")
> dpl->shape
"circle"
> dpl->shape="square"
"square"
> dpl->shape
"square"
> dpl
(nil shape "square" colour "red")
If you use ~> on a list, then it effectively does a foreach mapcar over the list, applying the ~> operator on each member of the list and returning a list of the results. This is as Lawrence mentioned above. So doing:
cv~>nets~>name
is like doing:
foreach(mapcar net cv~>nets net~>name)
but obviously shorter and more to the point.
So ~> can be used for windows, menu structures, form structures, tables and so on - just not disembodied property lists.
Regards (and sorry to be pedantic!),
Andrew.