"Stefan-W. Hahn" <[email protected]> writes:
> What I don't understand is, if I expand the pcase with (macrostep-expand) I
> get the following:
>
> ,----
> | (let (res)
> | (dolist (pair (buffer-local-variables))
> | (if
> | (consp pair)
> | (let*
> | ((x
> | (car pair))
> | (x
> | (cdr pair)))
> | (let
> | ((val x)
> | (var x))
> | (push
> | (list 'set var val)
> | res)))
> | nil))
> | res)
> `----
>
> And this is obviously wrong.
This is not obviously wrong. You may be thinking that both `x' symbols
are the same, but they are not. E.g.,
(let ((s1 (make-symbol "x"))
(s2 (make-symbol "x")))
(list (list s1 s2) (eq s1 s2)))
=>
((x x) nil)
Regards,