Функция
A k
может быть определена в лямбде с помощью метода, который выложил Терри, или вообще, вызывая определение через value
, например, так:
q)mins
&\
q)foo:{[x] value "k)minner:&\\";minner x}
q)foo 1 2 3
1 1 1
Фактически вы можете легкосоздать аккуратную маленькую функцию для создания k
функций
q)makeK:{[x;y]value "k)",string[x],"::",string[y]}
q)makeK[`minfoo;&\]
q)minfoo
&\
q)minfoo 1 2 3
1 1 1
Eoins answer - это более удобный способ вызова функциональности k
примитивов. Как правило, перенос примитивов в круглых скобках вызовет функциональность k
q)dict:`a`b`c!(1 2 3;1 2 3;1 2 3)
q)flip dict
a b c
-----
1 1 1
2 2 2
3 3 3
q)(+:) dict
a b c
-----
1 1 1
2 2 2
3 3 3
q)(+:)~flip
1b