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

guile - 如何找到 Guile 包?

我在网上找到了一个代码示例,它通过使用os 进程模块解决了我当前的问题。

http://gnu-guile.7481.n7.nabble.com/getting-pipes-going-td14625.html#a14627

这很酷,只是我没有那个模块,也不知道在哪里以及如何获得它。

你能帮我吗?

(我在 Debian 上使用 Guile 2.0。)

0 投票
1 回答
59 浏览

c - 究竟什么是低位减法

我正在阅读这篇文章,并认为一切都很清楚,直到我偶然发现:

同样,大多数真实的 Scheme 系统使用稍微不同的实现。例如,如果GET_PAIR减去 的低位x,而不是将它们屏蔽掉,优化器通常能够将该减法与添加我们正在引用的结构成员的偏移量相结合,从而使修改后的指针与使用一样快未修改的指针。

究竟如何才能实现这种减法以及优化器将如何发挥它的魔力来像未修改的指针一样快地修改指针?

0 投票
4 回答
20102 浏览

makefile - 如何在 GNU Make 中更改当前目录

我想将带有源的目录与带有目标的目录分开。似乎从 Makefile 更改当前工作目录应该是最简单的解决方案。

由于以下缺点,目标的显式路径是不够的:

  1. Makefile 中的冗余代码,因为对目标的每个引用都应以变量为前缀。
  2. 用于构建特定中间目标的更复杂的命令行(更不利于调试)。

另见Pauls 的规则 #3

如果目标构建在当前工作目录中,那么生活是最简单的。

关于 VPATH——我也同意要求开发人员“在运行 make 之前更改到目标目录是一种痛苦”。

0 投票
3 回答
2439 浏览

compilation - 无法弄清楚如何运行 .scm(使用 guile 或 scm)文件

我创建了一个abc.scm文件,并尝试在 Ubuntu 的终端中使用“ guild compile ”、“ scm ”和“ guile ”命令将其编译为二进制文件(或任何 guile 方案编译成的文件)。

对于“ guild compile abc.scm ”,我得到输出“写了`/home/tarunmaganti/.cache/guile/ccache/2.0-LE-8-2.0/home/tarunmaganti/abc.scm.go' ” 我找到了文件并像这样运行-“ ./abc.scm.go ”表示权限被拒绝。当我使用“ chmod 755 ”或“ chmod 777
” 授予必要的权限时,我收到类似“ bash: ./abc.scm.go: cannot execute binary file: Exec format error ”的错误。

scm whatever-file-name.scm ” 只是打开了 scm 解释器。

" guile whatever-file-name.scm什么都不做。

官方 GNU/Guile Scheme 的链接不是很有帮助。

请帮我。我想创建一个 guile 方案脚本文件。编译它并作为 C/C++ 程序运行。可能吗?如果无法编译,我想知道如何至少运行GNU/guile 方案MIT-Scheme的脚本文件。

{非常感谢Step-by-step,我仍然是使用Ubuntu和Scheme的初学者。}

提前致谢。

0 投票
1 回答
1560 浏览

scheme - 方案:位置错误的类型参数

如果有人可以提供帮助,我将不胜感激。我已经敲了一天的头,试图让它发挥作用。我已经搜索了互联网并重新阅读了手册,但我就是不明白。

当我运行它时,我得到:

我知道格式是非标准的 - 我会在它工作时修复它。

编辑----------------------------------------- 这是工作代码(希望格式合理现在):

0 投票
0 回答
165 浏览

scheme - Guile 语法规则匹配 GNU 手册中省略号和不正确列表的混淆

我很难遵循一些 GNU guile 手册关于宏的文档(https://www.gnu.org/software/guile/manual/guile.pdf):

在第 6.10.2.1 节(关于模式的第 259 页)中,有一节讨论了不正确的列表如何像省略号关键字一样匹配:

exps然后说这是不可取的,因为像 in 这样的非列表(let (foo 'bar) . baz))将被匹配。但是,我无法扩展该表达式。但是,以下表达式确实会扩展:

  • (let1 (foo 'bar) . (baz))(let (foo 'bar) baz)
  • (let1 (foo 'bar) baz)(let (foo 'bar) baz)

同样在下面讨论改进:

它声明(let1 (foo 'bar))将被匹配,我再次无法匹配。不过,我可以做到这一点:

  • (let1 (foo 'bar) baz)(let (foo 'bar) baz)

在进一步将我的头撞到墙上之前,如果有人能澄清不正确和省略模式匹配是如何工作的(以及文档中是否有错字,或者我的 Guile 安装/宏扩展方法有问题?),那就太好了。我正在使用 Guile 2.0.9(文档在 2.0.11 上,但不会认为这很重要),并且我正在使用Geiser以及本指南进行宏扩展(结果没有区别):

谢谢!此外,如果有人可以推荐任何其他好的、不太简洁的关于 Scheme(最好是在 Guile 中)宏的资源,那也很棒!

0 投票
1 回答
653 浏览

ubuntu - 如何使用 shebang 表示法运行 guile Scheme 脚本?

我使用 shebang 表示法创建了一个 guile Scheme 脚本。

这是代码:

文件名:factScheme.guile

我尝试直接在终端“factScheme.guile”中运行它,我得到了bash factScheme.guile: command not found

如果我使用“./factScheme.guile”并且我得到了Permission Denied

如果有人能告诉我如何一步一步地在 ubuntu 的终端中实际运行 guile 方案脚本,我将不胜感激。

我在代码中提到的目录中有诡计。我

0 投票
1 回答
690 浏览

scheme - Guile scheme cond ERROR: Wrong type to apply

我不清楚为什么这个条件会给出错误的类型来应用错误。

scheme@(guile-user) [12]>(cond ((equal? "i" "i") => (display "yay")))

错误:在程序#中:

错误:应用错误的类型:#

scheme@(guile-user) [12]>(cond ((string= "i" "i") => (display "yay")))

错误:在程序#中:

错误:应用错误的类型:#

0 投票
1 回答
2427 浏览

scheme - 导入模块的方案语法是什么(尤其是诡计)?

如何在 Scheme 中导入模块(尤其是诡计)?

如何创建模块并将其导入方案中的另一个脚本中?导入模块时应该如何编译脚本,必须传递的命令行参数是什么?如果模块在另一个目录中,如何导入?

0 投票
2 回答
235 浏览

scheme - 无法理解 Guile 方案代码中的错误

我正在尝试使用 Guile 方案在终端上打印帕斯卡三角形。
什么是帕斯卡三角?

这是脚本:

文件名为 pascalTriangle.scm顶部
Shebang 符号具有正确的 guile 路径。
我已通过chmod +x pascalTriangle.scm
授予权限 使用命令./pascalTriangle.scm 5运行程序

运行上述脚本时,观察到以下输出/错误:

1Backtrace:在 ice-9/boot-9.scm:
   157:5 [catch #t #<catch-closure ac8400> ...]
在未知文件中:
     ?:4 [apply-smob/1 #<catch-closure ac8400 >]
在 ice-9/boot-9.scm:
     63: 3 [call-with-prompt prompt0 ...]
在 ice-9/eval.scm:
   432: 2 [eval ##]
在 /home/tarunmaganti/ ./pascalTriangle.scm:
     27: 1 [line-iter 0 4]
在未知文件中:
     ?: 0 [#<unspecified> #<unspecified>]

错误:在过程 #<unspecified>:
错误:要应用的类型错误:#<unspecified>

请注意,输出的第一个字符是 1,这意味着代码执行到过程row-iter的第一部分,即(显示 1),之后可能会出现错误。

但是输出显示错误在过程line-iter中。我不明白。
如果程序中的任何错误被指出并纠正以使其打印帕斯卡三角形,我将不胜感激。

Edit1:我编辑了错误/输出文本,我用 HTML 实体替换了 '<' 和 '>'。尖括号内的文字以前是不可见的。