(加载“file.scm”)在Scheme的新环境中

2023-12-30

麻省理工学院计划(load ...)程序显然需要一个环境 http://web.mit.edu/scheme_v9.0.1/doc/mit-scheme-user/Loading-Files.html作为参数。有什么方法可以“克隆”当前环境并将其传递到那里,以便我可以将文件的环境与我自己的环境隔离?

(我看过here http://web.mit.edu/scheme_v9.0.1/doc/mit-scheme-ref/Environment-Operations.html但我还没有发现任何东西......)


像这样的事情怎么样?

(define (clone-env env)
  (let ((bindings (environment-bindings env)))
    (make-top-level-environment (map car bindings)
                                (map cadr bindings))))

1 ]=> (define foo 1)

;Value: foo

1 ]=> (eq? (the-environment) (clone-env (the-environment)))

;Value: #f

编辑添加:

我不太确定你想做什么,但这就是我为测试上述内容所做的事情。我创建了一个文件foo.scm包含:

(set! foo 2)
(define baz (+ foo foo))
baz

Then,

1 ]=> (define foo 1)

;Value: foo

1 ]=> (load "foo.scm" (clone-env (the-environment)))

;Loading "foo.scm"... done
;Value: 4

1 ]=> foo

;Value: 1

1 ]=> baz

;Unbound variable: baz
;To continue, call RESTART with an option number:
; (RESTART 3) => Specify a value to use instead of baz.
; (RESTART 2) => Define baz to a given value.
; (RESTART 1) => Return to read-eval-print level 1.

2 error>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(加载“file.scm”)在Scheme的新环境中 的相关文章

  • 将字符串附加到 IronScheme 中的现有文本文件

    我们正在尝试使用 IronScheme 构建一个日志文件 并且我们已经使用racket 为其编写了代码 它在球拍中工作正常 但 IronScheme 会抛出错误 这是我们目前所拥有的 define write to log lambda w
  • 方案单词列表 eq?

    我有一个问题 我需要查找列表是否等于第二个列表 例如 set eq 1 2 3 1 2 3 gt t set eq 1 2 3 2 3 4 gt f 这些例子在我的程序中是正确的 但这个例子不是 set eq quote quote one
  • 将参数传递给函数以使用 ggplot stat_function 进行绘图

    我有一个函数和一个参数列表 F lt function a b a b b a L lt list a 5 b 2 c 0 我想用未知的 x 或 x 替换参数之一 a b 或 c 并使用 ggplot 的 stat function 进行绘
  • 如何从 Perl 设置 Windows PATH 变量?

    我需要在 Perl 中设置环境变量 理想情况下 我需要查询一个变量 然后在不需要时更改它 具体来说 我要更改的是 PATH 变量 我如何获取和设置这些变量 如果您需要全局且永久地更改环境变量 就像在控制面板中设置它一样 那么您必须与注册表混
  • iPhone - 在本地和生产环境设置之间切换

    我正在开发一个 iPhone 应用程序 它使用某处的服务器来获取其数据 在应用程序源代码的某个位置 我对用于连接的 URL 进行了硬编码 这很好 只是我并不总是想使用生产服务器进行测试 我不想弄乱实时数据 只是为了在本地测试一些东西 所以我
  • 如何用Go语言的cgo编译Cuda源码?

    我用 cuda c 编写了一个简单的程序 它可以在 eclipse nsight 上运行 这是源代码 include
  • 如何解释方案表达式 '(a 'b)

    a b 给出答案 a b 当 a 没有绑定 未加引号 时 这是如何工作的 这就是我们计算表达式时发生的情况 a b gt a b The quote 是简写quote http docs racket lang org guide quot
  • $(this) 在函数中不起作用

    以下代码从文件加载 html 内容 我使用这个线程 https stackoverflow com questions 168963 stop jquery load response from being cached
  • 如何获取 SICP、Scheme、练习 2.78 等中的 put 和 get 函数

    我正在尝试在 SICP 中做练习 2 78 但 put 和 get 函数未知 我尝试过多种语言 比如相当大 racket r5rs mit scheme mzscheme等 我什至下载了SICP支持 http www neilvandyke
  • Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 返回 String.Empty

    我有一个 ASP NET MVC3 应用程序 现在我想将用户数据保存在 C Users AppPoolUserAccount AppData Roaming MyProgramm 第一次致电时Environment GetFolderPat
  • Monodroid 环境变量

    在 Android 中 Android OS Environment 提供了一组可用的环境路径 但是 当考虑到跨平台功能时 我想将图片存储在图片文件夹中 因此考虑使用 System Environment GetFolderPath 然而
  • 在后台从 url 加载一个大 plist

    我从 url 加载一个大的 plist 文件 我必须等待几秒钟才能使用该应用程序 有什么解决办法吗 如何在后台加载它 是GCD我需要的 如何实施 My code NSString urlStr NSString alloc initWith
  • Visual Studio Code、Conda 和 Python 环境(我无法让它工作)

    我正在我的电脑上设置 Visual Studio Code 但我创建的 python 环境和 Visual Studio Code 遇到了困难 但是 当运行一些测试代码时 我收到导入错误 我将带有 miniconda 的 Python 3
  • conda创建环境没有响应

    我想安装 python 2 7 作为 conda 环境 conda create n python2 python 2 7 anaconda Collecting package metadata current repodata json
  • Scheme 和 Racket 中嵌套引号的行为

    在 Racket 中编写函数时 我不小心在符号前面放了两个单引号而不是一个 即我不小心写了 a 并发现嵌套引号的一些行为看起来很奇怪 我正在使用 DrRacket 并使用 Racket lang 和 R5RS lang 对此进行了测试 wr
  • 如何在 Flutter 中开始加载主题

    我希望用户可以在我的应用程序中更改并保存主题颜色 但是 我不知道如何在应用程序开始运行时加载保存的主题颜色 比如我想在下面的评论处直接加载保存的主题颜色 我尝试了共享首选项 但是 SharedPreference 实例需要运行await 这
  • 方案中的尾递归幂函数

    我在方案中编写尾递归幂函数时遇到问题 我想使用辅助函数来编写该函数 我知道我需要一个参数来保存累计值 但在那之后我就陷入了困境 我的代码如下 define pow tr a b define pow tr h result if b 0 r
  • 方案字符串追加?递归复制字符串

    设计一个名为 string dup 的程序 它使用一个字符串 s 和一个数字 n 并返回一个由 s n 次连接而成的字符串 每个 s 实例之间有空格 即 string dup a 3 gt a a a 不使用复制 但我想我们可以使用字符串追
  • 从when语句内的函数返回

    我想做的就是使用 when 语句返回一个值 我想要以下功能 if x return y 我正在尝试使用 when x y 但是when语句并没有以退出函数并返回y的方式进行计算 它只是愉快地继续下一行 有没有办法做到这一点而不需要制作一个看
  • 学习 LISP 的最佳方法是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 我可以在 iPhone 应用程序中为 UIToolBar 提供自定义背景吗?

    是否可以为 UIToolBar 提供图像的自定义背景 而不是通常的蓝色 黑色淡出 我尝试为视图提供背景并设置 UIToolBar 的不透明度 但这也会影响其上任何 UIBarButtons 的不透明度 在这里回答我自己的问题 重写drawR
  • 如何使用 jQuery 更改选择选项上的元素类[重复]

    这个问题在这里已经有答案了 我想改变我的class value 使用 jQuery 选择选项 Example
  • 在直方图上添加数据标签 Python/Matplotlib

    我正在尝试在直方图顶部添加数据标签值 以尝试明显地显示频率 这是我现在的代码 但不确定如何编码以将值放在上面 plt figure figsize 15 10 plt hist df Age edgecolor white label d
  • 从 OnClick 中关闭 AlertDialog.Builder

    我正在尝试为用户弹出一个对话框 该对话框的主体中有两个按钮 底部有一个取消按钮 当用户单击两个按钮之一时 对话框将消失 点击 取消 只会取消对话框 取消部分工作正常 但我不知道如何手动关闭对话框 这是我的代码 public void onI
  • Eclipse 拼写检查器 - 如何删除添加的单词?

    我不小心在 Eclipse 的拼写检查词典中添加了一个我一直拼写错误的单词 我怎样才能把它再次取出来 Eclipse 将您添加的单词放入文本文件中 又称用户定义词典 您可以在以下位置找到该文件的位置窗口 gt 首选项 gt 常规 gt 编辑
  • 测量图像中像素之间的欧几里德距离的算法

    我有许多图像 其中我知道焦距 像素数 尺寸和位置 来自 GPS 它们都是采用高倾斜方式 用市售相机在地面上拍摄的 计算图像中某些像素之间的欧几里得距离的最佳方法是什么 如果确实可以的话 假设您不是在寻找完整的景观建模 而是在寻找简单的近似模
  • Protocol buffer3 和 json

    Protocol buffer v3 声称该库是 json 友好的 https developers google com protocol buffers docs proto3 json https developers google
  • JS 对象 null 检查 - 奇怪的 JS 问题[重复]

    这个问题在这里已经有答案了 想象一下这个简单的场景 我有一个变量 它可以是带有一个属性 ID 的普通 JS 对象 即一个数字或 obj 变量可以为 null 我有简单的 test 函数 它检查变量是否不为 null 并且它必须具有有效的 i
  • 使用 phpunit 时,Eloquent 查询范围返回 Builder 而不是 Model

    我有以下代码 user User findByAccountCode transaction gt account code 当我在 phpunit 上执行此代码时 它返回 Illuminate Database Eloquent Buil
  • 删除包含一组字符的类

    有没有办法删除开始或包含已定义文本字符串的类 我有几个用于背景颜色覆盖的类 bg bgwhite bgblue bgyellow 我为选择框设置了一个小 jquery 用于添加和删除元素的修改类 在本例中是 a href href 标签 我
  • 如何使用 beautifulSoup 访问 span? [复制]

    这个问题在这里已经有答案了 我想获取嵌套标签内的数字 我该怎么做 我的代码输出这个 但我想得到 40 而不是整两行 span class rankings score span 40 span 这是我的代码 from bs4 import
  • r中大量图的排列并用线连接

    我有大量的小地块需要放置在更大的地块画布中 并将小地块排列成并用线条连接它们 一个小例子如下所示 A 到 L 是独立图 给出了它们的放置坐标 绘图网格坐标 PlotgridX和plotgridY可以决定小图何时需要居中 plotcord l
  • 在react-redux中@connect装饰器有什么用

    我正在学习 React 并遵循一些教程 我遇到了这段代码 import React from react import TodosView from components TodosView import TodosForm from co
  • MP MediaLibrary DidChangeNotification 调用了两次?

    我的应用程序使用 iPodMusicPlayer 当暂停时 用户可能会出去并在 Apple 的音乐应用程序中进行更改 例如创建或修改播放列表 然后返回到我的应用程序 我收到了预期的 MPMediaLibraryDidChangeNotifi
  • 哈希有_key?句法

    我有三个哈希值 a key value b key gt value c key gt value 这些结果 a has key key gt false b has key key gt true c has key key gt fal
  • vue.js:如何处理同一元素上的 click 和 dblclick 事件

    我有一个 vue 组件 其中包含单独的 click dblclick 事件 单击 取消 选择行 双击打开编辑表单 ul class data row 这样做 我会在双击时触发 3 个事件 两次单击事件 最后一次双击事件 由于单击事件首先触发
  • 如何将文本从 iOS Notes 应用程序导出到我的应用程序?

    我知道这是可能的 并且是许多大型应用程序所做的事情 但我无法在 UTI 扩展 UIActivityTypes 等中找出我需要特别使用的拼写 我正在尝试将我的应用程序添加到当您点击 iOS 上的 便笺 应用程序中的 导出 按钮时出现的应用程序
  • 为什么 Guid.ToByteArray() 以这种方式对字节进行排序?

    你打电话时ToByteArray 在 NET 中的 GUID 上 与 GUID 的字符串表示形式相比 结果数组中的字节顺序不是您所期望的 例如 对于以下表示为字符串的 GUID 11223344 5566 7788 9900 aabbccd
  • 哪些 .NET Framework 类实现 IDisposable

    似乎这必须在某个地方记录下来 但我没有发现在任何地方 也许我的谷歌魅力正在减弱 您意识到这取决于您的称呼 NET 框架类 您可能想要指定要查找的程序集 有了这些信息 您就可以加载这些程序集并使用反射来列出在给定程序集中实现 IDisposa
  • (加载“file.scm”)在Scheme的新环境中

    麻省理工学院计划 load 程序显然需要一个环境 http web mit edu scheme v9 0 1 doc mit scheme user Loading Files html作为参数 有什么方法可以 克隆 当前环境并将其传递到