Racket 不会打印图像,除非它 returns 到 REPL
Racket doesn't print an image unless it returns to the REPL
我正在使用 DrRacket 6.4,我想使用 2htdp/image 库显示图像。如果用户键入 "start",将打印图像。但是,在尝试从循环内部显示图像时,我无法显示图像;似乎图像仅在程序具有 "returned".
时显示
这个有效:
(define (showimg p) (place-image
(triangle 32 "solid" "red")
24 24
p))
;; prints an image
(define (a p)
(define command (read-line))
(cond [(string=? command "start") (showimg p)]))
(a (empty-scene 160 90))
这不是:
;; should print an image indefinitely
(define (a p)
(define command (read-line))
(cond [(string=? command "start") (showimg p)])
(a (empty-scene 160 90))
)
(a (empty-scene 160 90))
有什么方法可以使用递归(目前如此)使它工作,或者如果需要,可以使用其他方法在显示图像的同时连续获取用户输入?
谢谢。
place-image
returns一张图片,没有显示。
当函数 returns 图像时,显示由 REPL 完成。
全部
(cond [(string=? command "start") (showimg p)])
正在做的是(可能)创建一个立即被丢弃的图像。
你可以做的是使用print
来显示图像,因为DrRacket在打印方面非常聪明。
以下是我相信你想要的效果:
(define (a p)
(define command (read-line))
(cond [(string=? command "start") (print (showimg p))])
(a p))
我正在使用 DrRacket 6.4,我想使用 2htdp/image 库显示图像。如果用户键入 "start",将打印图像。但是,在尝试从循环内部显示图像时,我无法显示图像;似乎图像仅在程序具有 "returned".
时显示这个有效:
(define (showimg p) (place-image
(triangle 32 "solid" "red")
24 24
p))
;; prints an image
(define (a p)
(define command (read-line))
(cond [(string=? command "start") (showimg p)]))
(a (empty-scene 160 90))
这不是:
;; should print an image indefinitely
(define (a p)
(define command (read-line))
(cond [(string=? command "start") (showimg p)])
(a (empty-scene 160 90))
)
(a (empty-scene 160 90))
有什么方法可以使用递归(目前如此)使它工作,或者如果需要,可以使用其他方法在显示图像的同时连续获取用户输入?
谢谢。
place-image
returns一张图片,没有显示。
当函数 returns 图像时,显示由 REPL 完成。
全部
(cond [(string=? command "start") (showimg p)])
正在做的是(可能)创建一个立即被丢弃的图像。
你可以做的是使用print
来显示图像,因为DrRacket在打印方面非常聪明。
以下是我相信你想要的效果:
(define (a p)
(define command (read-line))
(cond [(string=? command "start") (print (showimg p))])
(a p))