Когда необходимо расширение КАЖДОГО оператора в K, кроме mod/rotate?
В языке K к оператору можно добавить апостроф, чтобы применить его к каждому элементу в массиве:
8 +' 2 4 10
10 12 18
9 <' 3 10 2
0 1 0
8 -' 1 7 10
7 1 -2
Однако в каждом из этих случаев апостроф не требуется, потому что эти двоичные глаголы естественным образом применяются по всему массиву:
8 + 2 4 10
10 12 18
9 < 3 10 2
0 1 0
8 - 1 7 10
7 1 -2
Единственное место, где я еще видел разницу, это !
глагол, который применяет операцию по модулю для каждого элемента массива, когда украшен '
но действует как поворот, когда не оформлен:
3 !' 1 2 3 4 5
0 1 0 3 3
3 ! 1 2 3 4 5
4 5 1 2 3
Есть ли в K другие места, где украшенная (апостроф-d) версия глагола отличается от неокрашенного падежа? (Я новичок в K, так что, скорее всего, я пропускаю такие случаи!)
2 ответа
Множество мест, особенно когда вы начинаете заниматься своими собственными функциями:
{"go",x} ("";"ing";"ne")
"g"
"o"
""
"ing"
"ne"
{"go",x}' ("";"ing";"ne")
"go"
"going"
"gone"
(вы можете написать это как ,["go"]'
)
Мое личное любимое использование каждого из них для смешивания:
1 2 3 ,' 4 5 6
(1 4;2 5;3 6)