The Little Schemer-CHP1

在 Windows 下配置環(huán)境
  1. http://racket-lang.org/ 下載 Racket 并安裝
  2. 運行開始菜單 Racket->DrRacket
  3. 在DrRacket的菜單 Language 里選擇 Choose Language 選擇 R5RS
  4. 點擊 Run权逗, 在下面的 REPL 里面就可以了
原子(atom)

原子 -> 數(shù)字 | 符號 | 字符串
eg: atom肠仪、turkey认然、1492蜗帜、u科侈、*abc$...

列表(list)

由0到多個atom或者list組成四苇,用括號包圍起來
eg: (atom)装处、(atom turkey or)、((atom turkey) or)挣郭、(((how) are) ((you) (doing so)) far)...

S表達(dá)式
  • 所有的atom都是S表達(dá)式
  • 所有的list都是S表達(dá)式

S表達(dá)式 -> 原子 | 列表

Scheme

Scheme語言是Lisp的一種方言垃杖,它沒有nil的概念,只有空表()丈屹。
Scheme語言的求值策略:Scheme語言中的函數(shù)是按值調(diào)用的(call by value),在求值函數(shù)體之前伶棒,實參會先被求值旺垒。
舉例如下:
(display (* 2 3))中,(* 2 3)并不會被看成是具有3個元素的列表肤无,而是看成乘法函數(shù)調(diào)用先蒋,在display調(diào)用之前,會先求值(* 2 3) => 6宛渐,結(jié)果是顯示6竞漾。
假如,我們一定要把(* 2 3)看成是列表呢窥翩?
就需要引用它业岁。(display '(* 2 3)) or (display (quote (* 2 3)))
此時,'(* 2 3)求值為列表(* 2 3)寇蚊。
結(jié)果是顯示(* 2 3)笔时。

常用函數(shù)

The Five Rules

The Law of Car: the primitive car is defined only for non-empty lists
The Law of Cdr: the primitive cdr is defined only for non-empty lists.The cdr of any non-empty list is always another list.
The Law of Cons: The primitive cons takes two arguments. The first one is any S-expression; the second one is any list. The result is a list.
The Law of Null?: the primitive null? is defined only for lists.
The Law of Eq?: the primitive eq? takes two arguments. Both of them must be non-numeric atoms

  • 永遠(yuǎn)不要對一個null list求car,cdr;
  • car 返回第一個S-expression. 不一定是list 也有可能是atom;
  • cdr,cons的結(jié)果仍是一個list;
  • (quote ()) 是null list的一種表示;

參考文獻(xiàn)

S表達(dá)式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市仗岸,隨后出現(xiàn)的幾起案子允耿,更是在濱河造成了極大的恐慌,老刑警劉巖扒怖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件较锡,死亡現(xiàn)場離奇詭異,居然都是意外死亡盗痒,警方通過查閱死者的電腦和手機蚂蕴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人掂墓,你說我怎么就攤上這事谦纱。” “怎么了君编?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵跨嘉,是天一觀的道長。 經(jīng)常有香客問我吃嘿,道長祠乃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任兑燥,我火速辦了婚禮亮瓷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘降瞳。我一直安慰自己嘱支,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布挣饥。 她就那樣靜靜地躺著除师,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扔枫。 梳的紋絲不亂的頭發(fā)上汛聚,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機與錄音短荐,去河邊找鬼倚舀。 笑死,一個胖子當(dāng)著我的面吹牛忍宋,可吹牛的內(nèi)容都是我干的痕貌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼糠排,長吁一口氣:“原來是場噩夢啊……” “哼芯侥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乳讥,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤柱查,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后云石,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唉工,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年汹忠,在試婚紗的時候發(fā)現(xiàn)自己被綠了淋硝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雹熬。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谣膳,靈堂內(nèi)的尸體忽然破棺而出竿报,到底是詐尸還是另有隱情,我是刑警寧澤继谚,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布烈菌,位于F島的核電站,受9級特大地震影響花履,放射性物質(zhì)發(fā)生泄漏芽世。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一诡壁、第九天 我趴在偏房一處隱蔽的房頂上張望济瓢。 院中可真熱鬧,春花似錦妹卿、人聲如沸旺矾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箕宙。三九已至,卻和暖如春懊直,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背火鼻。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工室囊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人魁索。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓融撞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粗蔚。 傳聞我的和親對象是個殘疾皇子尝偎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 9,476評論 0 23
  • 點擊事件傳遞規(guī)則 public boolean dispatchTouchEvent(MotionEvent ev...
    簡單愛呵呵閱讀 246評論 0 0
  • 我是誰致扯?還沒確定! 昨晚10:00后当辐,丫丫 思涵創(chuàng)業(yè)平臺6,快要擠破門了抖僵,家鄉(xiāng)的人們習(xí)慣性的17/18點吃晚飯,遛...
    財富健康1閱讀 346評論 0 2
  • 【讀經(jīng)】 申命記1章 【金句】 以下所記的是摩西在約旦河?xùn)|的曠野缘揪、疏弗對面的亞拉巴耍群,就是巴蘭义桂、陀弗、拉班蹈垢、哈洗錄慷吊、...
    chanor閱讀 662評論 0 0