问题标签 [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 投票
4 回答
1291 浏览

scheme - 检测#在方案列表中

我有一个返回值列表的函数。其中一些值本身可能是空列表,而有些则不是。但是,在每个列表的末尾,都有一个#<unspecified>值。我了解当函数不返回任何内容时会返回此值。

我想修剪这个值以及其他空列表。

我的清单是这样的:
(() () MD- MC+. #<unspecified>)

我打算对这个列表应用一个过滤器功能。我将应用的标准是null?
但是,当它应用于该#<unspecified>值时,它给了我错误。如何#<unspecified>从列表中删除值?

应用过滤器功能后此列表的输出应为: (MD- MC+)

我该怎么做呢?

0 投票
1 回答
104 浏览

scheme - 在Scheme中只传递一个参数而不是两个参数

我在方案(extract-disjunct word nodes)中有一个函数,它接受两个参数:wordnodes.

我有一个句子:“这是一个测试句子”。对于这句话中的每个单词,我想应用上面给定的函数。

这可以通过简单的地图操作来完成。

但是,要注意的是:第二个参数nodes本身是一个嵌套列表,并且对于给定的句子,参数保持不变,即对于我打算应用映射的单词列表,它将保持不变。它不会改变。

我想像这样应用地图: (map extract-disjunct word nodes)

但是,我收到一个错误。有什么解决办法吗?我可以保持地图中的一个参数不变吗?

0 投票
1 回答
52 浏览

scheme - 只有在 Scheme 中满足某些条件时才赋值

我有一个可能包含一些空值的列表。但是,我打算忽略那些空值。我的清单示例是:
(() () MC+ () MD- () () ME+)

在我的过程中,我遍历这些元素并使用 let 创建一个本地绑定变量,该变量绑定到此列表中的一个元素。但是,只有当值不为空时,我才应该能够绑定变量。目前,我正在这样做:

但是,只有当该元素不为空时,才应为 disjunct 分配一个值。这意味着分配给 disjunct 的值应该是:MC+

它应该遍历所有值并选择下一个非空值并将其分配给disjunct.

还有一件事,我正在做进一步disjunct的操作。并且递归地,我将列表的其余部分向下传递。所以下次我递归调用这个过程时,disjunct应该有值MD-。那就是使用(cdr disjunct-list)我应该能够得到以下列表:(() MD- () () ME+)

如何才能做到这一点?

0 投票
2 回答
117 浏览

scheme - 根据它们在Scheme中的句子中出现的顺序排列单词列表

我有一句话,例如,The game is played on a level playing field

现在,我有一个单词列表(played is the)。这些是随机给我的话。

现在,我必须根据它们在句子中出现的顺序对它们进行排序。我如何在 Scheme 中做到这一点?SRFI 库中有什么功能可以帮助我吗?我无法掌握如何递归地执行此操作。

0 投票
1 回答
758 浏览

scheme - 在 Scheme 列表中的任意位置插入

我有一个清单,例如:(B D F)

我想在列表中的任意位置插入一个元素。例如,如果元素是 A,我想在 B 之前插入它,如果元素 C,我想在 B 之后但 D 之前插入它。

有没有办法在 Scheme 的列表中的任意位置插入元素?

0 投票
2 回答
1311 浏览

list - Scheme Guile:仅从列表中删除第一次出现(非破坏性)

我需要以非破坏性的方式从列表中删除第一次出现的元素。

根据Guile 参考手册,有一组函数可以以破坏性方式执行此操作(delq1!、delv1!、delete1!)。另一方面,非破坏性版本会删除所有出现的元素。

我知道我可以编写一个函数(可能是通过过滤器)在几行中完成它,但我想知道是否存在更好/标准的方法来做到这一点。

例如,给出列表

移除元素时

我希望结果是

而原始列表仍然存在

提前致谢!

0 投票
3 回答
1622 浏览

scheme - Implement yield and send in Scheme

I'm trying to port yield and yield from from Python to Scheme.

Here is an implementation I've done:

The problem, with this implementation is that the way it has to be called doesn't looks like Python's yield.

Among other things, each time I need to-restart the coroutine, I must let a new return variable to be able exit the coroutine. Basically, I find the syntax too verbose. Is there another to have cleaner syntax?

It should be possible to yield and send values to the coroutine. Here is an example of how the coroutine must be used:

In the above, 1 is ignored and then 100, 1000 are send to the generator. I've done an implementation, based on @sylwester code, but I have troubles with the macro:

0 投票
1 回答
253 浏览

list - Scheme Guile:将函数应用于除最后一个以外的所有元素

我需要对列表中的最后一个元素以外的所有元素应用一个函数。基本上我正在编写一种玩具编译器,所以给出这样的算术术语:

我想得到类似的东西

我设法得到以下内容:

通过使用地图功能:

其中 compile-term 是我正在编写的函数,而 t 是我编译的术语。

所以我的问题如下,是否有一种干净的方法可以将函数应用于所有元素,但使用 Guile Scheme 的列表的最后一个元素除外?或者唯一的解决方案是使用此处所示的循环。

提前非常感谢。

0 投票
1 回答
3104 浏览

command-line - 从 Scheme (Guile) 执行命令行

标题上描述了这个问题,基本上我想从方案中执行一个命令行,比如说'ls'并获取输出。所以我的问题是:

  • 可能吗?
  • 如何?

提前非常感谢!

顺便说一句,我使用 Guille。

0 投票
1 回答
1601 浏览

installation - gnu/libtool (libltdl) 已安装但配置脚本未找到

我正在尝试在系统上本地安装guile 。它需要 gnu/libtool。在安装所有依赖项时,“ make check”命令在安装 gnu/libtool 时显示错误。但是,如果我省略了命令并简单地运行“ make” ,然后运行“ make install”,那么它就能够成功安装。我能够毫无问题地安装其余的依赖项。但是,当我运行以下命令时,我收到以下提到的错误:

命令:

错误:

$PREFIX定义并且我已经在文件夹中安装了libltdl库。libtool当我查看文件夹的includelib子目录时libtool,我可以找到libltdl文件夹和 .so 文件。

所以,我不确定为什么配置脚本无法找到本地安装的libtool. 如果有人能指出命令中的问题以及如何解决此错误,我将不胜感激。