Subject: Re: bug#22812: 24.5: elisp manual about pcase

From: Michael Heerdegen <[email-masked]>
Date: Fri, 26 Feb 2016 14:01:10 +0100

Zhaohui Li <[email-masked]> writes:

> The "10.2.1: Pattern matching case statement" in Emacs Lisp Referrence
> Manual has a problem.  The second example in manual is:
>
>
>  (defun evaluate (exp env)
>  (pcase exp
>  (`(add ,x ,y) (+ (evaluate x env) (evaluate y env)))
>  (`(call ,fun ,arg) (funcall (evaluate fun env) (evaluate arg env)))
>  (`(fn ,arg ,body) (lambda (val)
>  (evaluate body (cons (cons arg val) env))))
>  ((pred numberp) exp)
>  ((pred symbolp) (cdr (assq exp env)))
>  (_ (error "Unknown expression %S" exp))))
>
>
> The problem is about the third case: `(fn , arg ,body).
> I test this function with:
>
>
>  (evaluate '(call
>  (fn x (add 1 x))
>  2)
>  nil)
>
>
> emcas eval it with throw errors. 

Works for me.  Did you enable lexical binding when testing?

Regards,

Michael.