Я хотел бы изучить лучший способ применения бинарной функции, которая выполняет итерацию по каждому элементу двух аргументов.Давайте упростим вопрос, используя приведенную ниже функцию в качестве примера:
func:{x+y}
a:til 10
q)a
0 1 2 3 4 5 6 7 8 9
b:a
q)b:a
q)b
0 1 2 3 4 5 6 7 8 9
Что я получу, так это перекрестное производство, так что каждый элемент аргумента будет пересекать друг друга и применять функцию.Мой ожидаемый результат -
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 2 3 4 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 11 124 5 6 7 8 9 10 11 12 13 5 6 7 8 9 10 11 12 13 14 6 7 8 9 10 11 12 13 14 15 7 8 9 10 11 12 13 14 15 16 8 9 10 11 12 13 14 15 16 179 10 11 12 13 14 15 16 17 18
Мое текущее решение сначала пересекает список аргументов:
(func/) each (a cross b)
Интересно, есть ли лучший способ сделать это?простое использование func'[a;b]
приведет к парному результату, а не к тому, что я хочу.