gpt4 book ai didi

scheme - 我如何在 DrRacket 加载我的文件

转载 作者:行者123 更新时间:2023-12-04 13:23:23 24 4
gpt4 key购买 nike

我是一名大学生,想通过“The Scheme编程语言”作为自学。
这是一个简单的程序,我将其命名为“reciprocal.ss”

(define reciprocal
(lambda (n)
(if(= n 0)
"oops!"
(/ 1 n))))

然后我想加载我的程序:
(load "reciprocal.ss")

它产生这个错误:

reciprocal.ss:1:0: #%top-interaction: unbound identifier; also, no #%app syntax transformer is bound in: #%top-interaction



我按照书上说的做了每一部分。也许我只是犯了一个菜鸟错误。任何见解将不胜感激。

最佳答案

load 用途 eval ,在 REPL 之外使用它通常是行不通的——原因在 Namespaces 中描述。

使用 racket/load 但是可以在这里为您工作:

loader.ss

#lang racket/load

(load "reciprocal.ss")
(display (reciprocal 10))

reciprocal.ss
(define reciprocal
(lambda (n)
(if (= n 0) "oops!"
(/ 1 n))))

在 Racket(和整个 Scheme)中,关于运行外部代码的故事比普通语言更复杂。一般来说,你应该使用 import当你想直接“包含”一个文件时,你应该使用 provide/ require当你想建立模块边界时,你应该使用 load当你足够成熟,可以扩展两者的极限时。

关于scheme - 我如何在 DrRacket 加载我的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45342053/

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