число->строка и связанные процедуры в сценариях схемы GIMP

StackOverflow https://stackoverflow.com/questions/2485575

Вопрос

Меня расстраивает преобразование строк в числа и чисел в строки в сценариях GIMP.Я использую GIMP 2.6.8 в Windows Vista.

Я понимаю, что внутренняя реализация схемы GIMP меняется в зависимости от версии, и я не могу точно определить документацию.Насколько я могу судить, схема GIMP является подмножеством TinyScheme и/или поддерживает стандартные процедуры R5RS.В любом случае, когда я хочу попробовать что-то новое, я обычно просто ищу примеры в каталоге упакованных скриптов, потому что это наверняка сработает, не так ли?

Например, файлgrid-system.scm поставляется с последней версией GIMP и имеет выражение:

(string-append (number->string obj) " ")

это именно то, чего я хочу.Однако, если я использую число->строку в своем собственном скрипте или даже ввожу его в консоль сценариев GIMP (именно так я обычно тестирую новые вещи, которые хочу сделать), он сообщает мне, что число->строка является несвязанной переменной:

> (number->string 3)

Error: eval: unbound variable: number->string

Другие стандартные процедуры, скажем, из R5RS, работают нормально:

> (string-append "frust" "rated")

"frustrated"

Так,

1) Есть ли какая-то скрытая документация для текущих сценариев GIMP Scheme, кроме чего-то радикального, например поиска исходного кода GIMP?

2) Могу ли я использовать консоль GIMP, чтобы вывести список всех определенных процедур, чтобы найти то, что мне нужно?

3) Кто-нибудь еще подтверждает, что число->строка не определена для текущей сборки Windows, хотя она присутствует в упакованных скриптах?Мои поиски в Интернете не выявили никаких связанных с этим проблем, и полное удаление всех версий GIMP, вплоть до последних, ставит меня в такую ​​же передрягу.

Это было полезно?

Решение

Вы можете перепривязать переменные и функции стандартной библиотеки верхнего уровня Monkeypatch в Scheme, но я не думаю, что вы можете отменить привязку переменных верхнего уровня.Возможно, какой-то файл библиотеки загружается неправильно.

Моя TinyScheme в GIMP 2.6.8 на OS X отлично выполняет число->строку.

число->строка определена в файлеshare/gimp/2.0/scripts/script-fu.init как

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

так что вы можете просто запустить этот код, чтобы повторно привязать переменную.Или, может быть, вы могли бы перезагрузить script-fu.init

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top