30 lines
313 B
Plaintext
30 lines
313 B
Plaintext
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
|