На простом английском языке, я бы это объяснить, как: изменить таблицу т на всех() индексов, применяя функцию Append/запятая со значением р.
Сначала рассмотрим несколько простых случаев @:
q)l:3 5 7 9
q)l:1.1 2.2 3.3
q)@[l; 0 2; +; 10]
11.1 2.2 13.3
q)d:`p`o`i!4.4 5.5 6.6
q)@[d; `p`i; -; 10]
p| -5.6
o| 5.5
i| -3.4
Как вы можете увидеть формат является @ [структура данных; индексы; функция; y-arg]
означает, что dataStructure при индексах применяет функцию с заданными y-аргументами. Обратите внимание, что для списка l индексы 0 2 означают индекс как 0, так и 2 на самом верхнем уровне. Невозможно использовать @ для индексации по глубине. например заданная матрица m: (1 2 3; 4 5 6; 7 8 9), как мы можем использовать этот формат для изменения только значений 4 и 6?
q)/ @ indexes repeatedly at topmost level
q)/ definitely not what we want
q)@[m;(1;0 2);+;100]
101 102 103
104 105 106
107 108 109
q)/ **. indexes into the data structure**
q).[m;1 2;+;100]
1 2 3
4 5 106
7 8 9
q).[m;(1;0 2);+;100]
1 2 3
104 5 106
7 8 9
Наконец пустой список() короткий способ сказать, применимы ко всем показателям:
q).[m;();+;100]
101 102 103
104 105 106
107 108 109
перечитываю ссылку code.cx.com, я не вижу, каким образом. могут применяться к t и r. Второе использование в справочной странице code.cx упоминает функции переменной валентности, но я не вижу, какая функция может быть. И какой смысл использовать пустой список '()'? –
Вы должны следовать ссылке «Функциональные формы изменения» в разделе «См. Также» в ссылке для «.». – pamphlet