在功能修改中重载操作符

时间:2018-05-21 20:48:14

标签: kdb

如何在功能修改中重载操作符?

s:string (`a1`b2`c3)
b:string til 2

使用功能修改,给出

q)@[s;0 2;,;b]
("a10";"b2";"c31")

我想重载,(追加)以将列表b的内容添加到列表a之前,如:

("0a1";"b2";"1c3")

1 个答案:

答案 0 :(得分:2)

如果{y,x}实现此目的,您需要使用自定义函数,

@[s;0 2;{y,x};b]
("0a1";"b2";"1c3")

请注意,此处,是一个二元函数;任何其他二元函数,例如{y,x}可用于valance 4的功能修正。

functional amend的一般格式如下,其中f是二元函数

 @[L;I;f;y]

q)@[1 2 3 4 ;1 3;*;5 ]   // * is dyadic function {x*y} 
1j, 10j, 3j, 20j

f是monadic函数时

 @[L;I;f]

q)@[1 2 3 4 ;1 3;neg ]
1j, -2j, 3j, -4j