Scheme是一種函數式程序設計語言,其中Common Lisp和Scheme是Lisp語言的兩個主要分支。編程
Scheme的原稱爲Schemer.ide
1. What defines Scheme?函數
Scheme是第一類支持函數性編程(Functional Programming)的語言。所謂的函數行編程既是:設計
當用Scheme編程的時候,應該儘可能避免"Side-Effects",當已給變量賦值之後,就不該該更改數學
該變量的值。it
函數性編程另一個特色便是:函數比其在其餘編譯性語言中的功能更強大。在Scheme中,函數式io
First-Class Object,比如整數在C語言中的功能,能夠將函數傳遞給函數,從其餘函數中返回函數,編譯
在變量中存儲函數、在運行時,做爲表達式計算。程序設計
2.Scheme Programming / Simple Math變量
加法操做
> (+ 2 4)
6
減法操做
>(- 9 8)
1
剩法操做
>(* 7 8)
56
除法操做
>(/ 8 9)
0.8
3. Scheme Expression有一下兩點重要屬性:
(1).Scheme Expression能夠嵌套,由此引出一個概念,Substitional Model。
(2).Some Procedure能夠有可變的參數數量。
4.Scheme中的數學函數
(1) 指數函數
>(expt 2 10)
1024
(2) 平方根函數
>(sqrt 4)
2
5.在Scheme中定義函數
關鍵字lambda用來聲明一個函數或者過程(Procedure),例如:
(lambda (x) (* x x))
定義了一個計算一個數取平方的函數,該函數有一個參數x。
這裏雖然定義了一個函數,可是該函數沒有一個函數名字以供其餘函數調用。
若是想讓該函數能夠被其餘函數調用,應該作以下從新定義:
(define square (lambda (x) (* x x)))
6.Scheme中定義變量
Scheme中定義變量有以下兩種方法:
(1) 用define來定義變量,例如:
(define x 2)定義一個變量x,x的值爲2。
通常形式爲:(define variable_name variable_value)
(2)用let 來定義變量,例如:
(let (2 x) (3 y) (* x y))
定義x的值爲2,y的值爲3,同時作了剩法運算。