Angenommen, ich muss Verzeichnissen Symbole zuordnen, und dies muss nur für eine kleine Anzahl von boundp
Symbolen durchgeführt werden.
So wie ich das sehe, gibt es zwei einfache Möglichkeiten, dies zu tun:
- Speichern Sie diese Zuordnung in einer separaten Variablen (Alist oder Hash-Map). Auf diese Weise wäre das Verzeichnis jedes Symbols mit zugänglich
(cdr (assq SYMBOL my-alist))
. - Speichern Sie dies in einer Symboleigenschaft. Auf diese Weise wäre es mit zugänglich
(get SYMBOL 'my-directory)
.
Welche davon wäre die idiomatische Methode, um diese Informationen im Auge zu behalten?
(defvar s 5) (put 's 'd "c:/abc/") (let ((s 4)) (message "d: %s, val: %S" (get 's 'd) s))
. Und OP: Warum sprechen Sie von "Funktionen", nicht von Symbolen? Mir muss etwas fehlen.
let
-Das Binden des Dir-String-Symbols (das als Requisitenwert verwendet wird) sollte kein Problem sein. (Fühlen Sie sich frei zu ignorieren, wenn nicht relevant.)