Well, you could simplify your version using on
and fmap
:
import Data.Function (on)
stringXor :: String -> String -> String
stringXor = zipWith (fmap chr . xor) `on` map ord
also fmap chr .
could be (chr.) .
but I find the first one more convenient to type.
EDIT
You can even simplify it to:
stringXor = zipWith (fmap chr . xor `on` ord)
and now we've eliminated the two map
s.