问题标签 [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.
scheme - Guile 方案和标准方案之间的区别(在 Racket IDE 中)?
我有一堆想要在 Racket Scheme IDE 中运行的“遗留”Guile Scheme 代码。似乎有足够的差异使这成为一项重要的练习。(我的 Scheme 知识水平是完成 The Little Schemer 的水平)。
我的问题是:
- Guile 方案和标准方案(在 Racket IDE 中)有什么区别?
- 鉴于这些差异,一般来说,我需要采取哪些步骤将一些 Guile 方案代码转换为标准方案?
附加:(对 Racket Scheme 和 R5RS/R6RS 之间的分歧感到高兴)-我想要的是在 Racket IDE 中运行“某些东西”-而不是在 Racket 语言中运行。
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 中看到过类似的东西。
我最终要寻找的是:
recursion - 方案递归函数
嘿,我一直被以下问题困扰,似乎无法提出正确的功能。
编写一个递归函数,给定一个正整数 k,计算乘积 k:(1-1/2)(1-1/3)(1-1/k)... 随着 k 减一。
我似乎无法想出正确的功能,我的程序通常运行直到它没有更多的内存。这是我的方法:
提前感谢您的帮助...
scheme - SICP 练习 1.5 和 1.6
除了问题SICP中练习1.6的解释是什么?. 所以 Racket 博士 (R5RS) 在有限时间内用“if”评估 sqrt-iter 函数,清楚地显示了正常的顺序评估。但是如果我使用练习 1.5 中的示例
它进入无限循环,让我觉得“如果”使用了应用顺序评估。那么我错在哪里?
scheme - 方案二叉搜索树错误 (R5RS)
总的来说,我对 Scheme 和函数式语言完全陌生。我正在尝试创建一个二叉搜索树。节点的格式是三个元素的列表,第一个是节点的值,第二个是左子节点,第三个是右子节点。我有一个“make”函数,它创建一个空树:( () () () )。我也有插入功能。这是代码:
为了测试它,我运行以下几行:
然后我收到以下错误:
我已经检查并重新检查了我的括号......并在调试模式下运行它,我看到它在将 2 插入树的末尾失败。直到,它按计划工作。这是我愚蠢的语法/逻辑错误的原因吗?
scheme - 方案错误,将二叉搜索树返回为有序列表 (R5RS)
我是 Scheme 的菜鸟。我有一个二叉搜索树。节点的格式是三个元素的列表,第一个是节点的值,第二个是左子节点,第三个是右子节点。“make”函数创建一个空树,如下所示:( () () () )。我能够创建树、插入值并查找树中是否存在某个值。当我尝试编写一个将树作为有序列表返回的函数时,我的问题就出现了。插入和制作功能:
那些工作正常。这是我的清单:
运行这个,我得到一个合同违规,说它预期“mpair?”。我不认为这是我的逻辑错误,但它可能是。这是另一个括号问题吗?
感谢您的时间!
scheme - 方案乘以列表项
我看了又看,但很惊讶没有找到这个问题的答案。
在 R5RS 方案中,您将如何编写一个将列表中的每个元素彼此相乘的过程。如果给定一个列表 '(4 5 6),那么该过程,multiply-list,应该返回 120。4*5*6=120。
提前致谢。
scheme - 返回函数的方案函数正在返回意外的值
我在计划中有一个功能
其中 mf 是返回的函数。
但是,它不是返回一个值,而是返回
代码似乎没有错误,那么为什么不返回可用值呢?
list - 要列出的方案编号
我需要一个用 scheme 编写的程序的子例程,它接受一个整数,比如 34109,并将其放入一个包含元素 3、4、1、0、9 的列表中。整数可以是任意长度。有人对此有诀窍吗?我考虑过在每个地方都使用模数,但我认为它不应该那么复杂。
scheme - Scheme 为矩阵对象定义构造函数和选择器
我正在尝试为简单的 2x2 矩阵开发构造函数和选择器,但我不确定我所做的是否正确。这需要一个包含 4 个元素的列表并生成 2x2:
这有效......但我不确定我是否正确使用了选择器。