2014-11-12 2 views
0

Простое умножение в моем скрипте-fu. Приведенный ниже кодscript-fu multiplication: not enought аргумент

(print "hello") 
    (print (/ 4 3)) 
    (print (* 3 4)) 
    (print "world") 

Дает:

 "hello" 
    1,333333333.0 
    Error: (: 1) not enough arguments 

Любая идея?

Благодаря

+0

Я использую Gimp 2.6 на Ubuntu 14.04 – Patrice

+0

Patrice, я использую gimp 2.8.14-1 + b1 на Debian, и я проверил ваш код в консоли 'script-fu'. Нет проблем. Если бы я был вами, я бы попытался выяснить, была ли ваша проблема обнаружена в трекере ошибок вашего дистрибутива. – gboffi

+1

Эти statemetns просты и недвусмысленны - эта ошибка может быть поднята с помощью «print», если отсутствует ana rguemt - так что, возможно, что здесь вставлено то, что вы печатаете. Вы просто печатаете их в терминале сценария-fuy или помещаете подобные инструкции в полный скрипт? Если да, пожалуйста, закройте этот вопрос и поместите свой реальный код в новый. – jsbueno

ответ

1

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

В этом случае существовал оператор '(let * (...)), который использовался для инициализации некоторых переменных. Оригинальный автор сценария написал '(let * (...))' - с пробелом между let и star - что означает, что каждый вектор в выражении 'let' становится ожидаемым аргументом для оператора '*'.

Подробнее: http://docs.racket-lang.org/reference/let.html

Пожалуйста, простите (и правильно, если это необходимо), некорректная номенклатура в отношении схемы. Я только что был разоблачен.

+0

Это выглядит как моя проблема. .. спасибо за обмен. – Patrice

+0

Отлично! Я думаю, решение может быть упрощено до того, что «* было переопределено где-то», и, скорее всего, это опечатка на «let *». – pleasemorebacon