Scripting 数量->;GIMP方案脚本中的字符串和相关过程

Scripting 数量->;GIMP方案脚本中的字符串和相关过程,scripting,scheme,gimp,script-fu,Scripting,Scheme,Gimp,Script Fu,我对GIMP脚本中的字符串到数字和数字到字符串的转换感到失望。我正在Windows Vista中运行GIMP 2.6.8 我知道GIMP的内部方案实现随着版本的变化而变化,我似乎无法确定文档。据我所知,GIMP的方案是TinyScheme的一个子集和/或支持R5RS标准过程。在任何情况下,当我想尝试新的东西时,我通常只在打包的脚本目录中查找示例,因为这肯定会起作用,对吗 例如,grid-system.scm附带最新的GIMP版本,并具有以下表达式: (string-append (number-

我对GIMP脚本中的字符串到数字和数字到字符串的转换感到失望。我正在Windows Vista中运行GIMP 2.6.8

我知道GIMP的内部方案实现随着版本的变化而变化,我似乎无法确定文档。据我所知,GIMP的方案是TinyScheme的一个子集和/或支持R5RS标准过程。在任何情况下,当我想尝试新的东西时,我通常只在打包的脚本目录中查找示例,因为这肯定会起作用,对吗

例如,grid-system.scm附带最新的GIMP版本,并具有以下表达式:

(string-append (number->string obj) " ")
这正是我想要的。但是,如果我在自己的脚本中使用number->string,或者甚至在GIMP的脚本控制台中键入它(这是我通常测试新内容的方式),它会告诉我number->string是一个未绑定的变量:

> (number->string 3)
错误:eval:unbound变量:number->string

例如,R5R的其他标准程序工作正常:

>(字符串附加“frust”“额定”)

“沮丧”

所以

1) 除了像搜索GIMP的源代码这样的激烈操作之外,是否还有一些关于当前GIMP方案脚本的潜在文档

2) 我可以使用GIMP控制台列出所有已定义过程的列表来查找我需要的内容吗


3) 还有人确认没有为当前Windows版本定义number->string,即使它出现在打包的脚本中?我的网络搜索没有发现任何相关的问题,完全卸载所有GIMP版本,回到最新版本,使我陷入同样的困境。

您可以在Scheme中重新绑定变量和monkeypatch顶级标准库函数,但我认为您无法解除顶级变量的绑定。可能有一些库文件加载不正确

在OSX上的GIMP2.6.8中,我的TinyScheme可以很好地执行number->string

number->string在share/gimp/2.0/scripts/script-fu.init中定义为

(define (number->string n) (anyatom->string n number?))

因此,您可以运行该代码来重新绑定变量。或者你可以重新加载脚本fu.init,让我直接找到它,谢谢!我认为MSYS的一个无关安装劫持了我的HOME变量,所以GIMP的最新更新或重新安装有错误的路径。我不认为数字->字符串可能是由其他原始程序构建的脚本。再次感谢!