Common Lisp:修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
(机器人:修正重定向)
(机器人:自动替换格式)
 
第254行: 第254行:
=== 環境 ===
=== 環境 ===
==== 全局 ====
==== 全局 ====
Lisp中的一些環境總是存在於全局作用域之中, 例如定義了一個新型別,那麼以後在任何地方都會知道它。<br />
Lisp中的一些環境總是存在於全局作用域之中, 例如定義了一個新型別,那麼以後在任何地方都會知道它。<br>
該類型別的參照會從全局作用域中的環境去尋找。
該類型別的參照會從全局作用域中的環境去尋找。


第349行: 第349行:


=== 使用巨集定義控制結構的範例 ===
=== 使用巨集定義控制結構的範例 ===
Lisp編程人員能夠利用巨集來創造新的語法形式。典型的用途是創建新的控制結構。<br />
Lisp編程人員能夠利用巨集來創造新的語法形式。典型的用途是創建新的控制結構。<br>
此處提供一個<code>until</code>循環結構的巨集範例,其語法如下:
此處提供一個<code>until</code>循環結構的巨集範例,其語法如下:


第369行: 第369行:
</syntaxhighlight>
</syntaxhighlight>


<code>tagbody</code>是一個基本的Common Lisp運算子,它提供了命名標籤的能力,並使用<code>go</code>形式跳轉到這些標籤。<br />
<code>tagbody</code>是一個基本的Common Lisp運算子,它提供了命名標籤的能力,並使用<code>go</code>形式跳轉到這些標籤。<br>
反引號<code>`</code>的用途類似單引號<code>'</code>(相當於quote函數,引用形式當成資料而不求值),它還是一個可作代碼[[模板(C++)|模板]]<br />
反引號<code>`</code>的用途類似單引號<code>'</code>(相當於quote函數,引用形式當成資料而不求值),它還是一個可作代碼[[模板(C++)|模板]]<br>
的符號,其中需要求值的形式參數以逗號<code>,</code>開頭填入模板;而以<code>,@</code>符號為開頭的形式參數,其中嵌套的內容會<br />
的符號,其中需要求值的形式參數以逗號<code>,</code>開頭填入模板;而以<code>,@</code>符號為開頭的形式參數,其中嵌套的內容會<br>
再被拆解評估。<code>tagbody</code>形式測試結束條件。如果條件為真,則跳轉到結束標籤;否則執行主體的代碼,<br />
再被拆解評估。<code>tagbody</code>形式測試結束條件。如果條件為真,則跳轉到結束標籤;否則執行主體的代碼,<br>
然後跳轉到起始標記。
然後跳轉到起始標記。