In Kona (диалект K с открытым исходным кодом):
Сначала установите несколько примеров значений (используя то же, что и в решении Clojure):
a:1+!8;b:8#0 / a is 1..8, b is eight 0s
Тогда:
{(|/x;&/x)}@+{4#y _ x}[a+b;]'!#a
Где a и b - ваши переменные x и y выше.(K делает специальный случай для переменных x, y и z.)
Чтобы разбить это немного подробнее:
maxmin:{(|/x;&/x)} / (max;min) pairs of x
get4:{4#y _ x} / next 4 from x, starting at y
/ with <4 remaining, will repeat; doesn't matter for min or max
/ maxmin applied to flipped results of get4(a-b) at each index 0..(length a)-1
maxmin@+get4[a-b;]'!#a
/ result
(4 5 6 7 8 8 8 8
1 2 3 4 5 6 7 8)