From: Thien-Thi Nguyen <ttn@gnu.org>
To: 31311@debbugs.gnu.org
Cc: Noam Postavsky <npostavs@gmail.com>
Subject: bug#31311: 27.0; doc of `pcase'
Date: Tue, 15 May 2018 16:37:15 +0200 [thread overview]
Message-ID: <87tvr956jo.fsf@gnuvola.org> (raw)
In-Reply-To: <877eo9kmey.fsf@gmail.com> (Noam Postavsky's message of "Sat, 12 May 2018 09:56:21 -0400")
[-- Attachment #1: Type: text/plain, Size: 2260 bytes --]
() Noam Postavsky <npostavs@gmail.com>
() Sat, 12 May 2018 09:56:21 -0400
I would say the behaviour of pcase when guard expressions
have side-effects is not defined, so the documentation should
advise against having side-effects in guard expressions.
I've done this (commit 977bd10f5e70) and extended the advice to
other places where evaluation occurs.
[‘t’ and ‘nil’ as SYMBOL patterns]
Thanks for confirming. I've addressed this in another post.
> For anyone just joining, these commits are on the branch
> ‘fix/bug-31311-pcase-doc’ (off of ‘emacs-26’). Feedback on
> anything there is most welcome!
In the docstring, you have
[...] two catagories [...] logical and structural.
You grouped SYMBOL into the "logical patterns", but I don't
think it really fits into either of those. Better to make it
separate, perhaps?
In the end, reverted this distinction, moved `QPAT material to
the ‘(pcase-defmacro \` (qpat) ...)’ form, and added a comment
in ‘pcase--make-docstring’ proposing somehow to arrange for
`QPAT docstring to be presented immediately after ‘pcase’. More
on this in a post to emacs-devel (which is still queued for
delivery on my side at this moment...).
I'm also not so sure it's a useful division. At least, they
shouldn't be presented as equal categories. The "structural"
is more a short form for particular kinds of "logical"
patterns. For example, `(1 . 2) is equivalent to
(and (pred consp)
(app car 1)
(app cdr 2))
True. However, i'm trying to avoid using `QPAT in either
docstrings or examples prior to its introduction (including
table of possible QPAT forms). Kind of an informational
layering. This snippet was very useful, anyway; i adapted and
expanded on it for the example illustrating "2nd SYMBOL becomes
‘eq’ test". Thanks for posting it.
--
Thien-Thi Nguyen -----------------------------------------------
(defun responsep (query)
(pcase (context query)
(`(technical ,ml) (correctp ml))
...)) 748E A0E8 1CB8 A748 9BFA
--------------------------------------- 6CE4 6703 2224 4C80 7502
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2018-05-15 14:37 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-29 16:03 bug#31311: 27.0; doc of `pcase' Drew Adams
2018-04-29 16:39 ` Eli Zaretskii
2018-04-29 18:31 ` Michael Heerdegen
2018-04-29 18:45 ` Eli Zaretskii
2018-04-29 20:05 ` Michael Heerdegen
2018-04-30 2:36 ` Eli Zaretskii
2018-04-30 11:20 ` Noam Postavsky
2018-04-30 13:35 ` Thien-Thi Nguyen
2018-04-30 16:58 ` Drew Adams
2018-04-30 18:04 ` Michael Heerdegen
2018-05-01 9:41 ` Thien-Thi Nguyen
2018-04-30 19:31 ` Eli Zaretskii
2018-05-12 11:18 ` Thien-Thi Nguyen
2018-05-12 13:54 ` Michael Heerdegen
2018-05-15 14:24 ` Thien-Thi Nguyen
2018-05-15 15:16 ` Michael Heerdegen
2018-05-16 10:43 ` Thien-Thi Nguyen
2018-05-16 15:18 ` Michael Heerdegen
2018-05-20 18:59 ` Thien-Thi Nguyen
2018-05-23 13:55 ` Drew Adams
2018-05-23 15:42 ` Eli Zaretskii
2018-05-23 15:28 ` Eli Zaretskii
2018-05-23 19:16 ` Thien-Thi Nguyen
2018-05-24 16:23 ` Eli Zaretskii
2018-05-26 7:58 ` Thien-Thi Nguyen
2018-05-24 23:13 ` Noam Postavsky
2018-05-26 9:01 ` Thien-Thi Nguyen
2018-05-26 15:26 ` Drew Adams
2018-05-27 8:22 ` Thien-Thi Nguyen
2018-05-27 8:41 ` Thien-Thi Nguyen
2018-05-27 13:31 ` Drew Adams
2018-05-27 14:12 ` Noam Postavsky
2018-05-27 16:16 ` Eli Zaretskii
2018-05-27 16:26 ` Eli Zaretskii
2018-05-27 16:32 ` Andreas Schwab
2018-05-27 17:30 ` Eli Zaretskii
2018-05-27 17:45 ` Andreas Schwab
2018-05-27 17:42 ` Thien-Thi Nguyen
2018-05-28 7:25 ` Nicolas Petton
2018-05-28 7:33 ` Nicolas Petton
2018-05-28 8:27 ` Eli Zaretskii
2018-05-28 9:32 ` Nicolas Petton
2018-05-12 13:56 ` Noam Postavsky
2018-05-15 14:37 ` Thien-Thi Nguyen [this message]
2019-08-25 12:56 ` Michael Heerdegen
2018-04-30 14:28 ` Eli Zaretskii
2018-04-29 22:59 ` Drew Adams
2018-04-29 23:16 ` Noam Postavsky
2018-04-29 23:28 ` Drew Adams
2018-04-30 0:29 ` Michael Heerdegen
2018-04-30 2:47 ` Drew Adams
2018-04-30 7:48 ` Thien-Thi Nguyen
2018-05-21 17:04 ` Thien-Thi Nguyen
2022-04-29 13:48 ` Lars Ingebrigtsen
2022-04-29 14:39 ` Drew Adams
[not found] <<b5d5bbd5-f90c-4836-9307-7a74ad0b2320@default>
[not found] ` <<83wowqrmp8.fsf@gnu.org>
2018-04-29 17:02 ` Drew Adams
2018-04-29 17:16 ` Eli Zaretskii
2018-04-29 18:38 ` Michael Heerdegen
2018-04-29 19:43 ` Drew Adams
2018-04-29 20:00 ` Michael Heerdegen
[not found] <<<b5d5bbd5-f90c-4836-9307-7a74ad0b2320@default>
[not found] ` <<<83wowqrmp8.fsf@gnu.org>
[not found] ` <<9cd18e10-8f14-4a49-a3a4-ed9d50afe860@default>
[not found] ` <<83sh7erl01.fsf@gnu.org>
2018-04-29 17:26 ` Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tvr956jo.fsf@gnuvola.org \
--to=ttn@gnu.org \
--cc=31311@debbugs.gnu.org \
--cc=npostavs@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).