Допустим, у меня есть следующее J-выражение:
# 3 ((|=0:)#]) 1+i.1000
Это подсчитывает количество чисел от 1 до 1000, которые делятся на 3 и не математика.)
Допустим, для этого я определил монадическую функцию следующим образом:
f =: monad define
# y ((|=0:)#]) 1+i.1000
)
Это прекрасно работает с одним аргументом, например,
f 4
250
Если я передаю список, я получаю ошибку длины:
f 1 2 3
|length error: f
Теперь я полностью понимаю, почему я получаю ошибку длины. При замене списка 1 2 3
аргументом монады y
вы получите:
# 1 2 3 ((|=0:)#]) 1+i.1000
Если вы знаете что-нибудь о J, вполне понятно, почему возникает ошибка длины. Поэтому мне не нужно объяснение этого.
Я хочу определить функцию так, чтобы при передаче списка она возвращала список, например,
f 1 2 3
1000 500 333
Как я могу (а) переопределить эту функцию, чтобы взять список и вернуть список, или (б) заставить функцию работать со списком, как есть, без переопределения, возможно, с использованием некоторого наречия или другого метода? *