在J中使用符号而不是字符串的启发式

时间:2015-02-27 23:12:19

标签: j

虽然使用J的符号(s: ' Abe Bill Chad')而不是字符串数组('Abe','Bill',:'Chad')或字符串列表('Abe';'Bill';'Chad')的真正原因是它是最好的解决方案(大多数)对人或机器有效/方便),何时使用符号的经验法则是什么?

s: {{1}}提到了有效的搜索,排序和比较。“如果您有可能进行搜索,排序或比较,您是否从头开始使用符号?或者,一旦您认识到您的代码正在解决其他选项的限制,您是否只使用符号?还是介于两者之间的细微差别?

1 个答案:

答案 0 :(得分:3)

我的经验是,对于大多数用例,符号(s:)不是必需的,以提供可接受的性能,如果您发现您的程序占用大量的符号,则会使用section on Symbol in J for C Programmers中使用符号的建议。时间匹配字符串。它还警告说:

  

没有办法告诉口译员释放资源   单弦;如果您的符号表很大,这可能是一个问题   动态变化。

出于这个原因,Vocabulary page for Symbol on JWiki建议符号在以下情况下最有用:

  • 重复出现有限数量的字符串
  • 符号集是已知且不变的