[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master a043cccb62b: * lisp/emacs-lisp/pcase.el (Commentary:): Add paper
From: |
Stefan Monnier |
Subject: |
master a043cccb62b: * lisp/emacs-lisp/pcase.el (Commentary:): Add paper reference |
Date: |
Wed, 24 Jan 2024 08:21:35 -0500 (EST) |
branch: master
commit a043cccb62bfd1812cedf107db327039dfdfe89b
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/pcase.el (Commentary:): Add paper reference
---
lisp/emacs-lisp/pcase.el | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 5ac4b289a80..4754d4e720d 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -42,6 +42,14 @@
;; - ideally we'd want (pcase s ((re RE1) E1) ((re RE2) E2)) to be able to
;; generate a lex-style DFA to decide whether to run E1 or E2.
+;; While the first version was written before I knew about Racket's `match'
+;; construct, the second version was significantly influenced by it,
+;; so a good presentation of the underlying ideas can be found at:
+;;
+;; Extensible Pattern Matching in an Extensible Language
+;; Sam Tobin-Hochstadt, 2010
+;; https://arxiv.org/abs/1106.2578
+
;;; Code:
(require 'macroexp)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master a043cccb62b: * lisp/emacs-lisp/pcase.el (Commentary:): Add paper reference,
Stefan Monnier <=