如何定义字符串?

时间:2013-10-22 18:00:58

标签: string haskell encryption

我是Haskell的新手希望有人能帮助我。我需要为一串字符(字母)定义一个数据结构,它代表一个替换密码。

2 个答案:

答案 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