From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Zhaohui Li Newsgroups: gmane.emacs.bugs Subject: bug#22812: 24.5: elisp manual about pcase Date: Fri, 26 Feb 2016 10:08:09 +0800 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=089e01161812408611052ca2c5eb X-Trace: ger.gmane.org 1456454122 22286 80.91.229.3 (26 Feb 2016 02:35:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 26 Feb 2016 02:35:22 +0000 (UTC) To: 22812@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Feb 26 03:35:13 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aZ8FL-00005l-O3 for geb-bug-gnu-emacs@m.gmane.org; Fri, 26 Feb 2016 03:35:11 +0100 Original-Received: from localhost ([::1]:46921 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZ8FH-0002JQ-S5 for geb-bug-gnu-emacs@m.gmane.org; Thu, 25 Feb 2016 21:35:07 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56575) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZ8FD-0002JB-D0 for bug-gnu-emacs@gnu.org; Thu, 25 Feb 2016 21:35:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aZ8FC-0006aR-Gs for bug-gnu-emacs@gnu.org; Thu, 25 Feb 2016 21:35:03 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:49400) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZ8FC-0006aN-DT for bug-gnu-emacs@gnu.org; Thu, 25 Feb 2016 21:35:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aZ8FC-0006LR-9I for bug-gnu-emacs@gnu.org; Thu, 25 Feb 2016 21:35:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Zhaohui Li Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 26 Feb 2016 02:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 22812 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.145645405824334 (code B ref -1); Fri, 26 Feb 2016 02:35:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 26 Feb 2016 02:34:18 +0000 Original-Received: from localhost ([127.0.0.1]:46527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aZ8ET-0006KQ-VV for submit@debbugs.gnu.org; Thu, 25 Feb 2016 21:34:18 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:60302) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aZ7pJ-00044V-HG for submit@debbugs.gnu.org; Thu, 25 Feb 2016 21:08:17 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aZ7pD-0007xw-IL for submit@debbugs.gnu.org; Thu, 25 Feb 2016 21:08:12 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:34380) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZ7pD-0007xs-F1 for submit@debbugs.gnu.org; Thu, 25 Feb 2016 21:08:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51272) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZ7pC-0007js-MC for bug-gnu-emacs@gnu.org; Thu, 25 Feb 2016 21:08:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aZ7pB-0007xg-UW for bug-gnu-emacs@gnu.org; Thu, 25 Feb 2016 21:08:10 -0500 Original-Received: from mail-ig0-x234.google.com ([2607:f8b0:4001:c05::234]:33526) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aZ7pB-0007xc-Nb for bug-gnu-emacs@gnu.org; Thu, 25 Feb 2016 21:08:09 -0500 Original-Received: by mail-ig0-x234.google.com with SMTP id y8so28391018igp.0 for ; Thu, 25 Feb 2016 18:08:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to; bh=ePsWRSRfBlHPRTE/tuqRr8uFCmWS7w7r1C9cHaCrIQo=; b=xKTIqVENX3SY5hiDegsU4Jd7r574U+JevUzWjr2r6UPh7OkCQ1SzogR6CVfLeuV6rM CeR6S87YF5TzmdvkytJQIW2TaI8QtIVKniKJtbmnDdEE63rO5+ZZm6zKLFxVU9A4j1NW jOTg8aJgaRxArfwbqbueJu/KfhbU7BEBujBV7OFCEErSMi5QIgScJWyytQVJgZ7oqsJj Jyi/TerCO8zFPJJDIXejhmECDJvlG4EDxyz4PJp5Qi3gMbOT2AYndDCVpRWMnIg0rxrL h1NRdJ8sCv/l0S/cHgIl1ucH19G/vx17zTdlQak+K+pc73m6e6KYwP3utl0r1kex6o8U p1Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=ePsWRSRfBlHPRTE/tuqRr8uFCmWS7w7r1C9cHaCrIQo=; b=cH5blcVbRkBni2eGwxAUWI9oUAwVDwRXPve6gsP2gJjevtw3GBgsbun8wMTXRcculJ Bae7yxoIKcpnzR8qNvAr+YKeXkdAGKfnrKgSQDTddX0TU8FQwrG/yBqp2z43/IzkjwZ7 DYQRGQYeBBbk+4aBD9MZu2ajweXN8BDVeW3y2XGWqyoBl6HOqoLhQxQD63fjc9CBXUci mStga06K/n9ynMEqRiemcuKA2xym62KqFeyclIIIPZcc+v3ZSjQOVBWUlw9t4uMQ8lPL ceGcW0+W8X8sdeKNE3QZPVn9NZdTSkTUcctnTHgSBfp8B24wm/MQgfhP+7xeL48MTKPH HjPA== X-Gm-Message-State: AD7BkJLlOy3YGvS7hRN6bMK8+C5z/NijuxRfrkZ7J9G3jc8QQeZo4bYpQ39TgfZVx8pu5wqeExw9S/IJmoSOgQ== X-Received: by 10.50.73.197 with SMTP id n5mr479599igv.66.1456452489214; Thu, 25 Feb 2016 18:08:09 -0800 (PST) Original-Received: by 10.107.9.215 with HTTP; Thu, 25 Feb 2016 18:08:09 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Mailman-Approved-At: Thu, 25 Feb 2016 21:34:17 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:113828 Archived-At: --089e01161812408611052ca2c5eb Content-Type: text/plain; charset=UTF-8 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. I think the correct of this function should be: > (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)))) > Thanks~ --089e01161812408611052ca2c5eb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+VGhlICZxdW90OzEwLjIuMTogUGF0dGVybiBt YXRjaGluZyBjYXNlIHN0YXRlbWVudCZxdW90OyBpbiBFbWFjcyBMaXNwIFJlZmVycmVuY2UgTWFu dWFsIGhhcyBhIHByb2JsZW0uPGJyPjwvZGl2PlRoZSBzZWNvbmQgZXhhbXBsZSBpbiBtYW51YWwg aXM6PGJyPjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7Ym9yZGVy LWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCIgY2xhc3M9 ImdtYWlsX3F1b3RlIj7CoCDCoMKgwqDCoCAoZGVmdW4gZXZhbHVhdGUgKGV4cCBlbnYpPGJyPsKg wqDCoMKgwqDCoCAocGNhc2UgZXhwPGJyPsKgwqDCoMKgwqDCoMKgwqAgKGAoYWRkICx4ICx5KcKg wqDCoMKgwqDCoCAoKyAoZXZhbHVhdGUgeCBlbnYpIChldmFsdWF0ZSB5IGVudikpKTxicj7CoMKg wqDCoMKgwqDCoMKgIChgKGNhbGwgLGZ1biAsYXJnKcKgIChmdW5jYWxsIChldmFsdWF0ZSBmdW4g ZW52KSAoZXZhbHVhdGUgYXJnIGVudikpKTxicj7CoMKgwqDCoMKgwqDCoMKgIChgKGZuICxhcmcg LGJvZHkpwqDCoCAobGFtYmRhICh2YWwpPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZXZhbHVhdGUgYm9keSAoY29ucyAoY29u cyBhcmcgdmFsKSBlbnYpKSkpPGJyPsKgwqDCoMKgwqDCoMKgwqAgKChwcmVkIG51bWJlcnApwqDC oMKgwqAgZXhwKTxicj7CoMKgwqDCoMKgwqDCoMKgICgocHJlZCBzeW1ib2xwKcKgwqDCoMKgIChj ZHIgKGFzc3EgZXhwIGVudikpKTxicj7CoMKgwqDCoMKgwqDCoMKgIChfwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoZXJyb3IgJnF1b3Q7VW5rbm93biBleHByZXNzaW9uICVTJnF1 b3Q7IGV4cCkpKSk8YnI+PC9ibG9ja3F1b3RlPjxkaXY+wqA8L2Rpdj5UaGUgcHJvYmxlbSBpcyBh Ym91dCB0aGUgdGhpcmQgY2FzZTogYChmbiAsIGFyZyAsYm9keSkuPGJyPjwvZGl2PkkgdGVzdCB0 aGlzIGZ1bmN0aW9uIHdpdGg6PGJyPjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW46MHB4 IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFk ZGluZy1sZWZ0OjFleCIgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IHN0eWxlPSJtYXJnaW4tbGVm dDo0MHB4Ij4oZXZhbHVhdGUgJiMzOTsoY2FsbDxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChm biB4IChhZGQgMSB4KSk8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyKTxicj7CoMKgwqDCoMKg wqDCoMKgwqAgbmlsKTxicj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5lbWNhcyBldmFsIGl0IHdp dGggdGhyb3cgZXJyb3JzLiA8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+SSB0aGluayB0aGUgY29y cmVjdCBvZiB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZTo8YnI+PGJsb2NrcXVvdGUgc3R5bGU9Im1h cmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQs MjA0KTtwYWRkaW5nLWxlZnQ6MWV4IiBjbGFzcz0iZ21haWxfcXVvdGUiPjxkaXYgc3R5bGU9Im1h cmdpbi1sZWZ0OjQwcHgiPihkZWZ1biBldmFsdWF0ZSAoZXhwIGVudik8YnI+wqAgKHBjYXNlIGV4 cDxicj7CoMKgwqAgKGAoYWRkICx4ICx5KTxicj7CoMKgwqDCoCAoKyAoZXZhbHVhdGUgeCBlbnYp PGJyPsKgwqDCoMKgwqDCoMKgIChldmFsdWF0ZSB5IGVudikpKTxicj7CoMKgwqAgKGAoY2FsbCAs ZnVuICxhcmcpPGJyPsKgwqDCoMKgIChmdW5jYWxsIChldmFsdWF0ZSBmdW4gZW52KTxicj7CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZXZhbHVhdGUgYXJnIGVudikpKTxicj7CoMKgwqAgKGAo Zm4gLGFyZyAsYm9keSk8YnI+wqDCoMKgwqAgYChsYW1iZGEgKHZhbCk8YnI+wqDCoMKgwqDCoMKg wqAgKGV2YWx1YXRlICYjMzk7LGJvZHkgKGNvbnMgKGNvbnMgJiMzOTssYXJnIHZhbCkgZW52KSkp KTxicj7CoMKgwqAgKChwcmVkIG51bWJlcnApPGJyPsKgwqDCoMKgIGV4cCk8YnI+wqDCoMKgICgo cHJlZCBzeW1ib2xwKTxicj7CoMKgwqDCoCAoY2RyIChhc3NxIGV4cCBlbnYpKSk8YnI+wqDCoMKg IChfPGJyPsKgwqDCoMKgIChlcnJvciAmcXVvdDtVbmtub3duIGV4cHJlc3Npb24gJVMmcXVvdDsg ZXhwKSkpKTxicj48L2Rpdj48L2Jsb2NrcXVvdGU+PGJyPjxicj48ZGl2PlRoYW5rc348YnI+PC9k aXY+PC9kaXY+DQo= --089e01161812408611052ca2c5eb--