问题标签 [r5rs]

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 回答
4556 浏览

scheme - Guile 方案和标准方案之间的区别(在 Racket IDE 中)?

我有一堆想要在 Racket Scheme IDE 中运行的“遗留”Guile Scheme 代码。似乎有足够的差异使这成为一项重要的练习。(我的 Scheme 知识水平是完成 The Little Schemer 的水平)。

我的问题是:

  1. Guile 方案和标准方案(在 Racket IDE 中)有什么区别?
  2. 鉴于这些差异,一般来说,我需要采取哪些步骤将一些 Guile 方案代码转换为标准方案?

附加:(对 Racket Scheme 和 R5RS/R6RS 之间的分歧感到高兴)-我想要的是在 Racket IDE 中运行“某些东西”-而不是在 Racket 语言中运行。

0 投票
2 回答
292 浏览

macros - 如何在列表上映射宏 - 或 - 如何使用宏定义数据类型

我喜欢用我自己的数据类型构建一个 REPL,但我不喜欢一遍又一遍地编写所有相同的模式函数。

所以这是一个坚果,这让我很困扰。

我有自己的一组原始数据类型(define primitives '("mytrue" "myfalse" "mynumber" ...))

我也有(define primitiveTesters (list "mytrue?" "myfalse?" "mynumber?" ... )

现在的问题是,我只想应用(映射)或宏来获取数据类型?程序,它基本上只是检查记录的汽车是否(mynumber . ( . ))存在。

所以最后类似(mynumber? (car (mynumber.(1.))) => #t的东西。但为此我需要(define mynumber? (lambda (...)(...))

我的定义批处理宏看起来像这样,但我只是没有运气注入<variable>.

那么我是否已经走到了计划的尽头?

我在 Emacs Lisp 中看到过类似的东西。

我最终要寻找的是:

0 投票
3 回答
2234 浏览

recursion - 方案递归函数

嘿,我一直被以下问题困扰,似乎无法提出正确的功能。

编写一个递归函数,给定一个正整数 k,计算乘积 k:(1-1/2)(1-1/3)(1-1/k)... 随着 k 减一。

我似乎无法想出正确的功能,我的程序通常运行直到它没有更多的内存。这是我的方法:

提前感谢您的帮助...

0 投票
2 回答
972 浏览

scheme - SICP 练习 1.5 和 1.6

除了问题SICP中练习1.6的解释是什么?. 所以 Racket 博士 (R5RS) 在有限时间内用“if”评估 sqrt-iter 函数,清楚地显示了正常的顺序评估。但是如果我使用练习 1.5 中的示例

它进入无限循环,让我觉得“如果”使用了应用顺序评估。那么我错在哪里?

0 投票
1 回答
1065 浏览

scheme - 方案二叉搜索树错误 (R5RS)

总的来说,我对 Scheme 和函数式语言完全陌生。我正在尝试创建一个二叉搜索树。节点的格式是三个元素的列表,第一个是节点的值,第二个是左子节点,第三个是右子节点。我有一个“make”函数,它创建一个空树:( () () () )。我也有插入功能。这是代码:

为了测试它,我运行以下几行:

然后我收到以下错误:

我已经检查并重新检查了我的括号......并在调试模式下运行它,我看到它在将 2 插入树的末尾失败。直到,它按计划工作。这是我愚蠢的语法/逻辑错误的原因吗?

0 投票
1 回答
1111 浏览

scheme - 方案错误,将二叉搜索树返回为有序列表 (R5RS)

我是 Scheme 的菜鸟。我有一个二叉搜索树。节点的格式是三个元素的列表,第一个是节点的值,第二个是左子节点,第三个是右子节点。“make”函数创建一个空树,如下所示:( () () () )。我能够创建树、插入值并查找树中是否存在某个值。当我尝试编写一个将树作为有序列表返回的函数时,我的问题就出现了。插入和制作功能:

那些工作正常。这是我的清单:

运行这个,我得到一个合同违规,说它预期“mpair?”。我不认为这是我的逻辑错误,但它可能是。这是另一个括号问题吗?
感谢您的时间!

0 投票
3 回答
3292 浏览

scheme - 方案乘以列表项

我看了又看,但很惊讶没有找到这个问题的答案。

在 R5RS 方案中,您将如何编写一个将列表中的每个元素彼此相乘的过程。如果给定一个列表 '(4 5 6),那么该过程,multiply-list,应该返回 120。4*5*6=120。

提前致谢。

0 投票
1 回答
197 浏览

scheme - 返回函数的方案函数正在返回意外的值

我在计划中有一个功能

其中 mf 是返回的函数。

但是,它不是返回一个值,而是返回

代码似乎没有错误,那么为什么不返回可用值呢?

0 投票
3 回答
5301 浏览

list - 要列出的方案编号

我需要一个用 scheme 编写的程序的子例程,它接受一个整数,比如 34109,并将其放入一个包含元素 3、4、1、0、9 的列表中。整数可以是任意长度。有人对此有诀窍吗?我考虑过在每个地方都使用模数,但我认为它不应该那么复杂。

0 投票
1 回答
852 浏览

scheme - Scheme 为矩阵对象定义构造函数和选择器

我正在尝试为简单的 2x2 矩阵开发构造函数和选择器,但我不确定我所做的是否正确。这需要一个包含 4 个元素的列表并生成 2x2:

这有效......但我不确定我是否正确使用了选择器。