"Run with GNU Smalltalk: gst rot13.st -aQ []" "This method should work for any Smalltalk in any case" !Character methodsFor: 'ruling the universe'! rot13 ((self >= $a) & (self < $n)) | ((self >= $A) & (self < $N)) ifTrue: [ ^ (self asInteger + 13) asCharacter ]. ((self > $m) & (self <= $z)) | ((self > $M) & (self <= $Z)) ifTrue: [ ^ (self asInteger - 13) asCharacter ]. ^ self ! ! (Smalltalk arguments size > 0) ifTrue: [ (FileStream open: (Smalltalk arguments at: 1) mode: #read) do: [:x | stdout << (x rot13) ]] ifFalse: [ stdin do: [:x | stdout << (x rot13) ]]!