gpt4 book ai didi

scheme - 将 r5rs 文件包含到 Racket 中的另一个文件中

转载 作者:行者123 更新时间:2023-12-04 17:39:15 25 4
gpt4 key购买 nike

我的一门类(class)是在 SICP 的某些部分使用 DrRacket。我们正在开发元循环评估器,我有一个 R5RS 代码文件(set-car!set-cdr!),我需要在我的工作中使用它。因为 R5RS 文件大约有 500 行,所以我更愿意将它保存在单独的缓冲区中。如何将它包含在我的答案缓冲区的定义中?出现racket/include需要 #lang racket , 但是 set-car!set-cdr!不是那种语言。

最佳答案

您可以执行以下操作:

  • 在#lang r5rs 中编写模块,并在 lang 行之后添加以下内容:
    (#%provide (all-defined))
  • 将您的答案缓冲区也放在#lang r5rs 中,并使用#%require 提取其定义:
    (#%require "some-module.ss")

  • 例如,如果我有一个包含以下内容的 f1.ss:
    #lang r5rs
    (#%provide (all-defined))
    (define (f x)
    (* x x))

    以及具有以下内容的 f2.ss:
    #lang r5rs
    (#%require "f1.ss")
    (display (f 3))
    (display (f 4))

    然后如果我运行 f2.ss,它会在显示 916 时执行适当的操作,并且它的交互缓冲区将知道 f1.ss 中写入的所有定义。

    这使用了 documentation 中提到的 Racket-specfic 低级模块导入内容。 .祝你好运!

    关于scheme - 将 r5rs 文件包含到 Racket 中的另一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291112/

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