-2

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

4

2 回答 2

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可以与上述几乎相同的使用,替代zipfromList类似。

于 2013-10-22T18:26:04.410 回答
1

一个怎么ListChar

Prelude> let alphabet = ['a'..'z']
Prelude> alphabet
"abcdefghijklmnopqrstuvwxyz"
于 2013-10-22T18:05:37.253 回答