rle: if not dup: drop return [] swap ] local :source chars pop-from source 1 for c in source: if = c over: ++ else: 1 c & & return [ rld: ) for pair in swap: repeat &< pair: &> pair concat( rle "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW" !. dup !. rld