在球拍(和其他计划,从我可以告诉),我所知道的唯一的方法来检查两件事情是否不等于就是明确应用not的测试:
(not (= num1 num2))
(not (equal? string1 string2))
Run Code Online (Sandbox Code Playgroud)
显然(not (that-big-of-deal?)),但这是一种常见的结构,我觉得我必须忽略它没有内置的原因.
我想,一个可能的原因是你可以经常摆脱not使用unless而不是when,或通过在if语句中切换true/false分支的顺序.但有时候这并不能模仿你试图表达的推理.
此外,我知道否定的函数很容易定义,但是<=,例如,内置的函数也是如此.
什么是没有的东西喜欢的设计决策not-equal?,not-eqv?,not-eq?和!=标准库?
我想显示文本然后覆盖它(对于简单的进度条等).显示回车符("\r")的常用技巧在Linux和Windows的终端中运行Racket时工作正常,但在DrRacket和GRacket中,回车似乎没有将光标移动到行的开头.
以此代码为例:
(for ([x 5])
(display "\r")
(display x)
(flush-output) ; The result is the same with or without this line
(sleep 0.1))
Run Code Online (Sandbox Code Playgroud)
在终端中运行会产生一个覆盖自己的计数器; 最后只4显示在终端中.
在DrRacket中运行会导致数字显示而不会被覆盖:
0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
有没有办法在DrRacket的交互窗口中覆盖一行文本?