I crafted this compact solution to Dijkstra’s OddWordProblem:
from sys import stdin, stdout def even(char) : stdout.write(char); return select(even, 0, ""); def odd(char) : q = select(odd, 0, ""); stdout.write(char); return q def select(fn, skipspace, prefix) : char = stdin.read(1) if char.isspace() and skipspace : return select(fn, 1, prefix) elif char.isspace() : return 0 elif char.isalpha() : stdout.write(prefix); return fn(char) elif char == "." : return 1 else : raise "Invalid input" if not select(even, 1, "") : while not select(odd, 1, " ") and not select(even, 1, " ") : pass stdout.write(".")