Пустые глаголы в J - PullRequest
       44

Пустые глаголы в J

2 голосов
/ 19 июля 2010

Я изучаю, как использовать J с помощью онлайн-чтения и снова выполнять некоторые старые Java-задания, используя этот язык, и хотел бы знать, как создать глагол, который не принимает никаких операндов, или не возвращает никакого результата.Причина в том, что я хотел бы позволить себе возможность вводить глагол, давайте назовем его go, который будет запускать последовательность кода самостоятельно и сохранять любые данные, которые он будет производить при выполнении, но ничего не отображать привсе.Общая цель этого состоит в том, чтобы в конечном итоге иметь возможность воспроизвести мой класс и интерфейс торгового автомата, для которого требуется как минимум метод void returnChange().

Ответы [ 2 ]

4 голосов
/ 20 июля 2010

Вызов глагола J всегда выполняется по крайней мере с правильным аргументом. Отправьте что-нибудь монадическому глаголу, который полностью игнорирует правильный аргумент (скажем, 0 или '').

Функции всегда что-то возвращают, но использование i.0 или '' минимизирует возвращаемые данные.

go =: 3 : 0
    NB. do stuff
    i. 0
)

go ''
1 голос
/ 26 августа 2010

MPelletier правильно, что глаголам J всегда требуется правильный аргумент для получения результата, и что при выполнении они обязательно приводят к результату.Ситуация аналогична для наречий и союзов.Ничто в J не похоже на метод, который возвращает void.

В примере, представленном MPelletier, используется ключевое слово return.В этом контексте ключевое слово не имеет никакого эффекта.Здесь предлагается модифицированная версия этой программы:

go =: 3 : 0
  NB. do stuff
  i. 0 0
)

Видимая разница между этой программой и программой, опубликованной MPelletier, заключается в том, что при выполнении в консоли она не выдает пустую строку до следующейнезамедлительный.(Любой результат с нулем в позиции _2 от его формы имеет этот эффект.)

...