问题标签 [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 回答
113 浏览

scheme - 如何从方案字节向量中检索外部原始字节指针?

Scheme 提供了一种bytevector类型,可用于对字节 abd 字节数组执行低级操作(参见r6rschez手册)。但是,它似乎没有提供一种方法来检索指向它正在存储的字节数组的底层指针,我需要将该指针传递给外部 C 函数以填充或读取字节向量中的数据。

为了更准确地了解上下文,我正在尝试为 Idris2 中使用 Scheme 作为其后端的字节的低级处理编写一些代码,但我是 Scheme 的新手,所以我当然忽略了一些明显的事情:首选什么从字节向量中提取此指针的方法?

0 投票
3 回答
362 浏览

macos - 安装 Idris2 时 Chez Scheme 的 realpath 错误

这是我的机器

我正在按照本指南安装 Idris2。

到目前为止我所做的是

  1. brew install idrisidris命令验证
  2. brew install chezschemepetite命令验证
  3. brew install gmp未验证
  4. git clone https://github.com/edwinb/Idris2.git
  5. make install在回购

输入检查花了一些时间,然后它开始使用 Chez Scheme 做一些事情,直到遇到错误。这是错误前的最后几行输出

现在,当我运行idris2命令时,我得到以下信息:

决议更新

确保添加~/.idris2/bin到您的$PATH环境变量

0 投票
1 回答
150 浏览

scheme - 在 chez 方案中发出未绑定的变量

我正在定义一个函数 replaceOccurrence,它替换两个符号中的任何一个的第一次出现。我不明白为什么列表变量未绑定 Chez Scheme 9.5 版

0 投票
2 回答
78 浏览

scheme - 如何在 scm 方案中定义一个函数来测试其参数是否为宏?

例如,假设 'match 是一个宏,而 'car 不是:

0 投票
1 回答
436 浏览

scheme - 用于组合其他函数的 Scheme 函数

我希望创建一个可以将两个功能合二为一的功能。给定gand f,它应该创建一个函数h,将 的输出f作为输入提供给g。这是我的结果:

以下代码段适用于compose.

但是,我无法弄清楚为什么下面的示例不起作用。我提供了下面的错误消息,我使用的是 Chez Scheme 9.5.2。这里的错误可能与 的可变参数性质有关compose,但这只是一个想法。有谁知道为什么我的第二次测试没有按预期工作?

0 投票
1 回答
48 浏览

scheme - 左移到 fixnum 符号位

我正在寻找一种方法将一点从正的固定数字转移到符号位置。基本上,我想要的是一种可预测的(不是未定义的)方式来执行 fixnum 左移而无需溢出检查。

一个低效的实现如下所示:

理想情况下,这将编译为单个 CPU 指令(至少对于恒定移位;CPU 在处理移位与寄存器一样宽或更宽的方式上有所不同)。

0 投票
2 回答
67 浏览

scheme - x 和 x 的集合在 Scheme 中的 let 中不起作用

我正在尝试在 Scheme 中运行这一行: (let ((x y) (y x)) (set! x x) (set! y y))

在程序开始时,x 定义为 1,y 定义为 2。我希望输出为 x=2 和 y=1,但我得到 x=1 和 y=2

感谢你的帮助!

0 投票
1 回答
42 浏览

scheme - 在 Chez Scheme 中引用数字常量

我很好奇为什么 Chez Scheme 不将数字视为符号。无论它们是在列表中还是单独引用,都number?返回 true,这意味着它没有被制成符号。这有实际原因吗?

0 投票
1 回答
391 浏览

linux - 在 64 位 Arm 上编译和安装 Chez 方案?

我尝试编译和安装Chez Scheme编译器的 Racket 后端变体,因为它现在似乎支持 aarch64 Arm 64 架构,这与仍仅限于 32 位 ArmV6的主线 Chez Scheme不同。我在运行 64 位 aarch64 Raspbian(现在更名为 Raspberry Pi OS)的 Raspberry Pi 4 上运行它。

当我下载源代码并尝试使用时./configure,我最终会收到有关缺少 nanopass 和 zlib 子模块的错误消息。

如何在 64 位 ARM 上编译和安装 Chez Scheme?

0 投票
1 回答
111 浏览

garbage-collection - Chez Scheme 中是否对已编译/评估过的程序的内存进行了垃圾收集?

在运行时包含编译器的多种(可能是大多数)语言实现忽略了垃圾收集丢弃的代码(例如,参见,这会导致等应用程序中的内存泄漏)

我的初步测试表明 Chez Scheme 不会在这里泄漏内存,但我想更确定地知道,因为我什至不知道是否f并且g 实际上被编译了。(古老的口头禅:“测试只能证明错误的存在,而不是它们的缺失”)


我尝试的测试:fg互相调用,它们的定义在运行时被替换。