程式設計正規化21

2021-08-08 17:26:02 字數 917 閱讀 2750

>(double-all `(123

4))(246

8)>(incr-all `(123

4))(234

5)

(define

(double

x)(*

x2))

(define

(incr x)

(+ =1))

>(map double

'(1 2 3 4))(24

68)

eval這個過程的用法,利用它可以實現用scheme語言本身來解釋scheme表示式的功能,這對乙個學習編譯系統和scheme語法功能的實現非常重要。下面是在guile中執行eval過程來解釋scheme表示式的情況:

guile> (primitive-eval

'(+ 2 3))

5guile> (eval '(+

12) (interaction-environment))

3

這裡面包含了兩個版本的eval過程,首先是原始的guile內部使用的primitive-eval,它可以直接解釋執行scheme表示式;第二個是正常的eval過程,它需要兩個引數,乙個是要解釋執行的要scheme表示式,第二個是表示式執行的環境,可以由interaction-environment過程來獲得,如此則eval過程正常執行。

可以想象用c語言來寫c語言編譯器對初學者來說的難度,但掌握scheme語法和eval的用法後,你會發現用scheme語言來寫乙個scheme語言直譯器並不是很難,這可能成為你理解編譯原理的重要一步。

我們在感覺到scheme語言的簡單易用的同時,還應該意識到它是一門富於挑戰意義的語言,相信現在我們能夠真正理解scheme挑戰意義的所在了吧。

程式設計正規化總結

什麼是物件導向程式設計?object oriented programming oop 把物件作為基本單元,把物件抽象成類 class 包含成員和方法 資料封裝 繼承 多型 python中使用類來實現。過程式程式設計 函式 oop 類 類變數和例項變數的區別 區分類變數和例項變數 類變數由所有例項共...

程式設計正規化概述

程式設計正規化這個名詞聽起來好像比較高深,但是其實本質上是它是對於程式設計風格,或者設計思路的抽象。它並不是跟程式語言是一一繫結的關係,有些程式語言python 天生可以支援多種程式設計正規化。從程式設計根本思維上的差異上區分,目前主要分成兩種 命令式 指令式 程式設計 和宣告式程式設計 命令式程式...

程式設計正規化 程式設計的本質

程式設計正規化的種類 很多人認同的兩個觀點 程式 資料結構 演算法 這個表示式認為,如果資料結構設計得好,演算法也會變得簡單,而且乙個好的通用的演算法應該可以用在不同的資料結構上。演算法 控制 業務邏輯 這個表示式則想表達的是資料結構不複雜,複雜的是演算法,演算法由兩個邏輯組成,乙個是真正的業務邏輯...