2016-12-15 5 views
3

단어 배열로 분할하려는 단일 문자열 (텍스트 단락을 읽은 결과)이 있습니다. 나는 모든 공간에서 끈을 쪼개고있다. 이것은 간단해야하지만 나는 이것을 달성하는 방법을 찾을 수없는 것처럼 보입니다.APL/APLX - 문자열 분할

내가 APLX를 사용하고 있다는 점에 유의할 가치가 있으므로 Ruby 함수를 가져올 수있는 옵션이 있지만 APL을 사용하는 것이 좋습니다.

답변

5

여러 가지 방법으로 해결할 수 있습니다. ,

∇ 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

감사합니다 :

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

내가 그렇게 더 "전통적인"스타일이 될 것이라고 APLX이 dfns이 있는지 확실하지 않다 : 대부분의 자주 Dyalog APL에서 다음 DFN을 사용 APLX 정의에서 쉼표 연산자는 무엇을합니까? GNU APL을 사용한 나의 실험에서'R ← (~ Rεa) ⊂R'을 쓰는 것으로 충분할 것 같다. –

+0

물어봐 줘서 고마워! 그것은 "penclose"또는 "penclose'x"를 호출했을 때의 RANK ERROR에 대한 안전 대책으로 그럴 듯하지만, penclose bool/string의 결과로 그럴 가능성이 높습니다. 그러나 dfn은 안전했지만 전통적인 스타일로의 번역은 제대로 처리되지 않았습니다. 나는 지금 그것을 고쳤다. – MBaas