Перегрузка оператора в функциональной редакции - PullRequest
0 голосов
/ 21 мая 2018

Как перегрузить оператор в функциональном изменении?

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

с использованием функционального изменения с помощью , дает

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

Я хочу перегрузить , (добавить) впрефикс содержимого списка b к списку a как:

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

1 Ответ

0 голосов
/ 21 мая 2018

Вам нужно использовать пользовательскую функцию {y,x} вместо, если ,, чтобы достичь этого

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

Обратите внимание, что здесь , является двоичной функцией;Любая другая двоичная функция, например, {y,x}, может использоваться в функциональном дополнении с valance 4.

Общий формат функционального исправления следующий, где f - двоичная функция

 @[L;I;f;y]

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

и когда f является монадической функцией

 @[L;I;f]

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