HtDP /章节。 5:我如何使用“symbol =?”? (方案)

时间:2012-03-22 19:39:59

标签: scheme

我目前正在通过自己的HtDP工作。

在第5章中介绍了“符号信息”。文中的例子是:

(define (reply s)
  (cond
    [(symbol=? s 'GoodMorning) 'Hi]
    [(symbol=? s 'HowAreYou?) 'Fine]
    [(symbol=? s 'GoodAfternoon) 'INeedANap]
    [(symbol=? s 'GoodEvening) 'BoyAmITired]))

这一切都很清楚。但是,第二个练习要求:

练习5.1.2。开发函数check-guess。它消耗两个数字,猜测和目标。根据猜测与目标的关系,该函数会产生以下三个答案之一:'TooSmall,'Perfect或'TooLarge。

坦率地说,我真的不知道“符号=?”的时间或原因进来了我的解决方案只使用“cond”。 [编辑:由于建议而删除了代码,因为它是教科书练习的解决方案。]

根据文字,“symbol =?”消耗两个符号并返回true或false,具体取决于它们是否相同。

我担心我现在已经深入到了Dunning-Kruger效果的领域,但是我真的没有看到使用“symbol =?”来实现这段代码的方法。 “cond”在第4章中有所涉及,这就是我现在感到困惑的原因。

非常感谢任何帮助。

如果您想查看HtDP中的章节,请访问: http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-8.html#node_sec_5.1

不幸的是,这些解决方案只能通过密码访问。

1 个答案:

答案 0 :(得分:-1)

使用<和>比较数字。您不能使用symbol =?为此。