How about {⊃,/(¯1+↑⍴⍺)↓¨(~⍺⍷⍵)⊂⍵←⍺,⍵} It doesn't rely on ⎕IO setting.
-k On 14 March 2017 at 15: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