2010-03-21 6 views
1

Я разочарован преобразованием строк в число и число-строка в сценариях GIMP. Я запускаю GIMP 2.6.8 в Windows Vista.number-> строка и связанные процедуры в сценарии схемы GIMP

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

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

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

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

> (number->string 3) 

Error: eval: unbound variable: number->string

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

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

"frustrated"

Итак,

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

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

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

ответ

4

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

My TinyScheme в GIMP 2.6.8 на OS X исполняет number-> string просто отлично.

number-> строка определяется в доли/каркасная/2.0/скрипты/скрипт-fu.init в

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

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

+1

Это привело меня прямо к нему, спасибо! Я думал, что несвязанная установка MSYS угнала мою переменную HOME, поэтому последние обновления или переустановки GIMP имели ошибочные пути. Я не считал, что number-> string может быть скриптом, созданным из других примитивных процедур. Еще раз спасибо! –