On May 26, 2005, at 2:43 PM, Thomas F. Burdick wrote:
Marco Antoniotti writes:
As an aside, any Prolog implementation needs a good unification routine.
Now, you also want a good unification routine that does CL objects properly.
So you cannot help but using the CL-UNIFICATION package from http://common-lisp.net/project/cl-unification
I know it is a shameless plug, but you simply cannot avoid it :)
Shameless but well timed, I hadn't realized that your cl-unification goes through slot accessors. Very nice.
Yep. That was the whole point of the exercise.
In the next version you will be able to do something like
(unify #T(protocol t count-elements ?c get-minimum ?m) #S(tree <list of semi-opaque slots>)) or (unify #T(protocol enum:enumerations current ?x next 42) #<ENUMERATION ....>)
where TREE can be manipulated by the functions COUNT-ELEMENTS and GET-MINUMUM and ENUMERATION, NEXT and CURRENT are part of the (shameless plug) CL-ENUMERATION library for common-lisp.net.
Cheers -- Marco Antoniotti http://bioinformatics.nyu.edu NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th FL fax. +1 - 212 - 998 3484 New York, NY, 10003, U.S.A.