
- LISP 教程
- LISP - 首頁
- LISP - 概述
- LISP - 環境
- LISP - 程式結構
- LISP - 基本語法
- LISP - 資料型別
- LISP - 宏
- LISP - 變數
- LISP - 常量
- LISP - 運算子
- LISP - 決策
- LISP - 迴圈
- LISP - 函式
- LISP - 謂詞
- LISP - 數字
- LISP - 字元
- LISP - 陣列
- LISP - 字串
- LISP - 序列
- LISP - 列表
- LISP - 符號
- LISP - 向量
- LISP - 集合
- LISP - 樹
- LISP - 雜湊表
- LISP - 輸入與輸出
- LISP - 檔案I/O
- LISP - 結構體
- LISP - 包
- LISP - 錯誤處理
- LISP - CLOS
- LISP 有用資源
- Lisp - 快速指南
- Lisp - 有用資源
- Lisp - 討論
Lisp - 程式結構
LISP 表示式稱為符號表達式或 s-表示式。s-表示式由三個有效物件組成:原子、列表和字串。
任何 s-表示式都是一個有效的程式。
LISP 程式要麼在直譯器上執行,要麼作為編譯程式碼執行。
直譯器在重複迴圈中檢查原始碼,這也被稱為讀取-評估-列印迴圈 (REPL)。它讀取程式程式碼,對其進行評估,並列印程式返回的值。
一個簡單的程式
讓我們編寫一個 s-表示式來查詢三個數字 7、9 和 11 的總和。為此,我們可以在直譯器提示符下輸入。
; execuate sum of three numbers (+ 7 9 11)
LISP 返回結果 -
27
如果您想將同一個程式作為編譯程式碼執行,則建立一個名為 myprog.lisp 的 LISP 原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; print sum of three numbers (write (+ 7 9 11))
輸出
當您單擊“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,並且返回的結果為 -
27
LISP 使用字首表示法
您可能已經注意到 LISP 使用字首表示法。
在上面的程式中,+ 符號用作求和過程的函式名。
在字首表示法中,運算子寫在其運算元之前。例如,表示式,
a * ( b + c ) / d
將寫成 -
; prefix mode operation (/ (* a (+ b c) ) d)
讓我們再舉一個例子,讓我們編寫將 60o F 的華氏溫度轉換為攝氏溫標的程式碼 -
此轉換的數學表示式將為 -
(60 * 9 / 5) + 32
建立一個名為 main.lisp 的原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; evaluate and print arithmetic expression (write(+ (* (/ 9 5) 60) 32))
輸出
當您單擊“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,並且返回的結果為 -
140
LISP 程式的評估
LISP 程式的評估分為兩個部分 -
由讀取程式將程式文字轉換為 Lisp 物件
由評估程式根據這些物件實現語言的語義
評估過程執行以下步驟 -
讀取器將字元字串轉換為 LISP 物件或s-表示式。
評估器定義由 s-表示式構建的 Lisp形式的語法。這第二個級別的評估定義了一個語法,該語法確定哪些s-表示式是 LISP 形式。
評估器充當一個函式,它以有效的 LISP 形式作為引數並返回一個值。這就是我們將 LISP 表示式放在括號中的原因,因為我們將整個表示式/形式作為引數傳送給評估器。
“Hello World”程式
學習一門新的程式語言,直到你學會了用這種語言向全世界打招呼,才算真正開始,對吧!
因此,請建立一個名為 main.lisp 的新原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; print Hello World (write-line "Hello World") ; print the statement (write-line "I am at 'Tutorials Point'! Learning LISP")
輸出
當您單擊“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,並且返回的結果為 -
Hello World I am at 'Tutorials Point'! Learning LISP