Scheme R5RS 5 程式結構

2021-07-22 03:29:39 字數 1528 閱讀 7798

scheme程式由一系列表示式,定義和語法定義組成。

出現在程式最高層的定義和語法定義可被解釋為宣告,它們是在最高層環境建立繫結,或者改變已有的最高層繫結的值。

出現在程式最高層的表示式被解釋為命令,當程式被呼叫或被載入時,它們按順序執行,通常會完成某些初始化的工作。

定義只能出現在程式最高層或的開頭

定義的格式:

1. (define

)2. (define()

) 等價於:

(define

(lambda

()))

3. (define

( . )

) ※應為乙個單獨的變數

等價於:

(define

(lambda

))

在程式的最高層,如果變數已繫結,定義

(define )

的作用在本質上與下面的賦值表示式相同:

(set! )

但如果未被繫結,定義就會在執行賦值之前將繫結到乙個新的儲存位置。反之,在乙個未被繫結的變數上執行set!是乙個錯誤。

定義可以出現在的開頭,即內部定義。它們的作用域是整個

例:

(let

((x5)) '第二行開始為部

(define foo (lambda

(y)(bar x y))) '內部定義

(define bar (lambda

(a b)

(+(* a b) a))) '內部定義

(foo

(+ x 3))) => 45

包含內部定義的總可以被轉換為完全定價的letrec表示式。

例:

(let

((x5))

(letrec

((foo

(lambda

(y)(bar x y)))

(bar

(lambda

(a b)

(+(* a b) a))))

(foo

(+ x 3))))

語法定義只能出現在程式最高層

定義的格式:

(define-syntax

)

Scheme R5RS 3 基本概念

乙個識別符號可以命名乙個語法型別,或命名乙個值的儲存位置.命名某語法型別的識別符號被稱為語法關鍵字,也就是說它與該語法繫結在一起.命名某儲存位置的識別符號被稱為變數,即它與該儲存位置繫結在一起.某些表示式型別可用於建立新的語法種類,並將語法關鍵字繫結到新語法.另一些表示式型別可用於建立新的儲存位置,...

5 Go語言基礎 程式結構

名字分類 函式名 變數名 常量名 型別名 語句標號 包名 名字命名規則 unicode字母或下劃線開頭,後面跟任意數量的字母數字下劃線。大小寫字母是不同的名字。包級名字 在函式外部定義的名字交配包級名字。在函式外部定義的函式叫包級函式,包級函式名也是包級名字。可匯出 外部可見性 乙個包級名字首字母大...

雨落C 小課堂 C 程式結構(5)

其實資料型別,指的是一種規範 一種標準,我們說int整型,指的是乙個能夠表示整數,且資料範圍在 2147483648至2147483648之間的一種規範,並沒有具體告訴程式怎樣來儲存這樣的資料。變數就是提供乙個具名的 可供程式操作的儲存空間,可以理解為乙個容器,宣告變數的格式如下 型別說明符 變數名...