Sorry, I posted too early:
I fiddled around a little and got the following:
(defun $test (a b) (list (list '%test a b)))
(defun edges (g) (cadddar g))
(defun vertices (g) (caddar g))
(displa-def %test disptest)
(defun disptest (val res)
(let ((tmp (dimension-match (vertices val)
(push-string "test(" res))))
(setq tmp (dimension-match (edges val) (push-string "," tmp)))
(push-string ")" tmp)))
This looks ugly, but it works...
Remains one question: Is it ok to store all the information as tags? when
are the tags erased - especially in the case
((%hypergraph props) )
i.e. empty cdr
and how can I find "my" tag in the list of tags?
I still have to think about subst, ev, and friends... Maybe there is a way
to have the stuff which is subst'able or ev'able in the cdr.
Are the tags *always* cleared if the cdr changes *somehow*? Then I could
just keep edges and vertices in the cdr and in the properties.
Unfortunately, I couldn't control which information should be kept then.
Or could I? Is it possible to specify a function that should be called
whenever the cdr changes?
Thanks a lot, Martin