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

LISP - 基本語法

LISP基本構建塊

Lisp程序是由三個基本構建塊:

  • atom

  • list

  • string

一個原子是一個數(shù)字連續(xù)字符或字符串。它包括數(shù)字和特殊字符。

以下是一些有效的原子的例子:

hello-from-tutorials-yiibai
name
123008907
*hello*
Block#221
abc123

列表是包含在括號中的原子和/或其他列表的序列。以下是一些有效的列表的示例:

( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )

字符串是一組括在雙引號字符。以下是一些有效的字符串的例子:

" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Yiibai'! "

添加注釋

分號符號(;)是用于表示一個注釋行。

例如,

(write-line "Hello World") ; greet the world
; tell them your whereabouts
(write-line "I am at 'Tutorials Yiibai'! Learning LISP")

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

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

移動到下一節(jié)之前的一些值得注意的要點

以下是一些要點需要注意:

  • 在LISP語言的基本數(shù)學運算是 +, -, *, 和 /

  • Lisp實際上是一個函數(shù)調用f(x)為 (f x),例如 cos(45)被寫入為 cos 45

  • LISP表達式是不區(qū)分大小寫的,cos 45 或COS 45是相同的。

  • LISP嘗試計算一切,包括函數(shù)的參數(shù)。只有三種類型的元素是常數(shù),總是返回自己的值:

    • 數(shù)字

    • 字母t,即表示邏輯真

    • 該值為nil,這表示邏輯false,還有一個空的列表。

稍微介紹一下LISP形式

在前面的章節(jié)中,我們提到LISP代碼計算過程中采取以下步驟:

  • 讀取器轉換字符到LISP對象的字符串或 s-expressions.

  • 求值器定義為那些從s-表達式內置的Lisp語法形式。計算第二個級別定義的語法決定了S-表達式是LISP語言形式。

現(xiàn)在,一個LISP的形式可以是:

  • 一個原子

  • 空或非名單

  • 有符號作為它的第一個元素的任何列表

求值器可以作為一個函數(shù),它接受一個有效的LISP語言的形式作為參數(shù),并返回一個值。這個就是為什么我們把括號中的LISP語言表達,因為我們要發(fā)送的整個表達式/形式向求值作為參數(shù)的原因。

LISP命名約定

名稱或符號可以包含任意數(shù)量的空白相比,開放和右括號,雙引號和單引號,反斜杠,逗號,冒號,分號和豎線其他字母數(shù)字字符。若要在名稱中使用這些字符,需要使用轉義字符()。

一個名字可以包含數(shù)字,但不能全部由數(shù)字組成,因為那樣的話它會被解讀為一個數(shù)字。同樣的名稱可以具有周期,但周期不能完全進行。

使用單引號

LISP計算一切,包括函數(shù)的參數(shù)和列表的成員。

有時,我們需要采取原子或列表字面上,不希望他們求值或當作函數(shù)調用。

要做到這一點,我們需要先原子或列表中帶有單引號。

下面的例子演示了這一點:

創(chuàng)建一個名為main.lisp文件,并鍵入下面的代碼進去:

(write-line "single quote used, it inhibits evaluation")
(write '(* 2 3))
(write-line " ")
(write-line "single quote not used, so expression evaluated")
(write (* 2 3))

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

single quote used, it inhibits evaluation
(* 2 3) 
single quote not used, so expression evaluated
6

上一篇:LISP - 數(shù)組下一篇:LISP - 文件I/O