如何在APL中计算向量中标量的出现次数

时间:2018-03-12 20:33:26

标签: apl

例如,我有一个向量'H2DH2DH',有没有办法计算出现的'H'标量的数量?

2 个答案:

答案 0 :(得分:1)

我认为你的意思是你有字符向量'H2DH2DH',并且想要计算那里有多少个标量'H'字符。

'H'='H2DH2DH将为您提供一个布尔向量,指示所需字符的位置。 +/'H'='H2DH2DH'会对此进行总结,然后给你计算。

Play with it on TryAPL!

您还可以定义一个通用函数,它将标量作为左参数,将矢量作为右参数,并计算向量中标量的出现次数。

一些APL系统(例如Dyalog,GNU和ngn)将允许您编写CountIn←{+/⍺=⍵},其中代表左参数,代表右参数。 Try it online!剩下的系统(例如APLX,APL + WIN和APL2)会让您输入:

∇ count←char CountIn text
  count←+/char=text
∇

Try it online!

答案 1 :(得分:0)

或者,如果您愿意,可以使用内部产品来计算事件:

'H'+.='H2DH2DH'

(多年前,在其他实现方面,+/'H'='H2DH2DH'可能会稍快一点,也许这仍然是正确的)