[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/fcr 35c4ee4782: * lisp/emacs-lisp/fcr.el (Commentary:): Add a fe
From: |
Stefan Monnier |
Subject: |
scratch/fcr 35c4ee4782: * lisp/emacs-lisp/fcr.el (Commentary:): Add a few notes |
Date: |
Mon, 27 Dec 2021 15:30:14 -0500 (EST) |
branch: scratch/fcr
commit 35c4ee47821029c8dd1c5d5c2a028a0c50559693
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/fcr.el (Commentary:): Add a few notes
---
lisp/emacs-lisp/fcr.el | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/lisp/emacs-lisp/fcr.el b/lisp/emacs-lisp/fcr.el
index 0f3604382f..e6e0d53b4b 100644
--- a/lisp/emacs-lisp/fcr.el
+++ b/lisp/emacs-lisp/fcr.el
@@ -43,6 +43,15 @@
;; has an additional `interactive-form' slot.
;; - auto-generate docstrings for cl-defstruct slot accessors instead of
;; storing them in the accessor itself?
+;; - SRFI-17's `setter'.
+;; - coercion wrappers, as in "Threesomes, with and without blame"
+;; https://dl.acm.org/doi/10.1145/1706299.1706342, or
+;; "On the Runtime Complexity of Type-Directed Unboxing"
+;; http://sv.c.titech.ac.jp/minamide/papers.html
+;; - An efficient `negate' operation such that
+;; (negate f) generally returns (lambda (x) (not (f x)))
+;; but it can optimize (negate (negate f)) to f and (negate #'<) to
+;; #'>=.
;; Related constructs:
;; - `funcallable-standard-object' (FSO) in Common-Lisp. These are different
@@ -72,6 +81,19 @@
;; additional argument (a kind of "self" arg), thus making it easier
;; for the code to get data from the object's extra info, tho still
;; not as easy as with FCRs.
+;; - "entities" in Lisp Machine Lisp (LML)
+;; https://hanshuebner.github.io/lmman/fd-clo.xml
+;; These are arguably identical to FCRs, modulo the fact that LML doesn't
+;; have lexically-scoped closures and uses a form of closures based on
+;; capturing (and reinstating) dynamically scoped bindings instead.
+
+;; Naming: to replace "FCR" we could go with
+;; - open closures
+;; - disclosures
+;; - opening
+;; - object functions/closures
+;; - structured functions/closures (strunctions, strufs)
+;; - slotfuns (slotted functions)
;;; Code:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- scratch/fcr 35c4ee4782: * lisp/emacs-lisp/fcr.el (Commentary:): Add a few notes,
Stefan Monnier <=