2016-12-15 4 views
3

私は単語の配列に分割したい単一の文字列(テキストの段落を読み込んだ結果)を持っています。私はすべてのスペースに文字列を分割します。これは単純なはずだが、これを達成する方法を見つけることができないようだ。APL/APLX - 文字列の分割

私はAPLXを使用していることに注意する価値があるので、Ruby関数をインポートするオプションがありますが、APLに固執するのはむしろそうです。

答えて

5

これにはさまざまな方法があります。私はより多くの「伝統的」なスタイルは次のようになり、APLXはDFNSを持っているかどうかわからないんだけど

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

:ほとんどの場合、私はDyalog APLで、次の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

おかげでありがとう!これは、 'penclose'''または' penclose'x''を妥当性はないが 'penclose bool/string'の結果として呼び出す結果、RANK ERRORに対する安全対策として意図されていました。しかし、dfnは安全ですが、私の伝統的なスタイルへの翻訳はそれを適切に処理しませんでした。私は今それを修正しました。 – MBaas