LISP運算式稱為符號運算式或S-運算式。s運算式是由三個有效對象,原子,列表和字串。
任意的s-運算式是一個有效的程式。
Lisp程式在解釋器或編譯的代碼運行。
解釋器會檢查重複的迴圈,這也被稱為讀 - 計算 - 列印迴圈(REPL)源代碼。它讀取程式代碼,計算,並列印由程式返回值。
一個簡單的程式
讓我們寫一個s-運算式找到的三個數字7,9和11的總和。要做到這一點,我們就可以輸入在提示符的解釋器 ->:
(+7911)
LISP返回結果:
27
如果想運行同一程式的編譯代碼,那麼創建一個名為myprog的一個LISP源代碼檔。並在其中輸入如下代碼:
(write(+7911))
單擊Execute按鈕,或按下Ctrl+ E,LISP立即執行它,返回的結果是:
27
Lisp使用首碼表示法
可能已經注意到,使用LISP首碼符號。
在上面的程式中的+符號可以作為對數的求和過程中的函數名。
在前綴表示法,運算符在自己運算元前寫。例如,運算式,
a * ( b + c ) / d
將被寫為:
(/ (* a (+ b c) ) d)
讓我們再舉一個例子,讓我們寫的代碼轉換為60o F華氏溫度到攝氏刻度:
此轉換的數學運算式為:
(60 * 9 / 5) + 32
創建一個名為main.lisp一個源代碼檔,並在其中輸入如下代碼:
(write(+ (* (/ 9 5) 60) 32))
當單擊Execute按鈕,或按下Ctrl+ E,MATLAB立即執行它,返回的結果是:
140
計算Lisp程式
計算LISP程式有兩部分:
-
程式文本由一個讀取器程式轉換成Lisp對象
-
語言的語義在這些對象中的條款執行求值程式
計算過程採用下麵的步驟:
讀取器轉換字元到LISP對象或S-運算式的字串。
求值器定義為那些從s-運算式內置的Lisp語法形式。計算第二個級別定義的語法決定了S-運算式是LISP語言形式。
求值器可以作為一個函數,它接受一個有效的LISP語言的形式作為參數並返回一個值。這就是為什麼我們把括弧中的LISP語言表達,因為我們要發送的整個運算式/形式向求值作為參數的原因。
'Hello World' 程式
學習一門新的編程語言並沒有真正起飛,直到學會如何迎接語言的整個世界,對吧!
所以,創建一個名為main.lisp新的源代碼檔,並在其中輸入如下代碼:
(write-line "Hello World") (write-line "I am at 'Tutorials zaixian'! Learning LISP")
當單擊Execute按鈕,或按下Ctrl+ E,LISP立即執行它,返回的結果是:
Hello World I am at 'Tutorials zaixian'! Learning LISP