2016-12-15 55 views
3

我有一个字符串(从一段文本中读取的结果),我想分割成一个单词数组。我会在每个空间分割字符串。这似乎应该是简单的,但我似乎无法找到一种方法来实现这一点。APL/APLX - 分割一个字符串

值得注意的是我使用APLX,所以我可以选择导入一个Ruby函数,但是我更愿意使用APL。

回答

5

有很多不同的方法来解决这个问题。大多数情况下我用下面的DFN在Dyalog APL

penclose←{⎕ML←3 ⋄ ⍺←↑,⍵ ⋄ (~⍵∊⍺)⊂,⍵ } ⍝ separator as ⍺ or ⍵[1] 

我不知道APLX是否有DFN和,所以更“传统”的风格将是:

∇ R←penclose R;a 
    ⍝ Partitioned enclose of text vector with separator in R[1] 
    ⍝ ⎕ML←3 ⍝ Dyalog-specific to make ⊂ APL2-compatible... 
a←1↑R ⋄ R←(~R∊a)⊂R 
∇ 
+0

这工作精美,谢谢 – wptreanor

+0

在你的APLX定义中,逗号操作符是干什么的?在我使用GNU APL的实验中,似乎只需执行R←(〜Rεa)⊂R' –

+0

感谢您的询问!它的目的是作为针对RANK错误的安全措施,因为调用'penclose''或'penclose'x''这是不合理的,但更可能是因为'penclose bool/string' - 但虽然dfn是安全的,但我对传统风格的翻译没有妥善处理。我现在修好了。 – MBaas