Racket CLI repl将通过tmux发送的文本中的选项卡解释为自动完成

时间:2016-11-20 12:27:55

标签: vim scheme racket tmux sicp

我正在使用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的

     

>

0 个答案:

没有答案