Когда необходимо расширение КАЖДОГО оператора в 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)

Другие вопросы по тегам