我对GIMP脚本中的字符串到数字和数字到字符串的转换感到很沮丧。我在Windows Vista中运行GIMP 2.6.8。
据我所知,GIMP的内部Scheme实现更改了版本,我似乎无法确定文档。根据我的收集,GIMP的Scheme是TinyScheme的子集和/或支持R5RS标准程序。在任何情况下,我通常只是在打包的脚本目录中查看我想要尝试新内容的示例,因为这应该可以肯定,对吧?
例如,grid-system.scm附带最新的GIMP版本,其表达式为
(string-append (number->string obj) " ")
这正是我想要的。但是,如果我在自己的脚本中使用number->字符串,或者甚至将其键入GIMP的脚本控制台(这是我通常测试我想要做的新东西),它告诉我number-> string是一个未绑定的变量:
> (number->string 3)
Error: eval: unbound variable: number->string
R5RS的其他标准程序工作得很好:
> (string-append "frust" "rated")
"frustrated"
所以,
1)除了搜索GIMP的源代码之外,还有一些潜在的GIMP Scheme脚本潜伏文档吗?
2)我可以使用GIMP控制台吐出所有已定义程序的列表来查找我需要的东西吗?
3)其他人确认没有为当前的Windows版本定义number->字符串,即使它出现在打包的脚本中?我的网络搜索没有发现任何相关的问题,所有GIMP版本的完全卸载,回到最新版本让我陷入了同样的困境。
答案 0 :(得分:4)
您可以在Scheme中重新绑定变量和monkeypatch顶级标准库函数,但我认为您不能取消绑定顶级变量。也许有一些库文件无法正确加载。
我在OS X上的GIMP 2.6.8中的TinyScheme执行number->字符串就好了。
number->字符串在share / gimp / 2.0 / scripts / script-fu.init中定义为
(define (number->string n) (anyatom->string n number?))
所以你可以运行该代码来重新绑定变量。或许你可以重新加载script-fu.init