How about
{⊃,/(¯1+↑⍴⍺)↓¨(~⍺⍷⍵)⊂⍵←⍺,⍵}
It doesn't rely on ⎕IO setting.
-k
On 14 March 2017 at 15:20, Elias Mårtenson <[email protected]> wrote:
> In a discussion on the #lisp IRC channel recently, someone wanted to remove
> a certain substring from a larger string. In Lisp, the solution is to simply
> use cl-ppcre and remove by regex.
>
> But, I started thinking about how to do this in APL, and this is what I came
> up with:
>
> RemoveSubstrings ← {,/ ⍵ ⊂⍨ ↑~∨/ (-⍳⍴⍺) °.⌽ ⊂⍺⍷⍵}
>
> Is this a good way of solving the problem? I realise that I have a bug when
> the resulting string is empty:
>
> "foo" RemoveSubstrings "foo"
> DOMAIN ERROR
> λ1[1] λ←,/⍵⊂⍨↑∼∨/(-⍳⍴⍺)°.⌽⊂⍺⋸⍵
> ^ ^
>
> Does anyone have a better solution?
>
> Regards,
> Elias