问候,我是新来的所以请照顾我。简单计划练习。第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