[plt-scheme] match.ss performance
Robert Bruce Findler wrote:
> (let ([fail (lambda () (match:error ...))])
> (let ([x l])
> (if (pair? x)
> (let ([x2 (cdr x)])
> (if (pair? x2)
> (let ([x3 (cdr x2)])
> (if (pair? x3)
> (let ([x4 (cdr x3)])
> (if (pair? x4)
> (let ([x4 (cdr x4)])
> (if (null? x4)
> ((lambda (a4 a3 a2 a1) l)
> (car x4) (car x3) (car x2) (car
> x1)) (fail)))
> (fail)))
> (fail)))
> (fail)))
> (fail))))
Hm. Assuming that cdddar and friends are implemented entirely
in C, I would guess that the original version is faster in an
interpreter -- I won't bet on it though.
--
Jens Axel Søgaard