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

macros - 为什么这个 lisp 递归宏不起作用?

我在诡计中有宏 let-- (比如 let* 使用 lambdas ):

当我使用外部函数进行代码生成时它工作正常,但下面的代码(只是一个宏)不起作用:

为什么?

0 投票
0 回答
87 浏览

fifo - GNU-GUILE 中 Fifo 的实现

我想做以下事情:

我想使用 GUILE 在普通文件中实现 FIFO 的概念。

两个进程应该通过一个普通的文本文件进行通信,如果需要,第三个进程可以访问。

原来两个进程的从属应该一行一行的写在文件中,也就是追加。到目前为止,一切都很好。(在 C++ 中实现)

然而,主进程应该将此文件视为 FIFO,它应该读取第一行,并执行相应的操作,并删除第一行,其余部分保持不变。

问题是:

  1. 当 Master 访问文件时,从属可能会到达必须在那里写入的点,从而导致冲突。
  2. 弹出第一行可能需要读取整个文件,在一个字符串中,弹出第一个文件,然后保存它,这是内存密集型的,第二个保存操作可能再次与试图在那里写的孩子发生冲突,

我想在 GUILE 中实现这一点,因为它是官方的操作系统扩展语言,可能有更好的方法来解决上述两个问题。

但是在网络上,我找不到太多可以定位的东西。请帮忙,抱歉这个问题比具体问题少,然后我没有要显示的代码片段。

0 投票
2 回答
249 浏览

scheme - `#:` 在 Guile 中是什么意思?

我通常使用 MIT/GNU Scheme,但在 github ( guile-2d ) 中找到了一些 Guile 代码。

我首先检查了 MIT/GNU Scheme 参考,它出现了额外的符号,但其中没有任何内容#:

然后,我浏览了 Guile 手册,发现了一些提及(Profile CommandsDebugging Commands),看起来可能指定了可选参数?Python中类似的东西:

有谁确切知道这意味着什么?

0 投票
4 回答
5852 浏览

scheme - 方案中嵌套定义的体面方式

我想foo使用一个辅助函数来定义一个常量,比如bar. 我想隐藏bar在 的定义中foo,所以我提供了以下代码:

然而,这个定义在许多方案实现(mit-scheme、racket、guile 等)中会导致语法错误。

我有三种解决方法,但似乎都不令人满意:

foo1使用 lambda 来创建编写辅助定义的环境,括号似乎有点令人困惑。

foo2使用 let 表达式,但我不能再使用语法糖(define (f n) ...)=>(define f (lambda (n) ...))

foo3与原始值相比,需要较少的修改,但每次我想要这个值时,我都必须重新调用(foo3)并重新计算。

我的问题是:

  1. 我认为这种嵌套定义是有道理的,但为什么会被认为是语法错误呢?
  2. 有什么体面的方法来写 的定义foo吗?
0 投票
2 回答
309 浏览

ubuntu - ubuntu 12.04 上的 guile 给出“输入语言环境转换错误”

运行 guile(以交互模式或使用脚本)在我的 ubuntu 12.04 上出现此错误:-

关于如何调试的任何输入也将有所帮助。

0 投票
1 回答
109 浏览

scheme - let 中的 read-line 不会读取下一行

上面的代码无法将第二行读入 l。相反,它只是两次读取相同的值:-

当 line1 后跟 line2 作为输入时,它显示 line1 作为输出而不是 line2 。这里发生了什么?

0 投票
1 回答
82 浏览

mit-scheme - 保留过程中定义的变量?

我写了一个程序(do-test)。由于测试可能对变量有一些影响env,我env在里面定义do-test了希望env程序不会携带它,所以每次运行它,我都会得到一个新的环境来工作。令我惊讶的是,我的测试程序居然携带了以前的env. 请找到以下代码:

我尝试使用 mit-scheme / guile / codepad.org 运行此代码,所有这些都告诉我运行(do-test)两次会产生不同的结果。

但是,如果我将行更改(define env '(1))(define env (list 1)),我会得到预期的结果。(您可以在 codepad.org 中找到更改前后的代码

据我所知,'(1)应该(list 1)是相同的,除了第二个将调用过程list

我想知道为什么会发生这种情况以及如何防止程序重用以前的值?

0 投票
1 回答
90 浏览

scheme - 我可以将符号列表分配给 Guile 中的元素列表吗?

我正在编写一些获取设定长度列表的诡计代码,我需要为列表中的每个元素定义一个变量。目前,我必须做这样的事情:

这变得超级乏味。无论如何我可以做这样的事情吗?

编辑:使问题更加狡猾。

0 投票
2 回答
1695 浏览

scheme - 调用过程 n 次的方案函数

方案是否具有调用函数 n 次的函数。我不想要 map/for-each 因为该函数没有任何参数。类似这样的东西:-

0 投票
1 回答
81 浏览

scheme - NZEC 在 INVCNT 上与 Guile 在 Spoj 上

我使用以下INVCNT代码获得NZEC

请问有什么提示吗?