kdb - 如何将十六进制颜色代码生成为字符串或符号

kdb - how generate HEX colour code as string or symbol

我想在内存中创建一个列 table 以根据人名(另一列)生成颜色 HEX 代码。快速 google 没有给出太多所以想知道是否可以在这里给出任何指示。 例如

update colour: <some code and use username col as input> from table

在 kdb+ 中,您可以通过 update 语句 运行 列上的函数,但根据函数是否矢量化,存在细微差别。如果矢量化:

update colour:{<some code>}[username] from table
update colour:someFunction[username] from table

如果未向量化,则需要像 each ' 这样的迭代器

update colour:{<some code>}'[username] from table
update colour:someFunction'[username] from table

此函数将从字符串的前 3 个字符生成十六进制代码。

q)hex:{a:i-16*j:(i:`int#x)div 16;"0123456789ABCDEF"raze(j-16*j div 16),'a}
q)hex"Hello"
"48656C"
q)update colour:hex'[username] from table