Чтобы добавить к тому, что сказал Шон, если вы хотите также использовать свою функцию, вы можете использовать each
, который будет применять .q.rnd
к каждому элементу в списке.
q)select .q.rnd each "F"$x from t
x
-----
-3928
5171
5160
-4067
-1781
3018
-7850
5347
-7112
-4116
, но с использованием select "F"$x from t
лучше, поскольку оно векторизовано.
q)\t:1000 select "j"$"F"$x from t
22
q)\t:1000 select .q.rnd each "F"$x from t
33
Также следует отметить, что пространство имен .q не является обязательным и «зарезервировано для использования kx».Многие функции q по умолчанию находятся в пространстве имен .q
, и всегда есть вероятность, что будущие обновления kdb могут добавить .q.rnd
, который имеет другое поведение и нарушит любой код, в котором вы использовали свою функцию.