问题标签 [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 回答
330 浏览

operators - 方案:为什么在重新定义预定义运算符时会出现这种结果?

+使用guile. 我应该指出,这是在尝试理解语言时发生的;这里没有尝试编写有用的程序。

这是代码:

即使在我重新定义它之后,guile该函数仍show使用 的预定义定义,尽管它使用. 我必须重新定义才能识别. 在这两个新定义中都会立即得到认可,这是我所期望的。此外,两个解释器都会立即识别 的任何进一步定义,而无需重新定义.+fshow+mit-scheme+show

幕后发生了什么guile使它以不同的方式绑定到这些重新定义的运算符的引用?

为什么两个解释器之间存在差异?

0 投票
1 回答
588 浏览

scheme - 如何在 guile 中创建 cairo 曲面

我有这个代码

当我使用字符串作为宽度和高度时

文档说:

cairo-pdf-surface-create (filename <char>) [Function]
         (width-in-points <double>) (height-in-points <double>)
         ⇒ (ret <cairo-surface-t>)

0 投票
2 回答
590 浏览

scheme - 在 guile 中保存程序图像

我听说大多数 lisps 支持将运行程序的图像保存到文件中。guile 支持这个吗?

0 投票
2 回答
1984 浏览

scheme - LilyPond:从音乐中提取音高名称

我使用 LilyPond 创建练习曲和练习曲。我已经想出了如何允许在 Moveable Do solfege 符号中输入音符,并有一个模板(见下文)支持在音符下方显示唱名符号作为歌词。目前,我必须手动从生成音乐的符号加标记中提取歌词。我已经能够使用一些 python 和 vim 代码(此处未显示)部分自动化此操作,但仍然有些不令人满意。

在我看来,最好的解决方案是在处理文件时使用 LilyPond 的内置方案解释器来提取音高名称。我已经尝试过将 map 与 ly:note-pitchname 一起使用,但到目前为止还没有成功。可能是因为我知道Squat 关于Scheme,尤其是在LilyPond 脚本中使用的。

0 投票
1 回答
2678 浏览

android - 是否可以将 Guile 嵌入 iOS 或 Android 上的 C++ 应用程序中?

Guile 看起来很容易嵌入到 C/C++ 项目中,但它在 iOS 或 Android 上的表现如何?它是否需要这些平台不可用的 3rd 方库?

与 JavaScript 或 Lua 相比,它作为一种可嵌入的脚本语言如何?

0 投票
3 回答
1398 浏览

python - 词法分析和解析实用程序

我正在寻找不是 Flex 或 Bison 的词法分析和解析器生成实用程序。要求:

  • 使用上下文无关的 LL(*) 或 GLR 语法指定解析器。我也会考虑 PEG。
  • 与可用于脚本和应用程序开发的编程语言紧密集成。语言还应该具有与 C 轻松交互的功能。Python、Ruby 和 Guile 就是很好的例子。请不要使用 C、Java 或 Perl。我希望语言是同质的;我希望解析器生成器以相同的语言输出代码。
  • 有据可查和生产质量。
  • 开源。免费也是可取的(尽管不是必需的)。
  • 与 Linux 发行版或开源 BSD 之一兼容。我会考虑 OpenSolaris。
  • 快速发展是一个比效率更重要的问题。
  • 适合解析自然语言和形式语言。自然语言解析仅限于简短、简单的句子,几乎没有歧义。

虽然我从未使用过它,但我关注的是 ANTLR。对此效果的评论表示赞赏。让我知道您最喜欢的满足这些要求的实用程序是什么,以及您推荐它们的原因。

0 投票
1 回答
2019 浏览

c++ - 在 C++ 中嵌入 Guile 的问题

我是一名 Scheme 程序员,我正在尝试使用 Guile 从 Bison 规范中的 C++ 代码调用 Scheme 函数。关于 Guile 和 C 的文档很棒;但是,我还没有找到很多有关 Guile 和 C++ 的最新信息。因为每个 C 程序在技术上都是 C++ 程序,所以通过 Guile 从 C++ 调用 Scheme 函数应该很容易。唉,我不是 C/C++ 程序员,所以我希望这里的一些 C++ 大师可以帮助我。这是我的一些代码:

我的 Scheme 代码的包装函数在 symtable.c 中。在纯 C 中使用这些相同的函数就可以了。从 C++ 调用它们会产生以下编译器错误:

paspar.y:33: 错误: '=' 标记之前的预期构造函数、析构函数或类型转换

...以及第 34 行到第 42 行的类似错误。我在 Ubuntu 10.10 上使用 GCC 4.4.5 和 Guile 1.6.8。我尝试将 libguile.h 包含在 extern "C" 块的内部和外部,但结果是一样的。我确定这是一个新手错误,但非常感谢您对这个问题的帮助。如果需要更多信息,请告诉我。我在下面包含了 symtable.h:

0 投票
2 回答
649 浏览

scheme - 如何检查/导出/序列化(诡计)方案环境

我想在另一个诡计进程中导出或复制方案环境。我想象的算法会做这样的事情来序列化:

然后我会在另一端阅读/评估它。

然而,虽然有一些函数可以返回当前环境,但它们是某种我无法map跨越的内部格式。我怎样才能像上面那样“走”环境?或者,我还能如何将环境复制到另一个进程中?

0 投票
1 回答
984 浏览

macros - 方案中的这个定义语法宏有什么问题?

我正在通过 SICP 工作,并想在 guile 中尝试一些示例。我正在尝试流示例并想要一个 cons-stream 的实现,这是我从这个 StackOverflow 问题中得到的。但是,当我将其输入 guile 时,我得到:

我不知道这有什么问题 - 我尝试将 () 替换为 '(),删除 [],但即使它似乎是有效的 R5RS ,它仍然无法正常工作。我目前使用的是 guile 1.8.7,我看不到GNU 文档提到的 v2.0.1 包,这可能是它不适合我的原因吗?

0 投票
3 回答
1780 浏览

scheme - 控制方案中的评估(诡计)

这似乎是一个简单的问题;也许它是如此简单,以至于很难找到可以找到答案的搜索。在 Scheme 中(特别是 Guile 实现,如果这有什么不同的话)我如何评估已引用的内容?

这就是我想要做的。

我基本上需要确保我定义的函数按特定顺序评估其参数,因为评估一个参数引起的副作用取决于评估其他参数的过程。但是,Scheme 说参数可以按任何顺序进行评估,所以我想通过引用参数来手动强制它,然后按需要的顺序手动评估它们。

看来“eval”应该做我想做的事,但它有两个问题:

  1. 不鼓励使用它,所以我觉得应该有更好的方法来完成我想要在这里做的事情。
  2. 在 Scheme 中,eval 似乎采用了第二个参数,即环境。这让我很困惑。我希望它在语句出现的同一环境中进行评估,那么为什么我需要第二个参数?这甚至可能吗?我玩过 eval ,似乎有些实现需要不同的参数(例如 mit-scheme 甚至不知道 (interaction-environment) 是什么!!!)

我尝试了其他技巧,例如构建 lambda:

但似乎必须对此进行评估以生成程序。我也试过:

但这会返回一个“原始内置宏”,它也不起作用。

编辑:看起来宏将用于控制评估顺序:(defmacro test1 (ab) `(begin ,b ,a))