我已经将以下函数写入xor
两个字符串,但觉得应该可以更简单地编写:
import Data.Bits (xor)
import Data.Char (ord, chr)
-- xors strings of equal length
stringXor :: String -> String -> String
stringXor s t = map chr $ zipWith xor (f s) (f t) where
f = map ord
似乎您至少应该不能拥有第一个map
,但我无法使用该组合chr . xor
进行压缩。
是否存在一些有用的身份/公式涉及zipWith
和map
?
我是Haskell的新手,所以如果有一个没有太多无点魔法的简化,很高兴看到:)