gpt4 book ai didi

testing - 在 Racket 脚本中调用 `racket`

转载 作者:行者123 更新时间:2023-11-28 19:46:44 25 4
gpt4 key购买 nike

一般问题:

我可以从正在运行的 Racket 脚本中调用当前的 racket 可执行文件吗?

基本上,如果 (find-executable-path "racket") 可以,我想替换 (system "racket ...")不返回我当前正在使用的 Racket 可执行文件的路径。

上下文:

我真正想要的是尝试编译一些表达式并断言它们会引发编译错误。这用于单元测试。

最佳答案

我认为您不需要在此处跳出可执行文件。试试这个:

#lang racket

(require syntax/modread)

;; define a namespace anchor to attach a namespace to:
(define-namespace-anchor anchor)
;; define a namespace for expansion:
(define target-namespace (namespace-anchor->namespace anchor))

(define program-to-compile
"#lang racket
(+ 3 4)")

;; go ahead and expand
(with-module-reading-parameterization
(λ()
(parameterize ([current-namespace target-namespace])
(expand
(read-syntax
"bogus-filename"
(open-input-string program-to-compile))))))

当我说 Racket 在提供编译器以规范的方式运行程序的能力方面非常干净时,我认为我是正确的。

关于testing - 在 Racket 脚本中调用 `racket`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com