我是Haskell的新手希望有人能帮助我。我需要为一串字符(字母)定义一个数据结构,它代表一个替换密码。
答案 0 :(得分:2)
因为这是为了代表一个替代密码
type Cypher = [(Char, Char)]
makeCypher :: String -> Cypher
makeCypher s = zip ['a' .. 'z'] s
这里你只是传递一个代表每个新字母的字符串,所以“f ..”会将a映射到f。它返回一对[('a', 'f')...]
对的列表。
然后使用它,
import Data.Maybe
encrypt :: Cypher -> String -> String
encrypt cyph = mapMaybe (flip lookup cyph)
只查找对列表中的每个字符。
另一种选择是使用Data.Map
,它可以与上面几乎完全相同,用zip
代替fromList
和类似的。
答案 1 :(得分:1)
List
<{1}}的{{1}}怎么样?
Char