[Openmcl-devel] pattern matching

Daniel Weinreb dlw at itasoftware.com
Mon Dec 6 22:38:56 UTC 2010


Greg,

This may be of no importance, but: unification is
a very powerful mechanism.  If one is using
cl-unification to do simple things like
what defmacro does, is it reasonably fast?

-- Dan

Greg Pfeil wrote:
> On 4 Dec 2010, at 8:02, Taoufik Dachraoui wrote:
>
>   
>> Hello
>>
>> I wrote a matching pattern function and would like to share in order
>> to improve it (remove the compiler warnings for example, see below).
>>
>> I started with the destruc function found in onLisp book by Paul Graham.
>>     
>
> I don't recall if it has any type restrictions, but I tend to use CL Unification (http://common-lisp.net/project/cl-unification/) for pattern matching stuff.
>
>   
>> Any matching symbol x can be typed  and must be of the form (:type x #'name)
>> where name is a boolean function with one argument (eg. numberp, consp, symbolp, 
>> atom, ...)
>>     
>
> Why not have the form be (:type var typename), like (:type x '(integer 0 9))? Then you get much finer control without having to define unary functions for every type you care about. Should be able to just replace (funcall ,(third pat) (car ,seq)) with (typep (car ,seq) ,(third pat)) and you're golden.
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clozure.com/pipermail/openmcl-devel/attachments/20101206/8d502a97/attachment.html>


More information about the Openmcl-devel mailing list