It's a nice idea, but the run-length example is kind-of-misguided, even though that's how everyone would implement it on first try. A language should push you towards a more robust/faster/simpler solution by making it the simple, elegant thing to do. In K, a run length encoder would be something like: {(x@&~m),'(+/m)@&~m:~':x} Which looks like line noise, but basically encodes the following operations: x is the input…
As intriguing as it looks, I certainly wouldn't want to look at that kind of code all they long.
There's a learning curve; it's steep, but it is well worth it - much like Math notation (give me "x^n" any day over "repeat multiplying x by itself n times") or Music notation, once you're used to it, any notation that is less concise seems arbitrarily and needlessly verbose.
(That's actually a reason not to learn K / APL: When you actually grok it, it's hard to take modern software engineering seriously. A reason to grok them is that -- for some problems -- you're going to become much more productive).