Вот функция для вычисления цифровой суммы ряда в J:Установка ранга определяемого пользователем глагола J
digitalSum =: +/@:("."0)@":
Если я использую b.
запросить ранг этого глагола, я получаю _ 1 _
, т. е. бесконечно. (Мы можем игнорировать диадический случай, поскольку digitalSum
не является диадическим.)
Я хотел бы, чтобы монадический ранг этого глагола был равен 0, о чем сообщается b.
. Единственный способ, которым я знаю, чтобы сделать это, чтобы использовать «прокладку», например,
ds =: +/@:("."0)@": digitalSum =: ds"0
Это прекрасно работает, но я хочу знать, является ли это единственным способом сделать это, или если есть что-то еще, что я Нет.
Разъяснение
Я только что узнал, как изменить ранг глагола, который определен таким образом:
digits =: 3 : 0 "0 "."[email protected]": y )
Обратите внимание на "0
после объявляющего 3 : 0
. Вы можете наложить любое наречие или соединение, которое вы пожелаете, и оно будет применено к глаголу в целом. Довольно классный материал!
Еще раз, я, возможно, ответил на мой собственный вопрос: 'digitalSum = (" "+/@ :(0) @" :)" 0' Однако, возможно, есть еще один способ, так что я оставим вопрос открытым. –