【发布时间】:2018-04-16 20:22:39
【问题描述】:
例如我有一个向量'H2DH2DH',有没有办法计算出现的'H' 标量的数量?
【问题讨论】:
-
@ShawnC。为什么要删除标签?
标签: apl
例如我有一个向量'H2DH2DH',有没有办法计算出现的'H' 标量的数量?
【问题讨论】:
标签: apl
我假设您的意思是您有字符向量 'H2DH2DH' 并想计算其中有多少标量 'H' 字符。
'H'='H2DH2DH 将为您提供一个布尔向量,指示所需字符的位置。 +/'H'='H2DH2DH' 会将其相加,然后给您计数。
您还可以定义一个通用函数,它将标量作为左参数,将向量作为右参数,并计算向量中标量的出现次数。
某些 APL 系统(例如 Dyalog、GNU 和 ngn)允许您编写 CountIn←{+/⍺=⍵},其中 ⍺ 代表左参数,⍵ 代表右参数。 Try it online! 其余系统(例如 APLX、APL+WIN 和 APL2)将让您键入:
∇ count←char CountIn text
count←+/char=text
∇
【讨论】:
或者,如果您愿意,可以使用内积计算出现次数:
'H'+.='H2DH2DH'
(几年前,在其他实现上,+/'H'='H2DH2DH' 可能稍微快一点,也许这仍然是真的)
【讨论】: