我是 Haskell 的新手,希望有人能帮助我。我需要为代表替换密码的字符串(字母)定义数据结构。
问问题
225 次
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
可以与上述几乎相同的使用,替代zip
和fromList
类似。
于 2013-10-22T18:26:04.410 回答
1
一个怎么List
样Char
Prelude> let alphabet = ['a'..'z']
Prelude> alphabet
"abcdefghijklmnopqrstuvwxyz"
于 2013-10-22T18:05:37.253 回答