14 lines
392 B
Tcl
14 lines
392 B
Tcl
package require Tcl 8.6
|
|
|
|
proc fwd c {
|
|
expr {[string is alpha $c] ? "[fwd [yield f][puts -nonewline $c]]" : $c}
|
|
}
|
|
proc rev c {
|
|
expr {[string is alpha $c] ? "[rev [yield r]][puts -nonewline $c]" : $c}
|
|
}
|
|
coroutine f while 1 {puts -nonewline [fwd [yield r]]}
|
|
coroutine r while 1 {puts -nonewline [rev [yield f]]}
|
|
for {set coro f} {![eof stdin]} {} {
|
|
set coro [$coro [read stdin 1]]
|
|
}
|