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