! Actually I came up with this and just came here to post it again. Very similar to Jon's but I guess because this generates "virtual" sequences that it is faster because it avoids allocation. USE: grouping : .cut ( str n -- ) [ . ] each ;