久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔
站長百科 | 數(shù)字化技能提升教程 數(shù)字化時代生存寶典
首頁
數(shù)字化百科
電子書
建站程序
開發(fā)
服務(wù)器
辦公軟件
開發(fā)教程
服務(wù)器教程
軟件使用教程
運(yùn)營教程
熱門電子書
WordPress教程
寶塔面板教程
CSS教程
Shopify教程
導(dǎo)航
程序頻道
推廣頻道
網(wǎng)賺頻道
人物頻道
網(wǎng)站程序
網(wǎng)頁制作
云計算
服務(wù)器
CMS
論壇
網(wǎng)店
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航
WIKI使用導(dǎo)航
WIKI首頁
最新資訊
網(wǎng)站程序
站長人物
頁面分類
使用幫助
編輯測試
創(chuàng)建條目
網(wǎng)站地圖
站長百科導(dǎo)航
站長百科
主機(jī)偵探
IDCtalk云說
跨境電商導(dǎo)航
WordPress啦
站長專題
網(wǎng)站推廣
網(wǎng)站程序
網(wǎng)站賺錢
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航專題
云計算
微博營銷
虛擬主機(jī)管理系統(tǒng)
開放平臺
WIKI程序與應(yīng)用
美國十大主機(jī)
編輯“
Scheme
”
人物百科
|
營銷百科
|
網(wǎng)賺百科
|
站長工具
|
網(wǎng)站程序
|
域名主機(jī)
|
互聯(lián)網(wǎng)公司
|
分類索引
跳轉(zhuǎn)至:
導(dǎo)航
、?
搜索
警告:
您沒有登錄。如果您做出任意編輯,您的IP地址將會公開可見。如果您
登錄
或
創(chuàng)建
一個賬戶,您的編輯將歸屬于您的用戶名,且將享受其他好處。
反垃圾檢查。
不要
加入這個!
[[Image:Scheme-logo.jpg|right|thumb|310px|Scheme-[[logo]]]] '''Scheme''',一種多范型的[[編程語言]],它是兩種[[Lisp]]的一個現(xiàn)代變種。它是由Guy L. Steele跟Gerald Jay Sussman在1970年代發(fā)展出來。Scheme也是第一個使用靜態(tài)而非動態(tài)變量區(qū)域的Lisp方言。Scheme的哲學(xué)思想是:設(shè)計計算機(jī)語言不應(yīng)該進(jìn)行功能(feature)的堆砌,而應(yīng)該盡可能減少弱點(diǎn)(weakness)和限制(restriction),使剩下的功能顯得必要。Scheme語言的規(guī)范很短,總共只有50頁,甚至連Common Lisp 規(guī)范的索引的長度都不到,但是卻被稱為是現(xiàn)代編程語言王國的皇后。它與以前和以后的 Lisp 實(shí)現(xiàn)版本都存在一些差異,但是卻易學(xué)易用。 Scheme的一個主要特性是可以像操作數(shù)據(jù)一樣操作函數(shù)調(diào)用。Scheme 是 [[MIT]] 在70年代創(chuàng)造出來,其的主要目的是訓(xùn)練人的機(jī)器化思維。以其簡潔的語言環(huán)境和大量的腦力思考而著稱。 正由于lisp語言的歷史悠久,所以最初接觸scheme的語法,我們常會感到一頭霧水。但是這種語言自有它獨(dú)特的魅力。 == Scheme特點(diǎn) == ;括號嵌套 Lisp 程序中充滿了一對對嵌套的小括號,這些嵌套的符號體現(xiàn)了最基本的數(shù)學(xué)思想——[[遞歸]]。 ;語法簡潔 Scheme語言的規(guī)范很短,總共只有50頁。 ;函數(shù)編程語言 一個函數(shù)(Function)是這個編程語言中所謂的第一等的公民。也就是說函式可以像一個 int 或者 float 一樣被很方便的傳遞來傳遞去。這也就是所謂“Functional 編程語言”中,F(xiàn)unctional 一詞的由來。 ;自動[[內(nèi)存]]管理 自動內(nèi)存管理可不是[[JAVA]]的專利,Scheme也享有自動內(nèi)存管理機(jī)制。 ;支持尾遞歸 ;提高了遞歸效率 支持高級控制結(jié)構(gòu)continuation ;可移植性好 Scheme開發(fā)的程序有很好的可移植性,這是由于Scheme是一種解釋語言,在不同的平臺都可以有相應(yīng)的解釋器。 ;適合作為[[腳本語言]]和嵌入語言 由于scheme語法簡潔,一個Scheme解釋器可以非常的小巧。Scheme可以作為腳本語言而內(nèi)嵌于一些工具之中,如:[[GNU]] Emacs。 ;[[關(guān)鍵字]]對大小寫不敏感 == Scheme數(shù)據(jù)結(jié)構(gòu) == ;數(shù)字 下面都是合法的數(shù)字表示方法:47,1/3,2.3,4.3e14,1+3i。 ;字符 字符前面需要用#\做前綴。如下面都是合法字符: <pre>#\a #\A #\b #\B #\space #\newline</pre> ;[[字符串]] 由雙引號括起來的字符組成字符串。如:"A little string" ;布爾值 布爾值True和False分別用 #t 和 #f 表示。 ;列表 用圓括號括起來的,可以包含任何[[數(shù)據(jù)類型]]的稱為列表。如: (a little (list of) (lists)) ;數(shù)組(vector) 用#為前綴,如: #(1 2 "string" #\x 5) ;函數(shù)(或稱為過程) 把函數(shù)作為一種數(shù)據(jù)類型,是Scheme語言的特色。 ;符號 符號除了不能夠以數(shù)字開頭的任何字符可組成符號。如:Symbols: this-is-a-symbol foo a32 c$23*4&7+3-is-a-symbol-too! ==Scheme注釋== 分號開始一段注釋。如: <pre> (+ 3 1) ; return 4 </pre> ==Scheme常量表達(dá)式== 常量表達(dá)式返回本身的值。如: <pre> 3.14 ; 返回 3.14 #t ; 返回布爾值 #t #\c ; 返回字符 #\c "Hi!" ; 返回字符串 "Hi!" </pre> ==Scheme引用(Quotation)== <pre> 語法: (quote obj) 或者簡寫為 'obj (+ 2 3) ; 返回 5 '(+ 2 3) ; 返回列表 (+ 2 3) (quote (+ 2 3)) ; 返回列表 (+ 2 3) </pre> ==Scheme表達(dá)式記法== Scheme的表達(dá)式的寫法有些特別,表達(dá)式用括號括起來。括號里面的第一個出線的是函數(shù)名或者操作符,其它是參數(shù)。Scheme的這種表達(dá)式寫法可以叫做前置式。下面是一些Scheme的表達(dá)式的例子以及其對應(yīng)的[[C語言]]的寫法。 <pre> Scheme C ------------------------------------------------------------------ (+ 2 3 4) (2 + 3 + 4) (< low x high) ((low < x) && (x < high)) (+ (* 2 3) (* 4 5)) ((2 * 3) + (4 * 5)) (f x y) f(x, y) (define (sq x) (* x x)) int sq(int x) { return (x * x) } </pre> ==Scheme對象綁定、賦值和函數(shù)定義== let 表達(dá)式語法糖果 <pre> 語法: (let ((var val) ...) exp1 exp2 ...) </pre> <font color="red">說明:let 表達(dá)式是 lambda 表達(dá)式的語法糖果,即:(let ((var val) ...) exp1 exp2 ...),為 ((lambda (var ...) exp1 exp2) val ...)</font> :示例: (let ((x 2) (y 3)) (+ x y)) ; 先綁定: x=2, y=3,再計算x+y的值,結(jié)果為5。注意 (x 2) 和 (y 3) 外還有一層括號。 :更多的示例: <pre> (let ((f +)) (f 2 3)) ; return 5 (let ((f +) (x 2)) (f x 3)) ; return 5 (let ((f +) (x 2) (y 3)) (f x y)) ; return 5 </pre> ;用 define 綁定對象和 set! 賦值 :語法:(define var exp) , (set! var exp) :說明:define綁定的對象在當(dāng)前作用域中有效。define 和 set! 的區(qū)別是[[define]]既能賦值又能定義變量,而set!只能對已經(jīng)定義的變量賦值。 :示例: <pre> (define a 1) a ; return 1 (set! a 2) a ; return 2 (let ((a 3)) a) ; return 3 a ; return 2 (let ((a 3)) (set! a 4) a) ; return 4 a ; return 2 (let ((a 3)) (define a 5) a) ; return 5 a ; return 2 (set! b 1) ; 錯誤,b尚未定義 </pre> ;lambda 表達(dá)式和函數(shù)定義 :語法:(lambda (var ...) exp1 exp2 ...) :說明:[[lambda]] 表達(dá)式用于定義函數(shù)。var ... 是參數(shù),exp1 exp2 ...是函數(shù)的執(zhí)行 部分。通常需要結(jié)合局部定義 let 或者全局定義表達(dá)式 define,再進(jìn)行函數(shù)調(diào)用。 :示例: <pre>((lambda (x) (+ x x)) (* 3 4)) ; return 24</pre> :說明:先用lambda定義了函數(shù),參數(shù)是x,函數(shù)返回x+x。同時該語句也完成了函數(shù)調(diào)用,實(shí)參是 12 (等于3*4),因此返回值是 24 (等于12+12)。 在let表達(dá)式中定義函數(shù)。 Scheme語言中,函數(shù)作為一種數(shù)據(jù)類型,通過賦值語句,將lambda表達(dá)式賦值給相應(yīng)的函數(shù)。 :示例: <pre> (let ((double (lambda (x) (+ x x)))) (list (double (* 3 4)) (double (/ 99 11)) (double (- 2 7)))) ; return (24 18 -10) </pre> :說明:let表達(dá)式將lambda定義的函數(shù)賦值給double,參數(shù)是x,返回 x+x。接下來分別三次調(diào)用 double 函數(shù),并將結(jié)果以列表形式返回。list 表達(dá)式負(fù)責(zé)生成列表。 用define全局定義表達(dá)式來定義函數(shù)。 用 let 定義的函數(shù)只能在 let 表達(dá)式中有效,如果想定義在整個程序中有效的函數(shù)定義,需要用到全局定義表達(dá)式——define。 :示例: <pre> (define double (lambda (x) (+ x x))) (double 12) ; return 24 (double (* 3 4)) ; return 24 </pre> :說明:define表達(dá)式定義了全局有效的函數(shù) double。兩次調(diào)用double的返回值都是 24。 定義函數(shù)的簡寫 用 define 定義的函數(shù)的語法可以簡化,即將 lambda 去掉。即將語法 <pre> (define var0 (lambda (var1 ... varn) e1 e2 ...)) 簡寫為: (define (var0 var1 ... varn) e1 e2 ...) </pre> :示例: <pre> (define (double x) (+ x x)) (double 12) ; return 24 (double (* 3 4)) ; return 24 </pre> :說明:本例是前一個例子的簡化版本。更簡介,明了。 ==Scheme順序計算表達(dá)式== :語法:(begin exp1 exp2 ...) :說明:順序執(zhí)行表達(dá)式 exp1, exp2, ...,返回最后一個表達(dá)式的結(jié)果 :示例: <pre> (define x 3) (begin (set! x (+ x 1)) (+ x x)) ; 返回結(jié)果 8 </pre> :說明:begin 表達(dá)式,依次先用set!表達(dá)式為x賦值為4,在運(yùn)算x+x,返回結(jié)果8。 主要的Scheme環(huán)境有:MIT Scheme、DrScheme ==相關(guān)條目== *[[MHTML]] *[[XHTML]] *[[XML]] *[[VML]] *[[HTML5]] *[[Schema]] *[[DTD]] ==參考來源== *http://baike.soso.com/v581882.htm?sp=SSTScheme *http://zh.wikipedia.org/zh-cn/Scheme [[category:標(biāo)記語言|S]] [[category:編程語言|S]]
摘要:
請注意,您對站長百科的所有貢獻(xiàn)都可能被其他貢獻(xiàn)者編輯,修改或刪除。如果您不希望您的文字被任意修改和再散布,請不要提交。
您同時也要向我們保證您所提交的內(nèi)容是您自己所作,或得自一個不受版權(quán)保護(hù)或相似自由的來源(參閱
Wordpress-mediawiki:版權(quán)
的細(xì)節(jié))。
未經(jīng)許可,請勿提交受版權(quán)保護(hù)的作品!
取消
編輯幫助
(在新窗口中打開)
取自“
http://kktzf.com.cn/wiki/Scheme
”