How do I cast a string to a symbol?
By applying the $ (cast) operator while passing ` (the null symbol) as its left argument:
q)` $ “foo” `foo q)
The cast operator also accepts an uppercase type character as its left argument:
q)”S” $ “foo” `foo q)
Moreover, you can convert a list of strings at once:
q)”S” $ (“foo”; “bar”; “baz”) `foo`bar`baz q)
To go the other way, use the string function:
q)string `foo “foo” q)
Since the string function is implemented as the monadic form (i.e., single argument overload) of the k function $ —
q)string $: q)
— it is also possible to write the above cast as follows:
q)($)`foo “foo” q)
Although we don’t recommend it, we thought you should know in case you see it in the wild.
See also: type