Scheme HtDP/Chpt。5:我如何使用;symbol=?“;?(计划)
我目前正独自通过HtDP工作 第5章介绍了“符号信息”。文本中的示例是:Scheme HtDP/Chpt。5:我如何使用;symbol=?“;?(计划),scheme,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
(define (reply s)
(cond
[(symbol=? s 'GoodMorning) 'Hi]
[(symbol=? s 'HowAreYou?) 'Fine]
[(symbol=? s 'GoodAfternoon) 'INeedANap]
[(symbol=? s 'GoodEvening) 'BoyAmITired]))
没问题。然而,第二个练习要求:
练习5.1.2。开发函数检查猜测。它消耗两个数字,猜测和目标。根据猜测与目标的关系,该函数生成以下三个答案之一:“TooSmall”、“Perfect”或“TooLarge”
坦白地说,我真的不明白“symbol=?”何时或为什么会出现在这里。我的解决方案只使用“cond”。[编辑:由于建议而删除代码,因为它是教科书练习的解决方案。]
根据文本,“symbol=?”使用两个符号并返回true或false,这取决于它们是否相同
我担心我现在已经深入到Dunning Kruger效应的领域,但是我真的没有看到使用“symbol=?”来实现这段代码的方法。第四章介绍了“cond”,这就是我现在感到困惑的原因
非常感谢您的帮助
如果您想查看HtDP中的章节,请点击此处:
不幸的是,这些解决方案只能通过密码访问。使用
'TooSmall
中的前导tic使其成为一个符号(没有它,scheme将查找具有该名称的变量)symbol=?
在该练习中不起作用,尽管您需要想象一个使用您的程序然后使用symbol=?
生成下一个猜测的游戏。。。你在下一个练习中扮演那个角色。另外,您首先发布了您的代码也很好(这样我们可以确认您的定义是正确的),但是感谢您将其删除。再次感谢!我刚刚完成了第五章,现在有很多事情都清楚了,这也归功于你们的有益阐述。