【发布时间】:2020-05-29 23:44:06
【问题描述】:
我几周前才开始学习 APL,所以这听起来像是一个新手问题。
让B 是一个字符串,在APL 术语中它可以是一个标量或一个向量。如果是标量,⍴B 返回 null 而不是我想要的字符串长度。
B←'QR'
⍴B ⍝ returns 2
B←'Q'
⍴B ⍝ returns null
我发现了一种解决方法:
⍴1↓'X',B ⍝ concatenating X and then removing it returns a value of 1
这行得通,但它似乎有点做作,所以我想知道是否有更标准的方法来查找字符串长度。
是我自己还是这看起来有点不一致?我阅读的教程说将标量视为类似于向量代数中的点。但是,如何将标量连接到标量生成向量,但从向量中删除标量永远不会生成标量?
我真的很喜欢 APL,所以这个问题并不意味着批评。我的问题是,找到字符串长度的最佳方法是什么?而且,如果有人能对这种看似不一致的情况有所了解,我们将不胜感激。
【问题讨论】:
-
我不确定我的理解是否正确。 ⍴,B 显示字符数。
-
@CrazyMetal - 如果有超过 1 个,那就是真的,但如果你分配
B←'A',它被认为是一个标量,⍴B返回 null。如果你使用我上面的小技巧,它会返回 1。 -
我写了
⍴,B。在我看来,这是查找字符串长度的标准方法。 -
酷!这很好用。我想我忽略了逗号。
标签: apl