我正在用Racket编写程序,并与该程序一起运行racket foo.rkt
。这是可行的,除了即使未调用打印函数,也可以打印程序顶层的每个表达式的结果。好像程序是逐行输入到REPL的,但是在这种情况下,我根本不尝试使用REPL,我只是尝试从命令行运行程序。
您如何让Racket不打印东西?
#lang racket
,是Racket实现中的默认语言,它会打印顶级语句,但除外(void)
,该语句返回的值始终会被REPL忽略(values)
,而会返回零值,因此REPL没有任何内容可打印。这意味着您可以创建一个main
以其中任何一个结尾的函数,并且该函数将不会来自REPL。
statement-1
statement-2
statement-3
并将其更改为:
(define (main)
statement-1
statement-2
statement-3
(void)) ; or (values)
形式define
和的set!
返回值与(void)
完全相同的目的相同。
并非球拍支持的所有语言都可以打印顶级语句。实际的Scheme语言#!r6rs
,不会打印顶级语句。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句