DR RACKET DEFINE功能

时间:2014-08-29 22:11:46

标签: racket

我正在尝试编制公式Distance-traveled= 2.5 *t^2

我把2.5和常量放在一起,t是我的秒。秒是变化的输入。我以为我把一切都定了好但是在底部窗口,当我试图调用该函数以期在2秒内找到行进的距离时,它表示没有定义距离行进。我究竟做错了什么?这就是我在顶部窗口中的内容

(define CONVERSION-FACTOR 2.5)

(define (distance-traveled seconds)
    ( * (* seconds seconds) CONVERSION-FACTOR))

这可能会帮助你们帮助我!

SCREEN SHOT OF CODE

2 个答案:

答案 0 :(得分:1)

您的编辑向我们显示您在定义之前使用distance-traveled。您需要在使用之前放置函数的定义。


Bad

Good

答案 1 :(得分:0)

您需要点击运行按钮(或按 F5 )。

然后,您在定义(顶部或左侧)窗口中的最新代码编辑将在 Interactions (底部或右侧)窗口中可用。


编辑添加更多解释:

默认情况下,DrRacket 会在您键入时展开程序,以进行语法检查。

但这并不意味着它实际上正在评估您的计划。

如果您刚刚开始学习球拍,那么#34;展开" vs." eval"看起来似乎是一种没有区别的区别。它与宏与程序或编译时间与运行时间大致相同。在这个阶段,请注意它们是Racket中的两个不同步骤,只需要第一个步骤来进行语法检查。因此,即使语法检查可能会让您认为DrRacket已经"内置"你的计划,还没有。您仍然需要运行来展开对其进行评估。

为了超级挑剔,Racket确实没有REPL - Read,Eval,Print Loop。实际上它更像是RECEPL - 读取,扩展,编译(JIT),Eval,Print,Loop。但是,再一次,你可以等待以后更多地了解它。