Похоже, что в вашей функции вы пытаетесь заменить строковые значения 100 целочисленными значениями 0. Вы обнаружите, что это будет трудно, потому что если ваш начальный список представляет собой список строк, kdb не позволит вам просто изменитьнекоторые значения другого типа.
q)l:("a";"b";"c")
q)l[0]:1
'type
[0] l[0]:1
^
q)l[0]:"d"
q)l
"dbc"
Также "i"$"0"
преобразует строку в целочисленный тип, тогда как "I"$"0"
будет анализировать текст внутри "0" в целочисленное значение.На самом деле это означает, что "i"$"0"
станет 48i, так как «0» равно 48 в ASCII вместо 0.
Если после того, как вы получите ошибку типа и попадете в режим отладки (обозначается несколькими скобками на qподсказка) вы можете использовать функции .z.ex
и .z.ey
для просмотра сбойной функции и аргументов, которые могут упростить отладку