鍍金池/ 教程/ Java/ LISP - 程序結(jié)構(gòu)
LISP - 樹
LISP - 錯(cuò)誤處理
LISP - 謂詞
LISP - 決策
LISP - 變量
LISP - 數(shù)組
LISP - 對象系統(tǒng)(CLOS)
LISP - 輸入和輸出
Lisp教程
LISP - 數(shù)字
LISP - 循環(huán)
LISP - 常量
LISP - 集合
LISP - 字符
LISP - 程序結(jié)構(gòu)
LISP - 文件I/O
LISP - 哈希表
LISP - 宏
LISP - 數(shù)據(jù)類型
LISP - 包
LISP - 符號
LISP - 運(yùn)算符
LISP - 基本語法
LISP - 函數(shù)
LISP - 向量
LISP - 結(jié)構(gòu)
LISP - 概述介紹

LISP - 程序結(jié)構(gòu)

LISP表達(dá)式稱為符號表達(dá)式或S-表達(dá)式。s表達(dá)式是由三個(gè)有效對象,原子,列表和字符串。

任意的s-表達(dá)式是一個(gè)有效的程序。

Lisp程序在解釋器或編譯的代碼運(yùn)行。

解釋器會(huì)檢查重復(fù)的循環(huán),這也被稱為讀 - 計(jì)算 - 打印循環(huán)(REPL)源代碼。它讀取程序代碼,計(jì)算,并打印由程序返回值。

一個(gè)簡單的程序

讓我們寫一個(gè)s-表達(dá)式找到的三個(gè)數(shù)字7,9和11的總和。要做到這一點(diǎn),我們就可以輸入在提示符的解釋器 ->:

(+7911)

LISP返回結(jié)果:

27

如果想運(yùn)行同一程序的編譯代碼,那么創(chuàng)建一個(gè)名為myprog的一個(gè)LISP源代碼文件。并在其中輸入如下代碼:

(write(+7911))

單擊Execute按鈕,或按下Ctrl+ E,LISP立即執(zhí)行它,返回的結(jié)果是:

27

Lisp使用前綴表示法

可能已經(jīng)注意到,使用LISP前綴符號。

在上面的程序中的+符號可以作為對數(shù)的求和過程中的函數(shù)名。

在前綴表示法,運(yùn)算符在自己操作數(shù)前寫。例如,表達(dá)式,

a * ( b + c ) / d

將被寫為:

(/ (* a (+ b c) ) d)

讓我們再舉一個(gè)例子,讓我們寫的代碼轉(zhuǎn)換為60o F華氏溫度到攝氏刻度:

此轉(zhuǎn)換的數(shù)學(xué)表達(dá)式為:

(60 * 9 / 5) + 32

創(chuàng)建一個(gè)名為main.lisp一個(gè)源代碼文件,并在其中輸入如下代碼:

(write(+ (* (/ 9 5) 60) 32))

當(dāng)單擊Execute按鈕,或按下Ctrl+ E,MATLAB立即執(zhí)行它,返回的結(jié)果是:

140

計(jì)算Lisp程序

計(jì)算LISP程序有兩部分:

  • 程序文本由一個(gè)讀取器程序轉(zhuǎn)換成Lisp對象

  • 語言的語義在這些對象中的條款執(zhí)行求值程序

計(jì)算過程采用下面的步驟:

讀取器轉(zhuǎn)換字符到LISP對象或S-表達(dá)式的字符串。

求值器定義為那些從s-表達(dá)式內(nèi)置的Lisp語法形式。計(jì)算第二個(gè)級別定義的語法決定了S-表達(dá)式是LISP語言形式。

求值器可以作為一個(gè)函數(shù),它接受一個(gè)有效的LISP語言的形式作為參數(shù)并返回一個(gè)值。這就是為什么我們把括號中的LISP語言表達(dá),因?yàn)槲覀円l(fā)送的整個(gè)表達(dá)式/形式向求值作為參數(shù)的原因。

'Hello World' 程序

學(xué)習(xí)一門新的編程語言并沒有真正起飛,直到學(xué)會(huì)如何迎接語言的整個(gè)世界,對吧!

所以,創(chuàng)建一個(gè)名為main.lisp新的源代碼文件,并在其中輸入如下代碼:

(write-line "Hello World")
(write-line "I am at 'Tutorials Yiibai'! Learning LISP")

當(dāng)單擊Execute按鈕,或按下Ctrl+ E,LISP立即執(zhí)行它,返回的結(jié)果是:

Hello World
I am at 'Tutorials Yiibai'! Learning LISP

上一篇:Lisp教程下一篇:LISP - 循環(huán)