问题标签 [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.
scheme - 在 Scheme (Chez) 中打印哈希表
我在 Chez Scheme 中使用了很多(标准 R6RS)哈希表,但在 REPL 中使用它们并不是很好,因为它们只是打印为#<eq hashtable>
. 我已经编写了一个print-table
函数,但是每次我想检查我的数据时都继续调用它有点烦人。
看起来 Racket 有一种方法可以为给定的类型进行自定义打印。有没有办法在Scheme中做类似的事情?
scheme - 用于在固定日内完成 Dorai Sitaram 的自学计划的球拍设置和库?
我正在尝试通过 Dorai Sitaram 在 Fixnum Days 的自学计划来复习计划。问题是该教程使用的语法偏离了当前的 Scheme 语法,特别是在宏和结构方面。
有没有办法将库安装到 Racket 中,或者就此而言 Chez Scheme 使其语法和行为更接近书本?我确实搜索了一个 Raco 库来安装到 Racket 中来实现这一点,但我要么错过了它,要么它不存在。
scheme - Chez Scheme:顶层的宏导入
我正在运行 Chez Scheme 9.5 并尝试在库中定义语法转换器。这是一个例子:
我将其保存在一个文件中forlib.ss
并chez
从同一目录运行。然后在 REPL 中,我得到了这个:
如果我将语法定义更改为
(没有in
关键字),一切正常:
回到带有in
关键字的旧定义。如果我将测试代码放入测试文件中:
并尝试执行该文件,结果取决于我如何执行该文件。如果我使用 运行这个程序chez --program
,它会按预期工作:
如果我使用 运行它chez --script
,我会得到与上面相同的错误:
这提出了两个问题:
- 为什么 REPL
--script
可以很好地导入没有特殊关键字的语法形式,但拒绝接受其中包含特殊关键字的语法形式? --script
和 和到底有什么区别--program
?用户手册说这--program
意味着文件内容被解释为 rnrs 顶级程序,但对语义是什么保持沉默--script
。
最后,为了彻底解决我的困惑,如果我直接在 REPL 中输入上述语法定义,那么一切都按预期工作:
那么从库中导入的语法转换器和直接在 REPL 中定义的语法转换器在 REPL 中有何不同?
chez-scheme - 在 Chez Scheme 中重新导入库
在 Chez 中,如何将一个库重新加载(重新导入)到我已经导入一次的 REPL 中?
当直接在 REPL 中定义或从文件显式加载时,库表单可用于重新定义现有库,但
import
一旦定义库就不会重新加载。
load
并且load-library
似乎也没有重新导入。
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?
asynchronous - 如何实现看起来同步模仿 async / await 的异步代码?
否则说,我想依靠epoll
(或类似的)编写看起来像不依赖回调的常规代码的异步网络代码。
代码必须看起来像同步代码,但不像同步代码而不是阻塞等待网络 io,它必须暂停当前协程并在文件描述符准备好时重新启动它。
c - Chez Scheme 中的 FFI,用于具有可变参数 (varargs) 的 C 函数
我想为printf
Chez Scheme 中的 C 函数编写一个 FFI,使用foreign-procedure
. 但我不知道我应该把什么作为签名,因为printf
函数中的最后一个参数是一个可变参数。这是我的代码:
我也试过这个也无济于事:
这也不起作用:
如何在函数签名中指定可变参数foreign-procedure
?
scheme - 在 Chez Scheme 中查找操作系统和机器类型
Chez Scheme 程序或库如何(从 Scheme 代码中)找出它在哪个操作系统和机器架构上运行?
macros - 在 scheme 中定义 goto
作为学习 call/cc 和宏的练习,我尝试定义 goto。
它在 guile-2.0 中工作,但在 chez 方案和球拍(r6rs)中它只是打印
哪个实现是正确的?