From unknown Wed Jun 25 03:55:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Dec 2013 09:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 16238 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 16238@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.138787645421009 (code B ref -1); Tue, 24 Dec 2013 09:15:02 +0000 Received: (at submit) by debbugs.gnu.org; 24 Dec 2013 09:14:14 +0000 Received: from localhost ([127.0.0.1]:37710 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvO45-0005Sm-KF for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:14 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38421) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvO42-0005Sd-Mm for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VvO3w-0007zj-AU for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:10 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57680) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VvO3w-0007zf-7H for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40117) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VvO3q-0002PK-JP for bug-gnu-emacs@gnu.org; Tue, 24 Dec 2013 04:14:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VvO3l-0007xZ-1q for bug-gnu-emacs@gnu.org; Tue, 24 Dec 2013 04:13:58 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:34419) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VvO3k-0007xV-Pd for bug-gnu-emacs@gnu.org; Tue, 24 Dec 2013 04:13:52 -0500 Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 47F93207E9 for ; Tue, 24 Dec 2013 04:13:52 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute2.internal (MEProxy); Tue, 24 Dec 2013 04:13:52 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=from:to:subject:date:message-id :mime-version:content-type; s=smtpout; bh=0FdKBifrOzOtz/R3rxGsU7 waT7M=; b=mzh2YgoIJfJBqhbKuUQb801NiODeoZ3XafWrNsiTvb3n1+w1I6S9lq A6keXFYg9zetM5zdPTeWKdeNCG/2xlJdnyXej1PB1GKe7rkMT7WWCelhq4es8Xvo 7L5AqoD6ciZngYcJ9c5BTJY2vYwT2/wYBck0imnxkLilKCHNYUXi0= X-Sasl-enc: 1JlAnj3FcQdrEfODg2t5hl1D3y+qqSTFNEM0jY6+Lrdv 1387876431 Received: from thinkpad.tsdh.org (unknown [91.67.164.26]) by mail.messagingengine.com (Postfix) with ESMTPA id D0760C00E80 for ; Tue, 24 Dec 2013 04:13:51 -0500 (EST) From: Tassilo Horn User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux) Date: Tue, 24 Dec 2013 10:13:50 +0100 Message-ID: <87ob46vcfl.fsf@thinkpad.tsdh.org> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.5 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.5 (-----) I'm just reading through the `pcase' docs in the info manual. The simple expression language example has a small bug. The `env' parameter is missing at the location marked below: --8<---------------cut here---------------start------------->8--- (defun evaluate (exp env) (pcase exp (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) (`(call ,fun ,arg) (funcall (evaluate fun) (evaluate arg env))) `--- HERE! (`(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)))) --8<---------------cut here---------------end--------------->8--- But even then, I can't get `fn' forms working: ELISP> (evaluate '(fn x (add 1 x)) nil) (lambda (val) (evaluate body (cons (cons arg val) env))) But shouldn't `arg' be substituted with 'x and `body' with '(add 1 x)? Now when I call the function, I get a void-variable error whereas I should get 3: ELISP> (evaluate '(call (fn x (add 1 x)) 2) nil) *** Eval error *** Symbol's value as variable is void: body Strange enough, the `call' pattern which uses the same pattern syntax seems to work, though: ELISP> (evaluate '(call foo 2) '((foo . (lambda (x) (+ 1 x))))) 3 (#o3, #x3, ?\C-c) In any case, it would be good if the docs would contain a sample program defined in the simple expression language. Getting the syntax right just from the patterns is not enough. For example, it's not obvious that `fn' forms take only one symbol as `arg' whereas you'd usually expect an argument list (which might be restricted to length 1). In GNU Emacs 24.3.50.2 (x86_64-pc-linux-gnu, GTK+ Version 3.8.7) of 2013-12-22 on thinkpad Bzr revision: eliz@gnu.org-20131222183138-zlzn9zzpz1hwd110 Windowing system distributor `The X.Org Foundation', version 11.0.11499904 System Description: NAME=Gentoo Configured using: `configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --disable-silent-rules --disable-dependency-tracking --program-suffix=-emacs-24-vcs --infodir=/usr/share/info/emacs-24-vcs --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp --with-gameuser=games --without-compress-info --with-file-notification=gfile --disable-acl --with-dbus --with-gnutls --with-gpm --without-hesiod --without-kerberos --without-kerberos5 --with-xml2 --without-selinux --without-wide-int --with-zlib --with-sound=alsa --with-x --without-ns --without-gconf --with-gsettings --with-toolkit-scroll-bars --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm --with-imagemagick --with-xft --with-libotf --with-m17n-flt --with-x-toolkit=gtk3 GENTOO_PACKAGE=app-editors/emacs-vcs-24.3.9999 EBZR_BRANCH=trunk EBZR_REVNO=115696 'CFLAGS=-march=native -pipe -g3 -ggdb' CPPFLAGS= 'LDFLAGS=-Wl,-O1 -Wl,--as-needed'' Important settings: value of $LC_COLLATE: C value of $LC_MONETARY: de_DE.utf8 value of $LC_NUMERIC: de_DE.utf8 value of $LC_TIME: de_DE.utf8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: helm-match-plugin-mode: t helm-occur-match-plugin-mode: t highlight-parentheses-mode: t global-company-mode: t company-mode: t eldoc-mode: t shell-dirtrack-mode: t paredit-mode: t highlight-symbol-mode: t global-edit-server-edit-mode: t outline-minor-mode: t recentf-mode: t global-subword-mode: t subword-mode: t savehist-mode: t show-paren-mode: t icomplete-mode: t minibuffer-depth-indicate-mode: t tooltip-mode: t electric-pair-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t From unknown Wed Jun 25 03:55:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Dec 2013 09:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16238 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 16238@debbugs.gnu.org Received: via spool by 16238-submit@debbugs.gnu.org id=B16238.138787783523629 (code B ref 16238); Tue, 24 Dec 2013 09:38:02 +0000 Received: (at 16238) by debbugs.gnu.org; 24 Dec 2013 09:37:15 +0000 Received: from localhost ([127.0.0.1]:37753 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvOQM-000690-S1 for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:37:15 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:40582) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvOQJ-00068q-Pq for 16238@debbugs.gnu.org; Tue, 24 Dec 2013 04:37:13 -0500 Received: from compute4.internal (compute4.nyi.mail.srv.osa [10.202.2.44]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 6D64320EAB for <16238@debbugs.gnu.org>; Tue, 24 Dec 2013 04:37:08 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Tue, 24 Dec 2013 04:37:08 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=from:to:subject:references:date :in-reply-to:message-id:mime-version:content-type; s=smtpout; bh=h4EFDzebiS5ag6R6UfIG6g4j6d0=; b=PnQbIbTF8zuPJNTwCKAHSvLQtia9 cSaCMBV5v2BoQwWLL/osaR3fFvoJOIKY65sa/vvfbveorhuvJza45GT0EnnZGWwG Df8w+LHDaSElujt4zg4398ZKR9nPgeG56kGMZGyutbgwSuB4ZkdImSIAUHg4NS1P IrZU6AImeNAvv9k= X-Sasl-enc: IxUf8joJNGlOD3eeaeGMKOQjSLyecZeo6ir7DB8ee4JG 1387877827 Received: from thinkpad.tsdh.org (unknown [91.67.164.26]) by mail.messagingengine.com (Postfix) with ESMTPA id ABFFCC00E93 for <16238@debbugs.gnu.org>; Tue, 24 Dec 2013 04:37:07 -0500 (EST) From: Tassilo Horn References: <87ob46vcfl.fsf@thinkpad.tsdh.org> Date: Tue, 24 Dec 2013 10:37:06 +0100 In-Reply-To: <87ob46vcfl.fsf@thinkpad.tsdh.org> (Tassilo Horn's message of "Tue, 24 Dec 2013 10:13:50 +0100") Message-ID: <87ha9yvbct.fsf@thinkpad.tsdh.org> User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Tassilo Horn writes: > ELISP> (evaluate '(fn x (add 1 x)) nil) > (lambda > (val) > (evaluate body > (cons > (cons arg val) > env))) > > But shouldn't `arg' be substituted with 'x and `body' with '(add 1 x)? It seems the `lambda' is the problem that prevents substitution of arg and body. By doing some kinda strange quoting I can get it right, but IMHO that shouldn't be needed: --8<---------------cut here---------------start------------->8--- (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)))) --8<---------------cut here---------------end--------------->8--- ELISP> (evaluate '(fn x (add 1 x)) nil) (lambda (val) (evaluate '(add 1 x) (cons (cons 'x val) env))) ELISP> (evaluate '(call (fn x (add 1 x)) 3) nil) 4 (#o4, #x4, ?\C-d) Bye, Tassilo From unknown Wed Jun 25 03:55:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Dec 2013 09:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16238 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tassilo Horn Cc: 16238@debbugs.gnu.org Received: via spool by 16238-submit@debbugs.gnu.org id=B16238.138787890925473 (code B ref 16238); Tue, 24 Dec 2013 09:56:01 +0000 Received: (at 16238) by debbugs.gnu.org; 24 Dec 2013 09:55:09 +0000 Received: from localhost ([127.0.0.1]:37776 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvOhg-0006cm-1P for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:55:08 -0500 Received: from mout.web.de ([212.227.15.3]:55984) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvOhc-0006ca-0s for 16238@debbugs.gnu.org; Tue, 24 Dec 2013 04:55:04 -0500 Received: from drachen.dragon ([90.187.87.191]) by smtp.web.de (mrweb102) with ESMTPA (Nemesis) id 0MXHbN-1W0ZbU3eez-00WEcR for <16238@debbugs.gnu.org>; Tue, 24 Dec 2013 10:55:02 +0100 From: Michael Heerdegen References: <87ob46vcfl.fsf@thinkpad.tsdh.org> Date: Tue, 24 Dec 2013 10:55:00 +0100 In-Reply-To: <87ob46vcfl.fsf@thinkpad.tsdh.org> (Tassilo Horn's message of "Tue, 24 Dec 2013 10:13:50 +0100") Message-ID: <8738li3763.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:pF229b0rq7nIkTXMoWuFjztOafwIPyAH/fIqatLsvqcYLnOgfyf mNshvuRQTPm0Wr5H+L4sx8052arGCLuY06iDNjitL6/sZhk1LcRVaH2zqC/fVjtM0PtOFdF YW3597O5Xanw/jAcBB6RoET2HOFJlMlt5MIq2zAccKos8mktxqhBj221wb4m3PUWDULqMpO wPLst4RJu9bVQVJQNXaBw== X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Tassilo Horn writes: > But shouldn't `arg' be substituted with 'x and `body' with '(add 1 x)? > Now when I call the function, I get a void-variable error whereas I > should get 3: > > ELISP> (evaluate '(call (fn x (add 1 x)) 2) nil) > *** Eval error *** Symbol's value as variable is void: body I think the example is designed for lexical-binding. That should be mentioned. It is not so nice anyway, since people will likely C-x C-e the example and then it won't work. Michael. From unknown Wed Jun 25 03:55:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Dec 2013 14:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16238 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tassilo Horn Cc: 16238@debbugs.gnu.org Received: via spool by 16238-submit@debbugs.gnu.org id=B16238.13878968237793 (code B ref 16238); Tue, 24 Dec 2013 14:54:01 +0000 Received: (at 16238) by debbugs.gnu.org; 24 Dec 2013 14:53:43 +0000 Received: from localhost ([127.0.0.1]:38340 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvTMd-00021Z-Ck for submit@debbugs.gnu.org; Tue, 24 Dec 2013 09:53:43 -0500 Received: from chene.dit.umontreal.ca ([132.204.246.20]:44252) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvTMb-00021J-7Q for 16238@debbugs.gnu.org; Tue, 24 Dec 2013 09:53:41 -0500 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id rBOErZ1w024311; Tue, 24 Dec 2013 09:53:36 -0500 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 34A73AE086; Tue, 24 Dec 2013 09:53:35 -0500 (EST) From: Stefan Monnier Message-ID: References: <87ob46vcfl.fsf@thinkpad.tsdh.org> Date: Tue, 24 Dec 2013 09:53:35 -0500 In-Reply-To: <87ob46vcfl.fsf@thinkpad.tsdh.org> (Tassilo Horn's message of "Tue, 24 Dec 2013 10:13:50 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4802=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4802> : inlines <357> : streams <1096298> : uri <1633819> X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) > (defun evaluate (exp env) > (pcase exp > (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) > (`(call ,fun ,arg) (funcall (evaluate fun) (evaluate arg env))) > `--- HERE! Indeed, feel free to fix it. > But shouldn't `arg' be substituted with 'x and `body' with '(add 1 x)? No, the code is meant for lexical-binding. Stefan From unknown Wed Jun 25 03:55:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Dec 2013 15:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16238 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Stefan Monnier Cc: Michael Heerdegen , 16238@debbugs.gnu.org Received: via spool by 16238-submit@debbugs.gnu.org id=B16238.138789927913310 (code B ref 16238); Tue, 24 Dec 2013 15:35:01 +0000 Received: (at 16238) by debbugs.gnu.org; 24 Dec 2013 15:34:39 +0000 Received: from localhost ([127.0.0.1]:39194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvU0E-0003Sb-9K for submit@debbugs.gnu.org; Tue, 24 Dec 2013 10:34:38 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:39338) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvU0B-0003SP-CF for 16238@debbugs.gnu.org; Tue, 24 Dec 2013 10:34:36 -0500 Received: from compute6.internal (compute6.nyi.mail.srv.osa [10.202.2.46]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id E757D20B71 for <16238@debbugs.gnu.org>; Tue, 24 Dec 2013 10:34:33 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute6.internal (MEProxy); Tue, 24 Dec 2013 10:34:33 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:references:date :in-reply-to:message-id:mime-version:content-type; s=smtpout; bh=Jq315Y+SzDyHRQ9k1yeR9yKND3o=; b=ndhG/f/0j3DD1H0mTkod+Hzs1dKp nWOXnefmVfaSq7ICHoVl592/8U8bViRbrW7VROmjv78RtZts4RkCD+hq/DhtFsmS Cdtiug1uy2YI5jVv3G4zsrP8qR+dfdtLd+fMQlRvK8ljI2x6jlKmsDLIz4qnJimm 2BTKWC70+iED+Zw= X-Sasl-enc: ulu7C6R3qxBvJjSthEwQY1dijqGMUXBENm47A2NiZnqZ 1387899273 Received: from thinkpad.tsdh.org (unknown [91.67.164.26]) by mail.messagingengine.com (Postfix) with ESMTPA id CAA85C00E8A; Tue, 24 Dec 2013 10:34:32 -0500 (EST) From: Tassilo Horn References: <87ob46vcfl.fsf@thinkpad.tsdh.org> Date: Tue, 24 Dec 2013 16:34:31 +0100 In-Reply-To: (Stefan Monnier's message of "Tue, 24 Dec 2013 09:53:35 -0500") Message-ID: <874n5yuut4.fsf@thinkpad.tsdh.org> User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Stefan Monnier writes: >> (defun evaluate (exp env) >> (pcase exp >> (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) >> (`(call ,fun ,arg) (funcall (evaluate fun) (evaluate arg env))) >> `--- HERE! > > Indeed, feel free to fix it. Done. >> But shouldn't `arg' be substituted with 'x and `body' with '(add 1 >> x)? > > No, the code is meant for lexical-binding. Ok, I see. I've also mentioned that in the docs, though I guess you can refine that comment to be more specific. Bye, Tassilo From unknown Wed Jun 25 03:55:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong Resent-From: Glenn Morris Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 24 Dec 2013 20:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16238 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tassilo Horn Cc: Michael Heerdegen , 16238@debbugs.gnu.org, Stefan Monnier Received: via spool by 16238-submit@debbugs.gnu.org id=B16238.138791599614909 (code B ref 16238); Tue, 24 Dec 2013 20:14:02 +0000 Received: (at 16238) by debbugs.gnu.org; 24 Dec 2013 20:13:16 +0000 Received: from localhost ([127.0.0.1]:39665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvYLr-0003sO-PQ for submit@debbugs.gnu.org; Tue, 24 Dec 2013 15:13:15 -0500 Received: from fencepost.gnu.org ([208.118.235.10]:37960) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvYLp-0003sG-Nn for 16238@debbugs.gnu.org; Tue, 24 Dec 2013 15:13:14 -0500 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1VvYLo-00014E-UO; Tue, 24 Dec 2013 15:13:12 -0500 From: Glenn Morris References: <87ob46vcfl.fsf@thinkpad.tsdh.org> <874n5yuut4.fsf@thinkpad.tsdh.org> X-Spook: Ansar al-Islam Ron Brown Medco digicash FTS2000 KGB LLNL X-Ran: +EHS]@3vD4~NrpC6^`l~pLU\&F(?sT~cDdY\$NMS{Wn~)x=e"r/'XlaX;a'l57C4H!Wj\7 X-Hue: white X-Attribution: GM Date: Tue, 24 Dec 2013 15:13:12 -0500 In-Reply-To: <874n5yuut4.fsf@thinkpad.tsdh.org> (Tassilo Horn's message of "Tue, 24 Dec 2013 16:34:31 +0100") Message-ID: <0da9fqrorr.fsf@fencepost.gnu.org> User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -5.6 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.6 (-----) Tassilo Horn wrote: >> No, the code is meant for lexical-binding. > > Ok, I see. I've also mentioned that in the docs, though I guess you can > refine that comment to be more specific. That _example_ assumes lexical binding. _Pcase itself_ does not require lexical binding. (You've written in the manual that it does.) From unknown Wed Jun 25 03:55:47 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 25 Dec 2013 09:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16238 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Glenn Morris Cc: Michael Heerdegen , 16238@debbugs.gnu.org, Stefan Monnier Received: via spool by 16238-submit@debbugs.gnu.org id=B16238.138796291617416 (code B ref 16238); Wed, 25 Dec 2013 09:16:01 +0000 Received: (at 16238) by debbugs.gnu.org; 25 Dec 2013 09:15:16 +0000 Received: from localhost ([127.0.0.1]:40565 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvkYe-0004WB-1G for submit@debbugs.gnu.org; Wed, 25 Dec 2013 04:15:16 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:59213) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvkYb-0004SL-Ef for 16238@debbugs.gnu.org; Wed, 25 Dec 2013 04:15:14 -0500 Received: from compute6.internal (compute6.nyi.mail.srv.osa [10.202.2.46]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id D7107205C9; Wed, 25 Dec 2013 04:15:12 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute6.internal (MEProxy); Wed, 25 Dec 2013 04:15:12 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:references:date :in-reply-to:message-id:mime-version:content-type; s=smtpout; bh=sv3rtdw7GVR6tsmMzibSJwCaOjk=; b=RKF7biSEfietfaT0w4jZuOddSBDZ KkvUudl6vKlzk2q8XkfTdnB3BWY6/J4Yv68VarDlpegj2Cb2SBOZ0iaQ0onmNFoT iDhq0dUCokag0tN/TyX+WprNU02gjC8kDqw7GJfYsmtUeNh4ipFdFebx/9NVkoyP 2/JMg+6cWJRDF/U= X-Sasl-enc: Dh0E6wZ8/9Pk2RQ1ktz8thGp0Vq7rFSgB9XK+RaNz4IK 1387962912 Received: from thinkpad.tsdh.org (unknown [91.67.164.26]) by mail.messagingengine.com (Postfix) with ESMTPA id 147EB6801C1; Wed, 25 Dec 2013 04:15:11 -0500 (EST) From: Tassilo Horn References: <87ob46vcfl.fsf@thinkpad.tsdh.org> <874n5yuut4.fsf@thinkpad.tsdh.org> <0da9fqrorr.fsf@fencepost.gnu.org> Date: Wed, 25 Dec 2013 10:15:10 +0100 In-Reply-To: <0da9fqrorr.fsf@fencepost.gnu.org> (Glenn Morris's message of "Tue, 24 Dec 2013 15:13:12 -0500") Message-ID: <87k3etjnq9.fsf@thinkpad.tsdh.org> User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Glenn Morris writes: >>> No, the code is meant for lexical-binding. >> >> Ok, I see. I've also mentioned that in the docs, though I guess you >> can refine that comment to be more specific. > > That _example_ assumes lexical binding. _Pcase itself_ does not > require lexical binding. (You've written in the manual that it does.) Ah, yes. I'm so used to lexical binding that I can't see a closure when it's immediately in front of me. I've corrected the sentence and moved it directly after the `evaluate' code. Bye, Tassilo From unknown Wed Jun 25 03:55:47 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Tassilo Horn Subject: bug#16238: closed (Re: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong) Message-ID: References: <87ob44u27a.fsf@thinkpad.tsdh.org> <87ob46vcfl.fsf@thinkpad.tsdh.org> X-Gnu-PR-Message: they-closed 16238 X-Gnu-PR-Package: emacs Reply-To: 16238@debbugs.gnu.org Date: Wed, 25 Dec 2013 20:05:03 +0000 Content-Type: multipart/mixed; boundary="----------=_1388001903-13856-1" This is a multi-part message in MIME format... ------------=_1388001903-13856-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #16238: 24.3.50; pcase docs (and possibly pcase) wrong which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 16238@debbugs.gnu.org. --=20 16238: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D16238 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1388001903-13856-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 16238-done) by debbugs.gnu.org; 25 Dec 2013 20:04:48 +0000 Received: from localhost ([127.0.0.1]:41855 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvuhE-0003ao-64 for submit@debbugs.gnu.org; Wed, 25 Dec 2013 15:04:48 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:37818) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvuhB-0003ae-LN for 16238-done@debbugs.gnu.org; Wed, 25 Dec 2013 15:04:46 -0500 Received: from compute5.internal (compute5.nyi.mail.srv.osa [10.202.2.45]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 9CF32208B4 for <16238-done@debbugs.gnu.org>; Wed, 25 Dec 2013 15:04:43 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute5.internal (MEProxy); Wed, 25 Dec 2013 15:04:43 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=from:to:subject:references:date :in-reply-to:message-id:mime-version:content-type; s=smtpout; bh=rWW1POykvh2+aO8PkX9GZRQRnD8=; b=Xig8xMGZOvv5cmlEWz3NlImCQfwa EmhwpfcxT+bjYQRednxy/4GegMOGT5f/5SqLr/xgVQVCguoWdZpB27xWwxALng6O TbaK3UFWLP++uRRgi/fRcsIEgOUKZq5mqrr7WuLd34lCJy3QtC3rDCgK9k2MTJaS ITV2E/zfhX1cugc= X-Sasl-enc: ZyIym0YNQU7h02Q2LQbsy4d8j5d1+Lluu59qjNkO9OCq 1388001882 Received: from thinkpad.tsdh.org (unknown [91.67.164.26]) by mail.messagingengine.com (Postfix) with ESMTPA id 9D38C680087 for <16238-done@debbugs.gnu.org>; Wed, 25 Dec 2013 15:04:42 -0500 (EST) From: Tassilo Horn To: 16238-done@debbugs.gnu.org Subject: Re: bug#16238: 24.3.50; pcase docs (and possibly pcase) wrong References: <87ob46vcfl.fsf@thinkpad.tsdh.org> <874n5yuut4.fsf@thinkpad.tsdh.org> <0da9fqrorr.fsf@fencepost.gnu.org> <87k3etjnq9.fsf@thinkpad.tsdh.org> Date: Wed, 25 Dec 2013 21:04:41 +0100 In-Reply-To: <87k3etjnq9.fsf@thinkpad.tsdh.org> (Tassilo Horn's message of "Wed, 25 Dec 2013 10:15:10 +0100") Message-ID: <87ob44u27a.fsf@thinkpad.tsdh.org> User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 16238-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) Closing. ------------=_1388001903-13856-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 24 Dec 2013 09:14:14 +0000 Received: from localhost ([127.0.0.1]:37710 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvO45-0005Sm-KF for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:14 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38421) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VvO42-0005Sd-Mm for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:11 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VvO3w-0007zj-AU for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:10 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57680) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VvO3w-0007zf-7H for submit@debbugs.gnu.org; Tue, 24 Dec 2013 04:14:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40117) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VvO3q-0002PK-JP for bug-gnu-emacs@gnu.org; Tue, 24 Dec 2013 04:14:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VvO3l-0007xZ-1q for bug-gnu-emacs@gnu.org; Tue, 24 Dec 2013 04:13:58 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:34419) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VvO3k-0007xV-Pd for bug-gnu-emacs@gnu.org; Tue, 24 Dec 2013 04:13:52 -0500 Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 47F93207E9 for ; Tue, 24 Dec 2013 04:13:52 -0500 (EST) Received: from frontend1 ([10.202.2.160]) by compute2.internal (MEProxy); Tue, 24 Dec 2013 04:13:52 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=from:to:subject:date:message-id :mime-version:content-type; s=smtpout; bh=0FdKBifrOzOtz/R3rxGsU7 waT7M=; b=mzh2YgoIJfJBqhbKuUQb801NiODeoZ3XafWrNsiTvb3n1+w1I6S9lq A6keXFYg9zetM5zdPTeWKdeNCG/2xlJdnyXej1PB1GKe7rkMT7WWCelhq4es8Xvo 7L5AqoD6ciZngYcJ9c5BTJY2vYwT2/wYBck0imnxkLilKCHNYUXi0= X-Sasl-enc: 1JlAnj3FcQdrEfODg2t5hl1D3y+qqSTFNEM0jY6+Lrdv 1387876431 Received: from thinkpad.tsdh.org (unknown [91.67.164.26]) by mail.messagingengine.com (Postfix) with ESMTPA id D0760C00E80 for ; Tue, 24 Dec 2013 04:13:51 -0500 (EST) From: Tassilo Horn To: bug-gnu-emacs@gnu.org Subject: 24.3.50; pcase docs (and possibly pcase) wrong User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.50 (gnu/linux) Date: Tue, 24 Dec 2013 10:13:50 +0100 Message-ID: <87ob46vcfl.fsf@thinkpad.tsdh.org> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.5 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.5 (-----) I'm just reading through the `pcase' docs in the info manual. The simple expression language example has a small bug. The `env' parameter is missing at the location marked below: --8<---------------cut here---------------start------------->8--- (defun evaluate (exp env) (pcase exp (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) (`(call ,fun ,arg) (funcall (evaluate fun) (evaluate arg env))) `--- HERE! (`(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)))) --8<---------------cut here---------------end--------------->8--- But even then, I can't get `fn' forms working: ELISP> (evaluate '(fn x (add 1 x)) nil) (lambda (val) (evaluate body (cons (cons arg val) env))) But shouldn't `arg' be substituted with 'x and `body' with '(add 1 x)? Now when I call the function, I get a void-variable error whereas I should get 3: ELISP> (evaluate '(call (fn x (add 1 x)) 2) nil) *** Eval error *** Symbol's value as variable is void: body Strange enough, the `call' pattern which uses the same pattern syntax seems to work, though: ELISP> (evaluate '(call foo 2) '((foo . (lambda (x) (+ 1 x))))) 3 (#o3, #x3, ?\C-c) In any case, it would be good if the docs would contain a sample program defined in the simple expression language. Getting the syntax right just from the patterns is not enough. For example, it's not obvious that `fn' forms take only one symbol as `arg' whereas you'd usually expect an argument list (which might be restricted to length 1). In GNU Emacs 24.3.50.2 (x86_64-pc-linux-gnu, GTK+ Version 3.8.7) of 2013-12-22 on thinkpad Bzr revision: eliz@gnu.org-20131222183138-zlzn9zzpz1hwd110 Windowing system distributor `The X.Org Foundation', version 11.0.11499904 System Description: NAME=Gentoo Configured using: `configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --disable-silent-rules --disable-dependency-tracking --program-suffix=-emacs-24-vcs --infodir=/usr/share/info/emacs-24-vcs --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp --with-gameuser=games --without-compress-info --with-file-notification=gfile --disable-acl --with-dbus --with-gnutls --with-gpm --without-hesiod --without-kerberos --without-kerberos5 --with-xml2 --without-selinux --without-wide-int --with-zlib --with-sound=alsa --with-x --without-ns --without-gconf --with-gsettings --with-toolkit-scroll-bars --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm --with-imagemagick --with-xft --with-libotf --with-m17n-flt --with-x-toolkit=gtk3 GENTOO_PACKAGE=app-editors/emacs-vcs-24.3.9999 EBZR_BRANCH=trunk EBZR_REVNO=115696 'CFLAGS=-march=native -pipe -g3 -ggdb' CPPFLAGS= 'LDFLAGS=-Wl,-O1 -Wl,--as-needed'' Important settings: value of $LC_COLLATE: C value of $LC_MONETARY: de_DE.utf8 value of $LC_NUMERIC: de_DE.utf8 value of $LC_TIME: de_DE.utf8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: helm-match-plugin-mode: t helm-occur-match-plugin-mode: t highlight-parentheses-mode: t global-company-mode: t company-mode: t eldoc-mode: t shell-dirtrack-mode: t paredit-mode: t highlight-symbol-mode: t global-edit-server-edit-mode: t outline-minor-mode: t recentf-mode: t global-subword-mode: t subword-mode: t savehist-mode: t show-paren-mode: t icomplete-mode: t minibuffer-depth-indicate-mode: t tooltip-mode: t electric-pair-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t ------------=_1388001903-13856-1--