问题标签 [chez-scheme]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
358 浏览

scheme - 在 Scheme (Chez) 中打印哈希表

我在 Chez Scheme 中使用了很多(标准 R6RS)哈希表,但在 REPL 中使用它们并不是很好,因为它们只是打印为#<eq hashtable>. 我已经编写了一个print-table函数,但是每次我想检查我的数据时都继续调用它有点烦人。

看起来 Racket 有一种方法可以为给定的类型进行自定义打印。有没有办法在Scheme中做类似的事情?

0 投票
1 回答
71 浏览

scheme - 用于在固定日内完成 Dorai Sitaram 的自学计划的球拍设置和库?

我正在尝试通过 Dorai Sitaram 在 Fixnum Days 的自学计划来复习计划。问题是该教程使用的语法偏离了当前的 Scheme 语法,特别是在宏和结构方面。

有没有办法将库安装到 Racket 中,或者就此而言 Chez Scheme 使其语法和行为更接近书本?我确实搜索了一个 Raco 库来安装到 Racket 中来实现这一点,但我要么错过了它,要么它不存在。

0 投票
1 回答
508 浏览

scheme - Chez Scheme:顶层的宏导入

我正在运行 Chez Scheme 9.5 并尝试在库中定义语法转换器。这是一个例子:

我将其保存在一个文件中forlib.sschez从同一目录运行。然后在 REPL 中,我得到了这个:

如果我将语法定义更改为

(没有in关键字),一切正常:

回到带有in关键字的旧定义。如果我将测试代码放入测试文件中:

并尝试执行该文件,结果取决于我如何执行该文件。如果我使用 运行这个程序chez --program,它会按预期工作:

如果我使用 运行它chez --script,我会得到与上面相同的错误:

这提出了两个问题:

  • 为什么 REPL--script可以很好地导入没有特殊关键字的语法形式,但拒绝接受其中包含特殊关键字的语法形式?
  • --script和 和到底有什么区别--program?用户手册说这--program意味着文件内容被解释为 rnrs 顶级程序,但对语义是什么保持沉默 --script

最后,为了彻底解决我的困惑,如果我直接在 REPL 中输入上述语法定义,那么一切都按预期工作:

那么从库中导入的语法转换器和直接在 REPL 中定义的语法转换器在 REPL 中有何不同?

0 投票
1 回答
180 浏览

chez-scheme - 在 Chez Scheme 中重新导入库

在 Chez 中,如何将一个库重新加载(重新导入)到我已经导入一次的 REPL 中?

Chez Scheme 用户指南说:

当直接在 REPL 中定义或从文件显式加载时,库表单可用于重新定义现有库,但import一旦定义库就不会重新加载。

load并且load-library似乎也没有重新导入。

0 投票
2 回答
190 浏览

scheme - Chez 计划记录 - 功能副本/更新?

我在 Chez Scheme 文档中搜索了这个问题的答案,但似乎找不到:

Chez 的Records是否有功能副本/更新- 就像 Racket 的Structures一样?

谢谢你。

0 投票
1 回答
188 浏览

ubuntu-16.04 - 在 Codeanywhere 中安装 ChezScheme-9.5.2 时遇到问题

尝试在 Codeanywhere 上的 Ubuntu 16.04 LTS 上安装 ChezScheme-9.5.2.tar.gz。在 sudo make 命令期间,由于缺少 uuid/uuid.h,因此获取错误消息失败。如何在 $ sudo make 可以找到的位置获取 uuid/uuid.h?

0 投票
2 回答
230 浏览

asynchronous - 如何实现看起来同步模仿 async / await 的异步代码?

否则说,我想依靠epoll(或类似的)编写看起来像不依赖回调的常规代码的异步网络代码。

代码必须看起来像同步代码,但不像同步代码而不是阻塞等待网络 io,它必须暂停当前协程并在文件描述符准备好时重新启动它。

0 投票
1 回答
544 浏览

c - Chez Scheme 中的 FFI,用于具有可变参数 (varargs) 的 C 函数

我想为printfChez Scheme 中的 C 函数编写一个 FFI,使用foreign-procedure. 但我不知道我应该把什么作为签名,因为printf函数中的最后一个参数是一个可变参数。这是我的代码:

我也试过这个也无济于事:

这也不起作用:

如何在函数签名中指定可变参数foreign-procedure

0 投票
1 回答
163 浏览

scheme - 在 Chez Scheme 中查找操作系统和机器类型

Chez Scheme 程序或库如何(从 Scheme 代码中)找出它在哪个操作系统和机器架构上运行?

0 投票
1 回答
406 浏览

macros - 在 scheme 中定义 goto

作为学习 call/cc 和宏的练习,我尝试定义 goto。

它在 guile-2.0 中工作,但在 chez 方案和球拍(r6rs)中它只是打印

哪个实现是正确的?