问题标签 [sisc]

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

scheme - 如何在 Scheme Lisp 中将字符串转换为精确的数字?

例如,我有这个字符串:“6119726089.12814713”

如果我这样做(string->number "6119726089.12814713")- 使用 SISC 实现,结果是6.119726089128147e9- 在 Guile 实现中是6119726089.128147,但我想要一个确切的数字,比如:611972608912814713/100000000不损失精度。

我想要一个像 (string->exact) 这样的函数或类似的函数。

注意:请修复我的非母语英语并删除此消息。谢谢。

0 投票
2 回答
80 浏览

scheme - 如何在 SISC 方案的第一个参数中创建一个接受字符串的“定义”?

我们称这个函数为“动态定义”。

基本上我想编写一个像这样工作的宏或 lambda:

我尝试过这个:

它按预期工作,但似乎不是一个好的解决方案。

我尝试在没有 eval 的情况下使用:

但是当我尝试使用时,我得到了这个错误:

我应该怎么办?

(请:编辑此问题以适合母语英语并请删除此行)

0 投票
1 回答
145 浏览

scheme - SRFI 40(已弃用)和 41 之间的主要区别是什么?

SRFI 40中,我们可以看到它已被SRFI 41弃用和取代。我正在使用存在 SRFI 40 但不存在 SRFI 41 的 SISC。我想知道它们之间的主要区别,我可以正常使用 SRFI 40 而不用担心吗?

0 投票
2 回答
160 浏览

scheme - 递归函数未按计划工作

我正在用 Scheme 编写一个函数,它应该采用两个整数 X 和 Y,然后递归相加X/Y + (X-1)/(Y-1) + ...,直到其中一个数字达到 0。

例如,取 4 和 3:

4/3 + 3/2 + 2/1 = 29/6

这是我的功能无法正常工作:

编辑:我已经更改了我的代码以解决评论中列出的问题,以及更改 和 的or位置and

不幸的是,我仍然遇到错误。

0 投票
1 回答
912 浏览

recursion - 递归函数不起作用'“过程车中的错误类型参数”

我正在编写一个递归函数,它接受一个元素 A 和一个列表 L 并返回一个等于 L 的列表,但每次出现的 A 都被删除。这是我写的:

编译并运行时,我收到以下错误:

0 投票
1 回答
303 浏览

list - 替换列表中第一次出现的元素

我正在编写一个函数replaceFirst(X Y L),它仅将列表 L 中第一次出现的 X 替换为 Y。

这是我到目前为止所做的:

这给出了一个错误In procedure setter: Wrong type argument in position 1: #<procedure car (_)>

编辑

我想出了一个解决方案:

首先,如果X是第一个元素,而不是使用set!(我不熟悉),我cons Y将列表排除在外X

否则,我cons将列表的第一个元素与列表的其余部分递归调用的函数。