Hi Tomas,
thinking about it, I probably wrote nonsense yesterday:
> If you have a function 'rankClass' which returns the depth where a class
> in the hierarchy is located
>
> (de rankClass (Cls)
> ...
The depth does not matter, right?
Instead, the top-level base classes must be compared (you used
'subclass?' respectively 'isa' after all). And, it looks like 'NIL's
must be greater than anything else.
So a function that converts a list like
((Cls1) (Cls2))
to
(Top1 Top2)
and
((Cls1) NIL)
to
(Top1 T)
should do.
This could be done simply with
(by
'((Lst)
(mapcar
'((L)
(or
(not L) # Make 'T' from 'NIL'
(prog # Else top level class
(while (type (last L))
(setq L @) )
(last L) ) ) )
(car Lst) )
sort
Table )
This assumes that 'Table' is of the form
(
(((+Asteroid) (+Asteroid)) (X Y) (prinl "aa"))
...
)
so that '(car Lst)' is '((+Asteroid) (+Asteroid))'.
What do you think?
Cheers,
- Alex
--
UNSUBSCRIBE: mailto:[email protected]?subject=unsubscribe