From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Replace trivial pcase occurrences in the Emacs sources
Date: Tue, 30 Oct 2018 16:44:01 -0400 [thread overview]
Message-ID: <jwv4ld3fafg.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <83efc7jjm2.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 30 Oct 2018 21:54:29 +0200")
> I think the best place of defining them is where we first describe
> them, i.e. in the section about pcase itself.
That's what I tried to do in the patch I had attached.
> No, I think "destructuring" is about right. How about this text:
>
> @dfn{Destructuring} of an object is an operation that extracts
> multiple values stored in the object, e.g., the 2nd and the 3rd
> element of a list or a vector. @dfn{Destructuring binding} is
> similar to a local binding (@pxref{Local Variables}), but it gives
> values to multiple elements of a variable by extracting those values
> from an object of compatible structure.
Fine by me.
>> > It would also help to tell what exactly makes a pattern a
>> > destructuring one.
>> As the paragraph says: it's the context in which it's used.
> I'm not sure I understand. AFAIU, not every pattern described in
> "pcase Macro" can be a destructuring one. Right?
A destructuring pattern can bind any number of variables, so I don't see
why we should limit this number to be strictly positive.
A pattern like 'Emacs will not be very useful on its own in pcase-let,
admittedly, but it's perfectly valid to use it (it will just do the same
as _, which is often convenient to use when you don't care about the
value). And of course, it can even be useful to use it within a larger
pattern, e.g.
(pcase-let (((or (and 'Emacs (let x 'a))
`(,x . ,_))
'Emacs))
x)
will return `a` whereas
(pcase-let (((or (and 'Emacs (let x 'a))
`(,x . ,_))
'Typer))
x)
will signal an error (because it's trying to destructure `Typer` according
to `(,x . ,_)).
> See above: not every pattern can be a destructuring one, AFAIU.
They all can be used as destructuring patterns. Some are more often
useful than others.
> I find this too abstract in general, so I think it's better to be
> specific where we can.
So, but this is as specific as I can be. Maybe you'd prefer something
less specific. See new patch below,
Stefan
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 5be4b298b4..06c6622bf0 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -477,6 +477,7 @@ Pattern-Matching Conditional
* The @code{pcase} macro: pcase Macro. Plus examples and caveats.
* Extending @code{pcase}: Extending pcase. Define new kinds of patterns.
* Backquote-Style Patterns: Backquote Patterns. Structural matching.
+* Destructuring patterns:: Using pcase patterns to extract subfields.
@end menu
@node pcase Macro
@@ -497,6 +498,10 @@ pcase Macro
Otherwise, @code{pcase} evaluates to @code{nil}.
@end defmac
+Each @var{pattern} has to be a @dfn{pcase pattern}, which can either
+use one of the core patterns defined below, or use one of the patterns
+defined via @code{pcase-defmacro}.
+
The rest of this subsection
describes different forms of core patterns,
presents some examples,
@@ -1168,6 +1173,90 @@ Backquote Patterns
(evaluate '(sub 1 2) nil) @result{} error
@end example
+@node Destructuring patterns
+@subsection Destructuring Patterns
+@cindex destructuring patterns
+
+Pcase patterns not only express a condition on the form of the objects
+they can match but they can also extract sub-fields of those objects.
+Say we have a list and want to extract 2 elements from it with the
+following code:
+
+@example
+ (pcase l
+ (`(add ,x ,y) (message "Contains %S and %S" x y)))
+@end example
+
+This will not only extract @code{x} and @code{y} but will additionally
+test that @code{l} is a list containing exactly 3 elements and whose
+first element is the symbol @code{add}. If any of those tests fail,
+@code{pcase} will directly return @code{nil} without calling
+@code{message}.
+
+@dfn{Destructuring} of an object is an operation that extracts
+multiple values stored in the object, e.g., the 2nd and the 3rd
+element of a list or a vector. @dfn{Destructuring binding} is
+similar to a local binding (@pxref{Local Variables}), but it gives
+values to multiple elements of a variable by extracting those values
+from an object of compatible structure.
+
+The macros described in this section use @dfn{destructuring
+patterns}, which are normal Pcase patterns used in a context where we
+presume that the object does match the pattern, and we only want
+to extract some subfields. For example:
+
+@example
+ (pcase-let ((`(add ,x ,y) l))
+ (message "Contains %S and %S" x y))
+@end example
+
+@noindent
+does the same as the previous example, except that it directly tries
+to extract @code{x} and @code{y} from @code{l} without first verifying
+if @code{l} is a list which has the right number of elements and has
+@code{add} as its first element.
+The precise behavior when the object does not actually match the
+pattern is undefined, although the body will not be silently skipped:
+either an error is signaled or the body is run with some of the
+variables potentially bound to arbitrary values like @code{nil}.
+
+@defmac pcase-let bindings body@dots{}
+Bind variables according to @var{bindings} and then eval @var{body}.
+
+@var{bindings} is a list of bindings of the form @w{@code{(@var{pattern}
+@var{exp})}}, where @var{exp} is an expression to evaluate and
+@var{pattern} is a destructuring pattern.
+
+All @var{exp}s are evaluated first after which they are matched
+against their respective @var{pattern}, introducing new variable
+bindings which can then be used inside @var{body}.
+@end defmac
+
+@defmac pcase-let* bindings body@dots{}
+Bind variables according to @var{bindings} and then eval @var{body}.
+
+@var{bindings} is a list of bindings of the form @code{(@var{pattern}
+@var{exp})}, where @var{exp} is an expression to evaluate and
+@var{pattern} is a destructuring pattern.
+
+Unlike @code{pcase-let}, but like @code{let*}, each @var{exp} is
+matched against its corresponding @var{pattern} before passing to the
+next element of @var{bindings}, so the variables introduced in each
+binding are available in the @var{exp}s that follow it, additionally
+to being available in @var{body}.
+@end defmac
+
+@findex dolist
+@defmac pcase-dolist (pattern list) body@dots{}
+This construct executes @var{body} once for each element of
+@var{list}, in a context where the variables appearing in the the
+destructuring pattern @var{pattern} are bound to the corresponding
+values found in the element.
+When @var{pattern} is a simple variable, this ends up being equivalent
+to @code{dolist}.
+@end defmac
+
+
@node Iteration
@section Iteration
@cindex iteration
next prev parent reply other threads:[~2018-10-30 20:44 UTC|newest]
Thread overview: 387+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-16 20:26 The poor state of documentation of pcase like things Alan Mackenzie
2015-12-16 20:53 ` Kaushal Modi
2015-12-17 16:34 ` John Wiegley
2015-12-17 19:22 ` Kaushal Modi
2015-12-17 21:16 ` Phillip Lord
2015-12-17 21:56 ` Drew Adams
2015-12-17 22:22 ` Phillip Lord
2015-12-18 7:15 ` Eli Zaretskii
2015-12-18 9:12 ` Rasmus
2015-12-18 9:21 ` Eli Zaretskii
2015-12-18 9:57 ` Rasmus
2015-12-18 10:13 ` David Kastrup
2015-12-18 10:47 ` Eli Zaretskii
2015-12-18 16:44 ` Phillip Lord
2015-12-18 17:17 ` Eli Zaretskii
2015-12-18 17:24 ` David Kastrup
2015-12-18 18:47 ` Eli Zaretskii
2015-12-19 11:23 ` Eli Zaretskii
2015-12-19 11:39 ` David Kastrup
2015-12-19 12:15 ` Eli Zaretskii
2015-12-19 20:35 ` Phillip Lord
2015-12-19 20:58 ` Eli Zaretskii
2015-12-19 22:23 ` Phillip Lord
2015-12-20 3:38 ` Eli Zaretskii
2015-12-20 22:54 ` Phillip Lord
2015-12-20 14:16 ` Michael Heerdegen
2015-12-18 12:23 ` Marcin Borkowski
2015-12-18 10:30 ` Phillip Lord
2015-12-18 12:21 ` Marcin Borkowski
2015-12-22 5:20 ` John Wiegley
2015-12-17 21:26 ` Alan Mackenzie
2015-12-17 23:34 ` John Wiegley
2015-12-18 7:16 ` Eli Zaretskii
2015-12-19 15:31 ` Michael Heerdegen
2015-12-22 5:25 ` John Wiegley
2015-12-22 13:16 ` Michael Heerdegen
2015-12-18 0:42 ` John Wiegley
2015-12-18 4:07 ` Richard Stallman
2015-12-18 10:39 ` Phillip Lord
2015-12-19 15:14 ` Michael Heerdegen
2015-12-19 19:23 ` Phillip Lord
2015-12-19 21:09 ` Michael Heerdegen
2015-12-19 21:57 ` Phillip Lord
2015-12-20 5:13 ` Richard Stallman
2015-12-20 9:25 ` Phillip Lord
2015-12-21 5:04 ` Richard Stallman
2015-12-21 10:15 ` Phillip Lord
2015-12-22 5:18 ` John Wiegley
2015-12-20 13:45 ` Michael Heerdegen
2015-12-20 13:33 ` Michael Heerdegen
2015-12-20 18:51 ` Phillip Lord
2015-12-24 17:46 ` Michael Heerdegen
2015-12-24 17:51 ` John Wiegley
2015-12-24 19:10 ` Michael Heerdegen
2015-12-19 19:24 ` Phillip Lord
2015-12-18 8:55 ` Eli Zaretskii
2015-12-19 15:18 ` Michael Heerdegen
2015-12-22 5:22 ` John Wiegley
2015-12-19 15:55 ` Michael Heerdegen
2015-12-19 17:08 ` Eli Zaretskii
2015-12-19 17:19 ` Eli Zaretskii
2015-12-19 21:03 ` Michael Heerdegen
2015-12-19 17:40 ` Michael Heerdegen
2015-12-22 5:21 ` John Wiegley
2015-12-19 15:44 ` Michael Heerdegen
2015-12-19 17:02 ` Eli Zaretskii
2015-12-19 20:58 ` Michael Heerdegen
2015-12-22 5:28 ` John Wiegley
2015-12-19 20:31 ` Phillip Lord
2015-12-19 21:16 ` Michael Heerdegen
2015-12-19 22:11 ` Phillip Lord
2015-12-20 12:45 ` Michael Heerdegen
2015-12-24 5:49 ` Richard Stallman
2015-12-24 6:15 ` John Wiegley
2015-12-25 5:49 ` Richard Stallman
2015-12-25 14:59 ` Michael Heerdegen
2015-12-25 16:55 ` John Wiegley
2015-12-26 6:13 ` Richard Stallman
2015-12-26 17:10 ` Michael Heerdegen
2015-12-26 20:52 ` Aaron Ecay
2015-12-26 23:17 ` Michael Heerdegen
2016-01-01 7:57 ` Eli Zaretskii
2016-01-01 17:46 ` John Wiegley
2016-01-01 18:39 ` David Kastrup
2016-01-01 19:05 ` Daniel Colascione
2016-01-02 8:16 ` Eli Zaretskii
2016-01-02 8:35 ` David Kastrup
2016-01-03 0:19 ` Michael Heerdegen
2016-01-03 2:47 ` Drew Adams
2016-01-03 3:21 ` Michael Heerdegen
2016-01-03 3:46 ` Drew Adams
2016-01-03 5:17 ` Michael Heerdegen
2016-01-03 3:45 ` Eli Zaretskii
2016-01-03 4:21 ` Michael Heerdegen
2016-01-03 9:13 ` David Kastrup
2016-01-03 16:52 ` Clément Pit--Claudel
2016-01-04 1:28 ` Michael Heerdegen
2016-01-03 15:29 ` Eli Zaretskii
2016-01-04 2:05 ` Michael Heerdegen
2016-01-03 9:03 ` David Kastrup
2016-01-04 2:08 ` Michael Heerdegen
2016-01-04 22:05 ` John Wiegley
2016-01-03 0:41 ` Dmitry Gutov
2016-01-03 1:07 ` Lars Magne Ingebrigtsen
2016-01-03 1:21 ` Dmitry Gutov
2016-01-03 2:49 ` Drew Adams
2016-01-03 10:49 ` David Kastrup
2016-01-03 1:32 ` Michael Heerdegen
2016-01-03 2:48 ` Drew Adams
2016-01-03 3:11 ` Noam Postavsky
2016-01-03 3:18 ` Dmitry Gutov
2016-01-03 3:55 ` John Wiegley
2016-01-03 3:45 ` Drew Adams
2016-01-03 3:47 ` Eli Zaretskii
2016-01-03 4:08 ` Dmitry Gutov
2016-01-03 9:02 ` David Kastrup
2016-01-03 13:33 ` Dmitry Gutov
2016-01-03 14:07 ` David Kastrup
2016-01-03 14:10 ` Daniel Colascione
2016-01-03 14:50 ` David Kastrup
2016-01-03 14:56 ` Daniel Colascione
2016-01-03 14:57 ` Dmitry Gutov
2016-01-03 15:15 ` David Kastrup
2016-01-03 15:21 ` Dmitry Gutov
2016-01-03 15:52 ` David Kastrup
2016-01-03 15:59 ` Dmitry Gutov
2016-01-03 17:15 ` David Kastrup
2016-01-03 17:52 ` Dmitry Gutov
2016-01-03 18:17 ` David Kastrup
2016-01-04 2:34 ` Michael Heerdegen
2016-01-04 6:19 ` Drew Adams
2016-01-04 22:07 ` John Wiegley
2016-01-04 15:52 ` Eli Zaretskii
2018-10-23 13:04 ` Replace trivial pcase occurrences in the Emacs sources (was: The poor state of documentation of pcase like things.) Michael Heerdegen
2018-10-23 14:43 ` Clément Pit-Claudel
2018-10-23 14:46 ` Replace trivial pcase occurrences in the Emacs sources Michael Heerdegen
2018-10-23 14:57 ` Clément Pit-Claudel
2018-10-23 15:16 ` Michael Heerdegen
2018-10-23 15:07 ` Noam Postavsky
2018-10-23 15:24 ` Michael Heerdegen
2018-10-23 15:31 ` Noam Postavsky
2018-10-24 13:15 ` Michael Heerdegen
2018-10-23 15:17 ` Replace trivial pcase occurrences in the Emacs sources (was: The poor state of documentation of pcase like things.) Eli Zaretskii
2018-10-23 17:14 ` Replace trivial pcase occurrences in the Emacs sources Stefan Monnier
2018-10-23 17:24 ` Michael Heerdegen
2018-10-23 18:12 ` Stefan Monnier
2018-10-23 19:52 ` pcase vs. case (where it could also be used) [Was: Re: Replace trivial pcase occurrences in the Emacs sources] Garreau, Alexandre
2018-10-23 20:19 ` Stefan Monnier
2018-10-23 22:24 ` Garreau, Alexandre
2018-10-24 15:03 ` Replace trivial pcase occurrences in the Emacs sources Eli Zaretskii
2018-10-24 15:30 ` Michael Heerdegen
2018-10-24 15:40 ` Eli Zaretskii
2018-10-24 15:48 ` Michael Heerdegen
2018-10-24 17:35 ` Eli Zaretskii
2018-10-24 17:55 ` Michael Heerdegen
2018-10-24 18:32 ` Eli Zaretskii
2018-10-24 18:47 ` Garreau, Alexandre
2018-10-27 15:19 ` Michael Heerdegen
2018-10-27 16:56 ` Garreau, Alexandre
2018-10-27 22:37 ` Dmitry Gutov
2018-10-28 0:21 ` Michael Heerdegen
2018-10-28 2:07 ` Garreau, Alexandre
2018-10-28 2:44 ` pcase ` meaning [Was: Re: Replace trivial pcase occurrences in the Emacs sources] Garreau, Alexandre
2018-10-28 4:45 ` How other pattern-matching lisps do [Was: Re: pcase ` meaning [Was: Re: Replace trivial pcase occurrences in the Emacs sources]] Garreau, Alexandre
2018-10-28 13:44 ` Stefan Monnier
2018-10-28 17:57 ` Garreau, Alexandre
2018-10-28 23:16 ` Michael Heerdegen
2018-10-28 22:54 ` pcase ` meaning [Was: Re: Replace trivial pcase occurrences in the Emacs sources] Michael Heerdegen
2018-10-28 23:09 ` Garreau, Alexandre
2018-10-28 23:57 ` Michael Heerdegen
2018-10-29 10:22 ` Garreau, Alexandre
2018-10-29 21:33 ` Michael Heerdegen
2018-10-29 23:00 ` pcase ` meaning Garreau, Alexandre
2018-10-29 23:57 ` Michael Heerdegen
2018-10-30 0:17 ` Garreau, Alexandre
2018-10-30 1:40 ` Michael Heerdegen
2018-10-30 16:05 ` Yuri Khan
2018-10-29 17:26 ` pcase ` meaning [Was: Re: Replace trivial pcase occurrences in the Emacs sources] Clément Pit-Claudel
2018-10-30 0:27 ` pcase ` meaning Garreau, Alexandre
2018-10-30 13:14 ` Stefan Monnier
2018-10-31 23:13 ` Garreau, Alexandre
2018-11-01 13:22 ` Clément Pit-Claudel
2018-11-01 14:11 ` Garreau, Alexandre
2018-10-29 3:26 ` Replace trivial pcase occurrences in the Emacs sources Eli Zaretskii
2018-10-29 21:46 ` Michael Heerdegen
2018-10-30 0:36 ` What `case' have done you? [Was: Re: Replace trivial pcase occurrences in the Emacs sources] Garreau, Alexandre
2018-10-30 1:45 ` Michael Heerdegen
2018-10-30 6:31 ` Replace trivial pcase occurrences in the Emacs sources Eli Zaretskii
2018-10-30 15:47 ` Michael Heerdegen
2018-10-30 17:29 ` Eli Zaretskii
2018-10-30 22:09 ` Michael Heerdegen
2018-10-31 15:59 ` Eli Zaretskii
2018-10-31 19:37 ` Stefan Monnier
2018-10-31 20:31 ` Michael Heerdegen
2018-10-31 23:33 ` Garreau, Alexandre
2018-10-31 23:44 ` Garreau, Alexandre
2018-10-31 23:58 ` Michael Heerdegen
2018-11-01 4:15 ` Eli Zaretskii
2018-11-01 12:30 ` Stefan Monnier
2018-11-01 14:14 ` Michael Heerdegen
2018-11-01 14:18 ` Noam Postavsky
2018-11-01 14:20 ` Michael Heerdegen
2018-11-05 1:43 ` Michael Heerdegen
2018-11-05 1:46 ` Michael Heerdegen
2018-11-05 16:06 ` Eli Zaretskii
2018-11-06 1:04 ` Michael Heerdegen
2018-11-25 20:36 ` Michael Heerdegen
2018-11-25 20:42 ` Nicolas Goaziou
2018-11-25 21:46 ` Michael Heerdegen
2018-11-26 3:35 ` Eli Zaretskii
2018-11-26 20:57 ` Michael Heerdegen
2018-11-26 22:05 ` Nicolas Goaziou
2018-11-27 5:35 ` Eli Zaretskii
2018-10-24 15:47 ` Clément Pit-Claudel
2018-10-24 16:00 ` Eli Zaretskii
2018-10-24 19:00 ` Clément Pit-Claudel
2018-10-24 19:09 ` Eli Zaretskii
2018-10-24 16:12 ` Alan Mackenzie
2018-10-24 20:52 ` Stefan Monnier
2018-10-25 7:17 ` Stephen Berman
2018-10-25 14:47 ` Eli Zaretskii
2018-10-25 15:32 ` Stefan Monnier
2018-10-26 15:34 ` Stefan Monnier
2018-10-27 17:48 ` Garreau, Alexandre
2018-10-24 4:51 ` Richard Stallman
2018-10-24 8:34 ` Joost Kremers
2018-10-24 12:37 ` Stefan Monnier
2018-10-24 13:08 ` Daniel Pittman
2018-10-24 14:35 ` Stefan Monnier
2018-10-24 13:03 ` pcase pattern syntax (was: Replace trivial pcase occurrences in the Emacs sources) Stefan Monnier
2018-10-26 7:16 ` Joost Kremers
2018-10-24 10:16 ` Replace trivial pcase occurrences in the Emacs sources João Távora
2018-10-24 13:05 ` Stefan Monnier
2018-10-25 3:11 ` Richard Stallman
2018-10-25 12:42 ` Stefan Monnier
2018-10-25 23:53 ` Andy Moreton
2018-10-26 14:59 ` Stefan Monnier
2018-10-26 15:44 ` Garreau, Alexandre
2018-10-27 12:09 ` Andy Moreton
2018-10-28 21:44 ` Stefan Monnier
2018-10-29 13:01 ` Alan Mackenzie
2018-10-29 13:28 ` Stefan Monnier
2018-10-29 13:47 ` Alan Mackenzie
2018-10-29 21:08 ` Stefan Monnier
2018-10-29 21:53 ` Michael Heerdegen
2018-10-29 23:12 ` Eric Abrahamsen
2018-10-29 23:18 ` Eric Abrahamsen
2018-10-30 0:50 ` `pcase'/`case' implementation [Was: Re: Replace trivial pcase occurrences in the Emacs sources] Garreau, Alexandre
2018-10-30 13:07 ` Replace trivial pcase occurrences in the Emacs sources Stefan Monnier
2018-10-30 23:30 ` Eric Abrahamsen
2018-11-01 0:16 ` Garreau, Alexandre
2018-10-30 12:30 ` Stefan Monnier
2018-10-30 17:16 ` Stefan Monnier
2018-10-30 19:03 ` Eli Zaretskii
2018-10-30 19:21 ` Stefan Monnier
2018-10-30 19:54 ` Eli Zaretskii
2018-10-30 20:44 ` Stefan Monnier [this message]
2018-10-31 15:57 ` Eli Zaretskii
2018-10-31 19:35 ` Stefan Monnier
2018-11-01 1:40 ` Garreau, Alexandre
2018-11-01 4:10 ` Eli Zaretskii
2018-11-01 5:21 ` Garreau, Alexandre
2018-11-01 18:07 ` Eli Zaretskii
2018-11-01 19:35 ` Garreau, Alexandre
2018-11-01 19:49 ` TEIRLLM
2018-11-03 2:53 ` Richard Stallman
2018-11-04 11:35 ` Nix
2018-11-04 12:40 ` Garreau, Alexandre
2018-11-01 19:51 ` TEIRLLM
2018-11-01 20:02 ` Eli Zaretskii
2018-10-30 20:04 ` Dmitry Gutov
2018-10-30 20:46 ` Stefan Monnier
2018-10-31 13:41 ` Dmitry Gutov
2018-10-31 13:52 ` Stefan Monnier
2018-10-31 15:50 ` Eli Zaretskii
2018-10-31 16:05 ` Dmitry Gutov
2018-10-31 16:13 ` Eli Zaretskii
2018-10-31 16:27 ` Dmitry Gutov
2018-10-31 16:33 ` Dmitry Gutov
2018-10-31 16:54 ` Eli Zaretskii
2018-10-31 16:58 ` Dmitry Gutov
2018-10-31 16:52 ` Eli Zaretskii
2018-10-31 18:55 ` Michael Heerdegen
2018-10-31 19:23 ` Eli Zaretskii
2018-10-31 19:50 ` Michael Heerdegen
2018-10-31 20:05 ` Eli Zaretskii
2018-10-31 20:41 ` Michael Heerdegen
2018-11-01 4:14 ` Eli Zaretskii
2018-10-31 20:06 ` Stefan Monnier
2018-10-31 20:12 ` Eli Zaretskii
2018-10-31 17:48 ` Clément Pit-Claudel
2018-10-31 18:11 ` Eli Zaretskii
2018-10-31 18:28 ` Clément Pit-Claudel
2018-10-31 18:33 ` Eli Zaretskii
2018-10-31 19:00 ` Yuri Khan
2018-10-31 19:20 ` Eli Zaretskii
2018-11-01 0:11 ` Dmitry Gutov
2018-10-31 19:21 ` Clément Pit-Claudel
2018-10-31 19:29 ` Eli Zaretskii
2018-10-31 19:31 ` Clément Pit-Claudel
2018-10-31 20:36 ` Eli Zaretskii
2018-11-01 0:13 ` Dmitry Gutov
2018-11-01 1:31 ` Garreau, Alexandre
2018-10-31 20:03 ` Stefan Monnier
2018-11-01 0:07 ` Dmitry Gutov
2018-11-01 1:34 ` Garreau, Alexandre
2018-11-03 13:15 ` Eli Zaretskii
2018-10-30 1:15 ` Garreau, Alexandre
2018-10-30 6:17 ` Eli Zaretskii
2018-10-30 12:15 ` Stefan Monnier
2018-10-30 12:38 ` Eli Zaretskii
2018-10-30 15:00 ` Stefan Monnier
2018-10-30 17:00 ` Eli Zaretskii
2018-10-30 17:27 ` Stefan Monnier
2018-10-30 17:36 ` Eli Zaretskii
2018-10-30 18:09 ` Stefan Monnier
2018-10-30 18:42 ` Eli Zaretskii
2018-10-30 18:58 ` Stefan Monnier
2018-10-31 12:08 ` Alan Mackenzie
2018-10-31 12:33 ` Stefan Monnier
2018-10-31 15:47 ` Eli Zaretskii
2018-10-31 16:07 ` Alan Mackenzie
2018-10-31 16:20 ` Eli Zaretskii
2018-11-01 8:36 ` Achim Gratz
2018-11-01 10:36 ` Alan Mackenzie
2018-11-01 12:29 ` Achim Gratz
2018-11-01 14:19 ` Michael Heerdegen
2018-11-03 13:16 ` Eli Zaretskii
2018-11-03 15:45 ` Michael Heerdegen
2018-11-03 16:25 ` Eli Zaretskii
2018-11-03 17:12 ` Michael Heerdegen
2018-11-03 17:55 ` Eli Zaretskii
2018-11-03 22:22 ` Michael Heerdegen
2018-11-04 14:16 ` Eli Zaretskii
2018-11-06 0:00 ` Michael Heerdegen
2018-11-06 3:30 ` Eli Zaretskii
2018-11-03 13:13 ` Eli Zaretskii
2018-10-30 18:24 ` Alan Mackenzie
2018-10-30 14:16 ` Andy Moreton
2018-10-30 15:05 ` Clément Pit-Claudel
2018-10-30 18:14 ` Alan Mackenzie
2018-10-30 19:56 ` Clément Pit-Claudel
2018-10-31 0:08 ` Andy Moreton
2018-10-31 3:19 ` Stefan Monnier
2018-10-31 16:23 ` Clément Pit-Claudel
2018-11-01 14:44 ` Andy Moreton
2018-11-01 15:28 ` Clément Pit-Claudel
2018-10-30 17:22 ` Michael Heerdegen
2018-10-30 17:31 ` Stefan Monnier
2018-10-30 23:08 ` Michael Heerdegen
2018-10-31 3:09 ` Stefan Monnier
2018-11-05 2:01 ` Michael Heerdegen
2018-11-05 4:49 ` Stefan Monnier
2018-11-05 23:06 ` Michael Heerdegen
2018-10-30 18:09 ` Alan Mackenzie
2018-10-30 18:17 ` Stefan Monnier
2018-10-30 19:00 ` Alan Mackenzie
2018-10-31 0:21 ` Andy Moreton
2018-10-29 14:47 ` Andy Moreton
2018-10-29 18:49 ` pcase-lambda usage [Was: Re: Replace trivial pcase occurrences in the Emacs sources] Garreau, Alexandre
2018-10-30 23:34 ` Replace trivial pcase occurrences in the Emacs sources Van L
2018-10-31 3:14 ` Stefan Monnier
2018-10-23 17:22 ` John Wiegley
2018-10-23 17:16 ` Stefan Monnier
2016-01-04 2:54 ` The poor state of documentation of pcase like things Michael Heerdegen
2016-01-03 15:26 ` Eli Zaretskii
2016-01-03 20:02 ` John Wiegley
2016-01-02 1:15 ` Richard Copley
2016-01-02 3:50 ` Drew Adams
2016-01-02 3:51 ` Drew Adams
[not found] ` <<83y4c9ag06.fsf@gnu.org>
2016-01-01 15:18 ` Drew Adams
2015-12-27 2:53 ` Richard Stallman
2015-12-16 21:01 ` Drew Adams
2015-12-17 13:59 ` Phillip Lord
2015-12-17 17:06 ` Alan Mackenzie
2015-12-19 15:26 ` Michael Heerdegen
2015-12-19 16:04 ` Michael Heerdegen
2015-12-19 19:29 ` Phillip Lord
2015-12-19 21:14 ` Michael Heerdegen
2015-12-19 22:06 ` Phillip Lord
2015-12-19 16:47 ` Eli Zaretskii
2015-12-19 17:24 ` Michael Heerdegen
2015-12-22 5:25 ` John Wiegley
2015-12-19 18:30 ` Alan Mackenzie
2015-12-19 20:42 ` Michael Heerdegen
2015-12-19 22:25 ` Alan Mackenzie
2015-12-20 13:11 ` Michael Heerdegen
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwv4ld3fafg.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.