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

scheme - 矩阵的方案流

我想在方案中有一个流,它包含一堆具有一定顺序的矩阵。

该流的流车将是矩阵 [1 6 0 3];也就是说,第 1 行 col 1 为 1,第 1 行 col 2 为 6,第 2 行 col 1 为 0,第 2 行 col 2 为 3。每个矩阵在技术上都是一个列表,但我有一个表示(构造函数和选择器)一个 2x2 矩阵。因此,这将是一个 2x2 矩阵流。

现在,流中的下一项应该是 [2 10 0 5]。这里的模式是下一个流中的矩阵增加如下: [k (4k+2) 0 (2k+1)] 其中 k 是第 k 个矩阵。

我有一个想法,我想如何存储这些。例如,我知道我可以通过以下方式获得连续的流:

和一个连续的整数流:

所以,我想要一个上述格式的连续矩阵流。也就是说,第一个(汽车流)将是由 [1 6 0 3] 表示的矩阵,然后是由 [2 10 0 5] 表示的矩阵,然后是由 [3 14 0 7] 表示的矩阵。

所以,我知道它会是这样的:

下划线是“我认为”是缺失的部分。我已经从这篇文章中删除了“添加流”程序来清理我的帖子。

***编辑:意识到我认为我的“开始矩阵”必须是 1 6 0 3,而不是 1 4 0 2。

但是必须有一种方法可以将 1 4 0 2 添加到第 k 个矩阵。

0 投票
4 回答
29805 浏览

scheme - 方案获取列表中的最后一个元素

我试图编写一个简单的方案函数来返回列表的最后一个元素。我的功能看起来应该可以工作,但我设法在某些事情上失败了:

DrRacket 不断给我错误:

既然(null? '())是真的,我不明白为什么这不起作用。

这是一个我认为我需要完成作业的函数(编写函数last-element不是赋值),并且说明说我不能使用内置函数reverse,所以我不能只做(car (reverse l))

如何修复此功能?

0 投票
1 回答
745 浏览

list - 方案列表总是以相反的顺序

对于这里的大多数更高级的计划者来说,这可能是一个微不足道的问题,但作为一个新手,我发现这是一个问题。

我需要一种方法来构建一个新列表,它的顺序与它进入时的顺序相同。例如,假设我们得到了一个列表'(1 2 0 3 4 0 0 5)。但是遍历列表并将 cdr 作为第一个参数传回最终会向后构造新列表。

这是代码中的示例:

我将一个需要对其进行工作的“旧列表”传递给它,并将一个空列表作为“新列表”传递给它,以形成并返回。

请注意,取出 0 只是作为新列表必须满足的“某些条件”

我不只是想反转使用反向过程返回的列表,而是希望首先以正确的顺序将新列表放在一起。

这是否有某种“技巧”,比如在其他地方进行递归调用?

任何意见是极大的赞赏。

0 投票
2 回答
2016 浏览

scheme - 从方案到 R5RS 的 add1 函数

我已经编写了一些代码,但它不起作用,因为add1我在 Scheme 中使用的函数不适用于 R5RS。add1R5RS可以替代什么?

0 投票
2 回答
964 浏览

scheme - scheme call/cc for handling errors

I have a Scheme application that accepts some user input, computes, and gives some output. I would like to make it more robust by enabling some kind of error handling and a way to exit smoothly. Call with current continuation seems to be the thing to fill this gap here, but I'm not quite sure how to go about implementing it.

As of now, if the user enters some non-valid input, the program will crash and exit. I would simply like to keep the user in the application and give an error message instead. Here is an outline of my method, but I'm not sure where to implement it so that if an error occurs that would normally crash the system, just gives an error and keeps them in the program.

I would also like a clean exit from the program. That is, not a crash exit, nor a break. I would like the user to type "leave", have the program close and return to the interpreter. My outline looks much like the above, but it doesn't have the user leave the program, it just takes him back to the input prompt.

Any ideas are appreciated.

0 投票
2 回答
217 浏览

image - 如何在 R5RS 中使用图像

我正在寻找一种将 .jpg 文件导入 R5RS 的方法。我想用它作为我正在制作的游戏的背景。

谢谢!

0 投票
1 回答
646 浏览

scheme - 改进 Scheme 中的衍生示例

我试图让一个方案导数计算器更能接受输入,从求和过程开始,最终是乘积。我一直在尝试修改程序以接受形式的输入,(deriv '(* x y (+ x 3)) 'x)而不是(deriv '(* x (* y (+ x 3))) 'x).

我正在处理的代码是:

我试图解决这个问题,但到目前为止没有太多的运气,这是我试图在几个不同的变体中实现的:

它给了我一个糟糕的语法调用。而且我可以看到我的第二个 if 似乎真的不适合 if 语句,但是我的老师给了我假设它的外观结构,所以它让我感到困惑,它不起作用,或者假设我想工作。

如果有人能帮我理解这一点,那就太好了。

到目前为止,我对 Scheme 并不感兴趣,虽然知道或理解它似乎很酷,但我的老师在过去 2 周内试图适应它,但我无法掌握它。

0 投票
2 回答
460 浏览

lisp - 在 r5rs 方案中实现长度(dracket)

是否可以使用 car 和 cdr 系列函数来实现 R5RS 方案函数“长度”?如果是这样,有人可以发布实现吗?

谢谢,

0 投票
1 回答
1526 浏览

scheme - 如何编写 Scheme(R5RS 语言)程序来计算最大深度(不使用 max 函数)?

这是我对深度程序的了解,但是如何在没有 max 函数的情况下执行此操作(仅使用 define、lambda、quote (')、car、cdr、cons、cond、eq? 和 equal?)?

输入: ((id = id + id)(if bool then (if bool then (id = id + id))(id = const / const)(id = id + id))(while bool (id = id - const )(id = id - id)))

应该输出:最大深度:2

0 投票
2 回答
90 浏览

scheme - 为什么这个方案程序没有按预期工作?

这不返回任何内容。我期望它会这样做(3 + (2 + (9 + 1)),这应该等同于15. 我使用set!错误的方式吗?我不能set!在一个if条件内打电话吗?