处理单字符字符串 - 在函数中还是在其调用者中? ssr()

Handling single-character strings - in a function or in its caller? ssr()

q 中使用字符串的常用方法是什么,在某种程度上,谁负责处理单字符字符串:函数本身还是运行它的用户?

例如:

$ q
KDB+ 3.6 2019.04.02 Copyright (C) 1993-2019 Kx Systems
m32
q)ssr["bar";"r";"z"] /looks good at a first glance
"baz"
q)ssr["bar";"?";"z"] /but wait, nothing happens here
"bar"
q)ssr["bar";(),"?";"z"] /convert 1-char to list: ok
"zzz"

查看发送单个字母 (r) 与发送问号 (?) 的区别。仅仅发送一个字符 ? 本身并没有做任何有用的事情。

它是ssr特征吗?单字符的一般情况是什么 sending/receiving - 在大多数情况下谁应该负责处理原子与列表?

更新: 感谢@terrylynch 指出 ss/ssr:

的这个特性
q)ssr["bar?";"?";"z"]
"barz"

它是 ss 的一个特性,这又使它成为 ssr 的一个特性,因为 ssr 使用 ss。见 "supports some of the pattern-matching capabilities of like" 评论:https://code.kx.com/q/ref/ss/

看起来它检查了特殊(与正则表达式相关的)字符的查找 char/string - 如果它是单个字符,则将其视为字符,如果它是字符串类型,则将其视为正则表达式模式。