This is a bit simpler and fixes the empty result problem, and returns a
non-enclosed result:

RemoveSubstrings ← {⍵/⍨ ~⊃∨/ (-⍳⍴⍺) ∘.⌽ ⊂⍺⍷⍵}

Like your solution this only works with ⎕IO←0.

On 14 March 2017 at 14:20, Elias Mårtenson <loke...@gmail.com> 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
>

Reply via email to