source files: x01v.[ch] xflv.[ch] x32v.[ch] xcsy.[ch] xgrl.[ch]
(SEND <ary> :GET <:PROPERTY> [<default-value>]) (SEND <ary> :SET <:PROPERTY> <value>) (SEND <ary> :REMPROP <:PROPERTY>) (SEND <ary> :PROPERTY-LIST-LENGTH) (SEND <ary> :PROPERTY-LIST-NTH <fix:index> [<default-value>])
These two propertylist calls have nothing to do with the normal functionality of arrays and relations. They exist purely to allow the user to easily hang extra information on arrays for his own purposes. For example, you might keep track of who created a given relation by doing a (SEND <ary> :SET :CREATED-BY "Jane du Pont")
If :GET does not find the requested property, it returns <default-value> if one was provided, otherwise signals an error.
:REMPROP removes the given property from the propertylist, returning (:PROPERTY . <val>) if the property was successfully removed, else NIL.
:PROPERTY-LIST-LENGTH and :PROPERTY-LIST-NTH are provided to allow iteration through all properties on object, the latter's <default-value> works just as on :GET.