我目前正在通过自己的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
不幸的是,这些解决方案只能通过密码访问。
答案 0 :(得分:-1)
使用<和>比较数字。您不能使用symbol =?为此。