Hi
it looks like this is a bug in MATCH-CASE. It needs to be fixed.
The following works as advertised.
(defun factorial (x) (matching () ((0 x) 1) ((#T(number ?n) x) (* ?n (factorial (1- ?n)))) ))
There are still a few rough edges. Patches welcome.
Cheers -- Marco
On Jan 29, 2006, at 9:01 AM, Kilian Sprotte wrote:
Am 27.01.2006 um 16:06 schrieb Marco Antoniotti:
Hi
the problem with the documentation was fixed and the library was fixed as well.
The system is working when used. I have no statistics about its use, but I am very happy to keep pushing it.
I have not had much time recently, and if anybody wants commit privileges, I'd be happy to share them.
Cheers
Marco
Hi Marco,
I am sorry, but this is what I get with a fresh CVS co on openmcl:
UNIFICATION> (defun factorial (x) (match-case (x) (0 1) (#T(number ?n) (* ?n (factorial (1- ?n)))) (otherwise (error "Incorrect match for ~S." x)))) ;Compiler warnings : ; Unused lexical variable #:UNIFICATION-ENV-1082, in FACTORIAL. ; Undefined function OTHERWISE, in FACTORIAL. FACTORIAL UNIFICATION> (factorial 5) Incorrect match for 4. [Condition of type SIMPLE-ERROR]
Restarts: 0: [ABORT-REQUEST] Abort handling SLIME request. 1: [ABORT-BREAK] Reset this process 2: [ABORT] Kill this process
Backtrace: 0: (FACTORIAL #<SVAR CCL::%HANDLERS% 60 #x8037D5E>) 1: (FACTORIAL '(FACTORIAL 5)) 2: (CCL::CALL-CHECK-REGS 'FACTORIAL) --more--
Is it possible, I haven't got the newest version? The lates ChangeLog entry is from 2005-05-19.
Thanks for any more help, if you have time,
-Kilian
cl-unification-devel site list cl-unification-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/cl-unification-devel
-- Marco Antoniotti http://bioinformatics.nyu.edu/~marcoxa 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.