問候,我是新來的所以請照顧我。簡單計劃練習。第06章對與錯
鍛鍊6.1在Simply Scheme有表達:
(cond (empty? 3)
(square 7)
(else 9))
我的心說,這應該評估(方7)並返回。 (空??3)將被評估(返回原子 - 嘗試與其他原子和列表,同樣的交易)。
我很困惑。
我所知道的:在方案
- 的一切,是不是假的是真的。如果3爲真且不爲空(#f),爲什麼cond表達式返回(空?3)?
- 對cond表達式的第一個參數進行評估,如果它爲true,則返回#t,定義的值或依賴於上下文的#undefined。如果爲false,則繼續評估cond參數,直到它發生(或找不到合適的返回值),然後退出cond。
我不知道是什麼:
- (?空3)對自己的回報#F。爲什麼cond在這裏終止而不是評估(方塊7)?
- 爲什麼在cond中(空的?3)的評估返回原子,而不是#t或#f?
我正在使用帶Slib的SCM和Simply Scheme提供的附加庫(簡單的.scm,函數.scm,ttt.scm,match.scm,database.scm)。
空嗎?在simple.scm中的定義超出了我在這一點上的方案把握。
你仍然可以發佈'empty?'的定義?這些庫很難找到。 – 2013-04-22 10:28:16
@ [larsmans](http://stackoverflow.com/users/166749/larsmans)當然。[簡單]中的函數定義(http://www.eecs.berkeley.edu/~bh/downloads/simply/simply.scm)。整個[圖書館](http://www.eecs.berkeley.edu/~bh/downloads/simply/)。 – usernvk 2013-04-22 12:42:49