添加的内容 删除的内容
小 (机器人:修正重定向) |
小 (机器人:自动替换格式) |
||
第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> |
||
然後跳轉到起始標記。 |
然後跳轉到起始標記。 |
||