优化一个函数,将字符串的每个字符转换为q kdb中的一个符号

Optimize a function to convert each character of a string to a symbol in q kdb

我必须编写一个函数,它将整数作为输入参数,return 一个按字母顺序排列的符号列表用于这么多符号。

例如。比如说,如果函数的输入是 4,那么输出应该是 abcd。 P.S如果输入是27那么输出可以是a-z然后重复a.

我想到的解决办法是:

q)f:{(`$(x;0N)#x#.Q.a)}
q)f 4
`a`b`c`d
q)f 5
`a`b`c`d`e

有人可以向我推荐一个 better/optimized 解决方案吗?
另外,有没有更好的方法将字符串转换为

以外的符号列表
{(`$(x;0N)#x#.Q.a)}

您可以尝试以下一种:

{`$/:x#.Q.a}

其中向符号 `$ 的转换应用于右侧的每个元素。

我想下面应该是你想要的:

q) {`$'x#.Q.a}5
`a`b`c`d`e

如果您打算将此函数用于 list/vector 个整数,那么这种准向量化方法应该比函数 each 更快:

q){x#\:`$'.Q.a}5 1 10 28
`a`b`c`d`e
,`a
`a`b`c`d`e`f`g`h`i`j
`a`b`c`d`e`f`g`h`i`j`k`l`m`n`o`p`q`r`s`t`u`v`w`x`y`z`a`b