问题标签 [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.
scheme - 测试 Guile 函数中是否发生错误
我正在尝试在 Guile 中创建一个函数,该函数测试任意表达式是否引发错误,但已经碰壁了。
qqx
是一个 quasiquoted 表达式,在error-or-not
函数内部进行评估并测试它是否会导致错误。
Guile 手册实际上说,如果评估qqx
引发错误,则该catch
函数返回它通过调用其第三个参数(接受参数的 lambda)获得的值。qqx
如果确实导致错误,这很好用(见上面的#1)。
但是手册还说,如果没有错误,该catch
函数会从评估返回值qqx
。这对我来说效果不太好,因为我无法区分这两种情况(见上面的#2)。
有人可以指出如何明确判断何时没有发生错误?
更新
Chris Jester-Young 指出了我的错误——请参阅下面接受的答案。为了完整起见,我发布了我正在使用的他的代码版本(向后移植到 Guile 1.8.8):
c++ - 如何将 c++ 代码与“guile-1.8.8”链接到“libguile”?
我想在 c++ 应用程序中嵌入 guile,但是当我尝试编译时出现“未定义的引用”错误:Ubuntu 12.04 guile-1.8.8
如果我从guile docs编译示例
在控制台上,它中止并出现错误:
如果我编译一些example.so(包括“libguile.h”)以嵌入 guile,一切都按预期工作。
有谁知道,什么可能导致这个错误?
最好的,扬-彼得
scheme - 是否有加载 SRFI 的标准化方法?
在 Chicken 中看起来我可以(use srfi-9)
,但在 Guile 中看起来像你说的那样(use-modules (srfi srfi-9))
,在 Racket 中它是(require srfi/9)
。是否有一个标准化的use-module
形式应该适用于所有方案实现(以便我可以编写可移植代码)?
scheme - Guile/Scheme - 重新定义另一个模块的内部功能
假设我有以下两个文件:
...并在同一目录中:
use-demo.scm
在 Guile (2) 中运行,我得到了输出1
。所以看起来该函数f
已经“关闭”了g
在 module 中定义的函数demo
。有没有办法解决这个问题?我真的很想使用g
我在use-demo.scm
.
scheme - 如何在 Scheme Lisp 中将字符串转换为精确的数字?
例如,我有这个字符串:“6119726089.12814713”
如果我这样做(string->number "6119726089.12814713")
- 使用 SISC 实现,结果是6.119726089128147e9
- 在 Guile 实现中是6119726089.128147
,但我想要一个确切的数字,比如:611972608912814713/100000000
不损失精度。
我想要一个像 (string->exact) 这样的函数或类似的函数。
注意:请修复我的非母语英语并删除此消息。谢谢。
macros - 如何在 SISC/Scheme 中创建一个生成另一个宏的宏?
在 Guile 或使用 SRFI-46 中,可以像指定自定义省略号标识符中所示一样。但是在 SISC 或“纯方案”R5RS 中是否有可能?
我知道不使用省略号是可能的,但是如果我需要像下面的示例那样使用内部省略号怎么办?
linux - Cygwin - 在 Windows 8.1 上运行程序时出错
操作系统: Windows 8.1
Cygwin 版本:截至 2014 年 9 月 9 日的最新版本。
狡猾的版本: 1.8
背景:
我的总体目标是使用 Cygwin 在 Windows 8.1 上安装一个名为“MIT Photonics Band ( MPB )”的程序。我是新用户,几天前我开始使用 Cygwin。经过一些故障排除后,我能够成功安装所有必需的软件包。最终,我使用通用的 ./configure、make、make install 命令安装了 MPB 程序,并稍作修改。这一切似乎都很成功。
问题:
当我尝试运行可执行程序时,出现以下错误:
尝试解决方案:
以下是 MPB 安装手册的一页: MPB 安装手册 - 共享库。它似乎解决了我的问题。请注意,它提到了 LIBDIR 和 foobar。对于我的操作系统,foobar 是 PATH。然而,LIBDIR,我并不明确知道,因为我的“make install”输出没有表明它,正如手册所暗示的那样。无论如何,我通过计算机搜索找到了 ice-9/boot-9.scm 的位置,它的目录恰好在这里: C:\cygwin64\usr\share\guile\1.8\ice-9 因此,我运行了以下bash 中的命令(同样,对于 Windows 8.1 操作系统):
但是,请注意,当我运行 $PATH 时,会收到以下消息:
我也试过:
结果是:
此外,我尝试将“ice-9”文件夹复制并粘贴到不同的位置,以获得快速而草率的解决方案,但无济于事。我在网上搜索了答案,因为一些用户在过去遇到过该程序找不到 ice-9/boot-9.scm 文件的问题。我无法解决我的问题。
如果我需要提供更多信息,请告诉我。感谢您的帮助!
编辑:为了响应第一个用户的帖子,我使用了命令 echo $PATH ,输出如下:
请注意,问题仍然存在。
编辑 2: 所以我打开了 GUILE 的“load.scm”文件,我发现了这一行:
我试图将 /usr/share/guile/1.8/ 添加到这些目录中,但这也没有做任何事情。说不上什么问题。
scheme - 方案 r7rs-large 很有趣,但是……它还在进行中吗?
我正在尝试查看 r7rs large 的状态,但我在方案报告页面等中找不到任何信息,这只是 2013 年的一次谈话。我也用谷歌搜索但没有成功。
- 它还活着吗?
- 我在哪里可以找到信息?
- 暂定日期是什么时候?
- 目前有什么进展?
谢谢。
scheme - 在 Guile Scheme 中使用动态评估的变量名称设置 alist
目前,我有以下列表:
其变量的名称存储在另一个 alist 中:
我想轻松检索全局对象列表。我首先尝试了这段代码。
但是,这吐出了一个错误:
错误:在程序关联中:位置 2 中的类型参数错误(期望关联列表):全局变量
我搜索并找到了这个问题,所以我尝试使用 eval。
但是,这吐出了与上面相同的错误!有谁知道如何用正确的参数调用 assoc ?
编辑(2014-10-27 21:27 EST):感谢您提供的所有解决方案。不幸的是,提交的示例可能不适用于完整代码: