我正在使用vim,tslime和tmux通过命令行将方案代码发送到racket repl(v6.7)。我在Arch Linux上运行。
当我这样做时,我通常会收到自动完成警告:
“显示所有[xyz]可能性(y或n)?”
我猜球拍正在解释tmux从vim发送的代码片段中的标签。
这是我的问题:
1。讨厌。我如何摆脱它?
2。代码需要传递两次!有些代码只有在我连续两次传递给球拍代表时才能正常工作。在DrRacket中,代码工作得很好,所以显然这些选项卡阻止了repl评估某些s表达式(并且传递代码两次以某种方式解析它)。
以下是来自SICP的代码,1.2.6:
; Smallest divisor
(define (smallest-divisor n) (find-divisor n 2))
(define (find-divisor n test-divisor)
(cond ((> (square test-divisor) n) n) ; tests as far as sqrt of n
((divides? test-divisor n) test-divisor)
(else (find-divisor n (+ test-divisor 1)))))
(define (divides? a b) (= (remainder b a) 0))
(define (square x) (* x x))
(define (prime? n)
(= n (smallest-divisor n)))
以下是球拍复制中的所有内容。请注意,在下面的第一遍中,过程prime?
评估(错误地)10是素数。
欢迎使用Racket v6.7。
> (define(最小 - 除数n)(find-divisor n 2))
> (define(find-divisor n test-divisor)
(cond((>(square test-divisor)n)n)显示所有254种可能性?(y或n)
(cond((>(square test-divisor)n)n)显示所有254种可能性?(y或n)
(cond((>(square test-divisor)n)n);测试到n的sqrt
显示所有254种可能性? (y或n)(否则(find-divisor n(+ test-divisor 1)))))
> (define(除以?a b)(=(余数b a)0))
> (define(square x)(* x x))
> (define(prime?n)
(= n(最小 - 除数n)))
> (素数?10)
#T
第二次传递代码,我们得到以下输出。这一次,prime?
正确评估10不是素数。
> (define(最小 - 除数n)(find-divisor n 2))
> (define(find-divisor n test-divisor)
(cond((>(square test-divisor)n)n)显示所有258种可能性?(y或n)
(cond((>(square test-divisor)n)n)显示所有258种可能性?(y或n)
(cond((>(square test-divisor)n)n);测试到n的sqrt
显示所有258种可能性? (y或n)((除以?test-divisor n) 测试除数)
显示所有258种可能性? (y或n)(否则(find-divisor n(+ test-divisor 1)))))
> (define(除以?a b)(=(余数b a)0))
> (define(square x)(* x x))
> (define(prime?n)
(= n(最小 - 除数n)))
> (素数?10)
#f的
>