如何用Racket运行Scheme脚本并自动显示返回结果?
解决Racket运行Scheme脚本不自动显示返回值的问题
有几种不用进入交互模式就能自动显示表达式结果的办法:
方法1:修改脚本,手动打印结果
直接在需要显示结果的表达式外层包裹打印函数,比如println(自动换行)或者display(不换行)。修改后的test.scm如下:
(define square (lambda (x) (* x x))) (println (square 3)) ; 用println打印计算结果
运行racket -f test.scm就能看到输出9。
方法2:用命令行参数实现自动执行并退出
不用修改脚本,直接用命令行参数加载脚本后自动执行并退出,效果和交互模式执行类似:
racket -i -f test.scm -e '(exit)'
解释:
-i:启动交互模式-f test.scm:加载并执行脚本内容-e '(exit)':执行完脚本后自动退出,无需手动输入退出命令
运行后会直接显示(square 3)的结果9,随后自动退出程序。
方法3:指定Racket方言并启用自动打印
如果脚本可以兼容Racket方言,在开头加上#lang racket并启用自动打印参数:
#lang racket #:print-result #t (define square (lambda (x) (* x x))) (square 3)
运行racket test.scm就会自动显示结果9,这种方法适合无需严格遵循基础Scheme标准的场景。
内容的提问来源于stack exchange,提问作者Capt_
相关产品推荐
相关产品推荐

