%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
;ELC ;;; Compiled ;;; in Emacs version 25.2.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@192 Return alist of symbols inside DATA that start with a `.'. Perform a deep search and return an alist where each car is the symbol, and each cdr is the same symbol without the `.'. (fn DATA) (defalias 'let-alist--deep-dot-search #[257 "\2119\203 \300!\301\302\"\205 \303\304\305\306\211$!BC\207\211:\204# \306\207\307\310@!\310A!\"\207" [symbol-name string-match "\\`\\." intern replace-match "" nil append let-alist--deep-dot-search] 9 (#$ . 411)]) #@76 Return a sexp used to access SYMBOL inside VARIABLE. (fn SYMBOL VARIABLE) (defalias 'let-alist--access-sexp #[514 "\300!\301!\302\303\"\203 \202 \304\305\306\307\310\"\237\"\"\207" [let-alist--remove-dot symbol-name string-match "\\`\\." let-alist--list-to-sexp mapcar intern split-string "\\."] 10 (#$ . 876)]) #@79 Turn symbols LIST into recursive calls to `cdr' `assq' on VAR. (fn LIST VAR) (defalias 'let-alist--list-to-sexp #[514 "\300\301\302@DA\203 \303A\"\202 ED\207" [cdr assq quote let-alist--list-to-sexp] 8 (#$ . 1203)]) #@50 Return SYMBOL, sans an initial dot. (fn SYMBOL) (defalias 'let-alist--remove-dot #[257 "\300!\301\302\"\203 \303\304\305\306\211$!\202 \207" [symbol-name string-match "\\`\\." intern replace-match "" nil] 8 (#$ . 1433)]) #@886 Let-bind dotted symbols to their cdrs in ALIST and execute BODY. Dotted symbol is any symbol starting with a `.'. Only those present in BODY are let-bound and this search is done at compile time. For instance, the following code (let-alist alist (if (and .title .body) .body .site .site.contents)) essentially expands to (let ((.title (cdr (assq \='title alist))) (.body (cdr (assq \='body alist))) (.site (cdr (assq \='site alist))) (.site.contents (cdr (assq \='contents (cdr (assq \='site alist)))))) (if (and .title .body) .body .site .site.contents)) If you nest `let-alist' invocations, the inner one can't access the variables of the outer one. You can, however, access alists inside the original alist by using dots inside the symbol, as displayed in the example above. (fn ALIST &rest BODY) (defalias 'let-alist '(macro . #[385 "\300\301!\302DC\302\303\304\305\306\307\310 !\311\"\312\313%\314\315!!\"BBE\207" [make-symbol "alist" let mapcar make-byte-code 257 "\211@\301@\300\"D\207" vconcat vector [let-alist--access-sexp] 5 "\n\n(fn X)" delete-dups let-alist--deep-dot-search] 13 (#$ . 1668)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\210\307\301!\207" [function-put let-alist lisp-indent-function 1 put edebug-form-spec t provide] 4)