问题标签 [guile]

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 投票
2 回答
4072 浏览

list - 将列表放入方案中的参数中

所以我是使用 Scheme/Guile 的新手,并且有一个必须接受 2 个输入的任务;一个简单的变量和一个列表。

然后我将变量添加到列表中的每个数字并打印出来。我已经加载了它,但是当我输入这个时:

我收到此错误:

这是我目前拥有的代码。

我的问题是:
如何让列表在参数中起作用?我在网上环顾四周,但没有找到太多可以解决这个问题的方法。非常感谢您能给我的任何帮助。

0 投票
1 回答
1026 浏览

scheme - 这个方案错误告诉我什么?

存在一个称为 meep 的电磁模拟器,它以狡猾的解释器形式提供前端。模拟器由一堆方案宏组成。

我试图弄清楚以下错误的含义。代码取自教程。当我将教程包装在一个过程中时,我得到一个运行时错误,我不确定解释器(诡计)告诉我什么。

不工作的代码

工作代码(无程序)

错误

在职的

在一天结束的时候,我觉得某事被评估了两次。但我不确定那是什么东西。

0 投票
3 回答
6164 浏览

scheme - Guile Scheme 解释器中的奇怪乘法行为

Guile 1.8.8我在 OS X的解释器中练习 Scheme 。我注意到了一些有趣的事情。

expt是基本上做幂运算的函数expt(b,n) = b^n

如果我尝试一些输入

奇怪的部分来了:

更奇怪的是,直到n=488它停留在0

当我使用repl.it在线解释器尝试此代码时,它按预期工作。那么Guile到底有什么问题呢?

(注意:在某些方言中,remainder函数称为mod。)

0 投票
1 回答
637 浏览

scheme - 如何在方案中将数字分解为整数和小数部分?

我想要一个函数number->second-pair,它接受一个数字并返回一对整数,表示其整数部分和小数部分乘以 1000000。

IE:

您可能很容易找到解决方案,但我搜索了许多文档,遗憾的是找不到将数字转换为整数的方法。有人可以帮我吗?

顺便提一句:

实际上我想要一个更精确的alarm这个)通过使用setitimer,所以我想要精确的整数作为参数传递。

0 投票
1 回答
283 浏览

memory - GNU Guile SCM 到 char*

我对 FFI 和 GNU Guile 比较陌生,我正在编写绑定到一个大量使用char*变量的库。这是来自函数的代码,它包装了 C 函数:

问题是任何对转换函数的调用都可能引发错误,从而导致内存泄漏。我能做些什么呢?

0 投票
3 回答
1645 浏览

scheme - 如何评估从 Scheme 中的函数返回的符号?

我正在重新熟悉 Scheme,我遇到了一个问题,这可能反映了我的基本误解。

假设我在 Scheme 中执行以下操作(在这种情况下使用 Guile,但在 Chicken 中是相同的):

我知道这是返回一个有效引用string->symbol的符号。x但是,我无法弄清楚如何string->symbol在以后的任何上下文中使用返回的符号。如何让 Scheme 评估该符号?

为了说明我为什么要这样做的背景,我正在编写一个嵌入 Guile 的 C 程序。我希望能够通过 C 的名称访问 Guile 中定义的符号,例如使用scm_from_*_symbolscm_string_to_symbol. 这些功能没有按我想象的方式工作的原因与我上面的核心问题有关。也许有更好的方法来做我想要对 Guile 做的事情,但这是一个不同的问题。现在我对上面的基本问题感兴趣。

0 投票
1 回答
508 浏览

process - 如何在 Guile 中的两个进程之间创建管道?

我想在 Guile 中创建两个进程,并将其中一个的输出(stdout)作为输入(stdin)发送到另一个。

使用以下示例,如何做到这一点?

输出:

0 投票
2 回答
561 浏览

scheme - 如何在 Guile 2.0 中加载扩展?

我正在尝试为Guile 2.0加载 Graphviz 扩展。Graphviz 的文档建议的这行方案代码在Guile 1.8中工作:

但是,它会在Guile 2.0中失败,并出现以下错误:

我也尝试过使用以下替代路径:

结果相同。我怎么做?

0 投票
2 回答
733 浏览

terminal - 如何在 mzscheme/guile REPL 中使用箭头键?

当我输入 guile 或 mzscheme 的 REPL

然后按箭头键我得到 (define x 15)^[[D

是终端问题吗?或者需要配置什么?为简单的编辑重写一行是痛苦的

0 投票
3 回答
1092 浏览

scheme - 如何在 Lilypond 中缩写“相同音符的音符高八度,括号内”?

目前我编写的代码如下所示:

我重复的意思是“这个音符,连同高一个八度的同一个音符,用括号括起来”。

我想要一种缩写的方法,这样我就可以写这样的东西:

正如我之前的问题的有用答案中所建议的那样,我尝试使用音乐功能,但我无法让它工作。我能得到的最接近的是

但这使用<<..>>而不是<.. >,它不会呈现我想要的方式(并带有警告),我不知道为什么\transpose c c实际转置任何东西。

最后,切线相关的是,在尝试音乐功能时,我发现仅仅创建一个模仿的音乐功能甚至是不可能的\repeat unfold 2;以下在第三和第四之间跳下一个八度c