From: Stefan Monnier Date: Mon, 27 Dec 2021 20:30:07 +0000 (-0500) Subject: * lisp/emacs-lisp/fcr.el (Commentary:): Add a few notes X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=35c4ee47821029c8dd1c5d5c2a028a0c50559693;p=emacs.git * lisp/emacs-lisp/fcr.el (Commentary:): Add a few notes --- diff --git a/lisp/emacs-lisp/fcr.el b/lisp/emacs-lisp/fcr.el index 0f3604382fa..e6e0d53b4bf 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: