diff options
| author | Craig Jennings <c@cjennings.net> | 2025-08-14 22:58:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-08-14 22:58:58 -0500 |
| commit | 82ba818ff456bcd6d56a06226e3f27e98fbb55c3 (patch) | |
| tree | 158cfc17b2f644a10f063cb546752cfaae12c97f /devdocs/elisp/setting-variables.html | |
| parent | 9278ddd4ea1a8b1a4c1edaa8894516e3f48d245b (diff) | |
| download | dotemacs-82ba818ff456bcd6d56a06226e3f27e98fbb55c3.tar.gz dotemacs-82ba818ff456bcd6d56a06226e3f27e98fbb55c3.zip | |
removing all downloaded devdocs files
Diffstat (limited to 'devdocs/elisp/setting-variables.html')
| -rw-r--r-- | devdocs/elisp/setting-variables.html | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/devdocs/elisp/setting-variables.html b/devdocs/elisp/setting-variables.html deleted file mode 100644 index e44f94d9..00000000 --- a/devdocs/elisp/setting-variables.html +++ /dev/null @@ -1,55 +0,0 @@ - <h3 class="section">Setting Variable Values</h3> <p>The usual way to change the value of a variable is with the special form <code>setq</code>. When you need to compute the choice of variable at run time, use the function <code>set</code>. </p> <dl> <dt id="setq">Special Form: <strong>setq</strong> <em>[symbol form]…</em> -</dt> <dd> -<p>This special form is the most common method of changing a variable’s value. Each <var>symbol</var> is given a new value, which is the result of evaluating the corresponding <var>form</var>. The current binding of the symbol is changed. </p> <p><code>setq</code> does not evaluate <var>symbol</var>; it sets the symbol that you write. We say that this argument is <em>automatically quoted</em>. The ‘<samp>q</samp>’ in <code>setq</code> stands for “quoted”. </p> <p>The value of the <code>setq</code> form is the value of the last <var>form</var>. </p> <div class="example"> <pre class="example">(setq x (1+ 2)) - ⇒ 3 -</pre> -<pre class="example">x ; <span class="roman"><code>x</code> now has a global value.</span> - ⇒ 3 -</pre> -<pre class="example">(let ((x 5)) - (setq x 6) ; <span class="roman">The local binding of <code>x</code> is set.</span> - x) - ⇒ 6 -</pre> -<pre class="example">x ; <span class="roman">The global value is unchanged.</span> - ⇒ 3 -</pre> -</div> <p>Note that the first <var>form</var> is evaluated, then the first <var>symbol</var> is set, then the second <var>form</var> is evaluated, then the second <var>symbol</var> is set, and so on: </p> <div class="example"> <pre class="example">(setq x 10 ; <span class="roman">Notice that <code>x</code> is set before</span> - y (1+ x)) ; <span class="roman">the value of <code>y</code> is computed.</span> - ⇒ 11 -</pre> -</div> </dd> -</dl> <dl> <dt id="set">Function: <strong>set</strong> <em>symbol value</em> -</dt> <dd> -<p>This function puts <var>value</var> in the value cell of <var>symbol</var>. Since it is a function rather than a special form, the expression written for <var>symbol</var> is evaluated to obtain the symbol to set. The return value is <var>value</var>. </p> <p>When dynamic variable binding is in effect (the default), <code>set</code> has the same effect as <code>setq</code>, apart from the fact that <code>set</code> evaluates its <var>symbol</var> argument whereas <code>setq</code> does not. But when a variable is lexically bound, <code>set</code> affects its <em>dynamic</em> value, whereas <code>setq</code> affects its current (lexical) value. See <a href="variable-scoping">Variable Scoping</a>. </p> <div class="example"> <pre class="example">(set one 1) -error→ Symbol's value as variable is void: one -</pre> -<pre class="example">(set 'one 1) - ⇒ 1 -</pre> -<pre class="example">(set 'two 'one) - ⇒ one -</pre> -<pre class="example">(set two 2) ; <span class="roman"><code>two</code> evaluates to symbol <code>one</code>.</span> - ⇒ 2 -</pre> -<pre class="example">one ; <span class="roman">So it is <code>one</code> that was set.</span> - ⇒ 2 -(let ((one 1)) ; <span class="roman">This binding of <code>one</code> is set,</span> - (set 'one 3) ; <span class="roman">not the global value.</span> - one) - ⇒ 3 -</pre> -<pre class="example">one - ⇒ 2 -</pre> -</div> <p>If <var>symbol</var> is not actually a symbol, a <code>wrong-type-argument</code> error is signaled. </p> <div class="example"> <pre class="example">(set '(x y) 'z) -error→ Wrong type argument: symbolp, (x y) -</pre> -</div> </dd> -</dl><div class="_attribution"> - <p class="_attribution-p"> - Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc. <br>Licensed under the GNU GPL license.<br> - <a href="https://www.gnu.org/software/emacs/manual/html_node/elisp/Setting-Variables.html" class="_attribution-link">https://www.gnu.org/software/emacs/manual/html_node/elisp/Setting-Variables.html</a> - </p> -</div> |
