String 如何定义字符串?

String 如何定义字符串?,string,haskell,encryption,String,Haskell,Encryption,我是哈斯克尔的新手,希望有人能帮助我。我需要为表示替换密码的字符串(字母表)定义一个数据结构。字符的列表如何 Prelude> let alphabet = ['a'..'z'] Prelude> alphabet "abcdefghijklmnopqrstuvwxyz" 因为这是为了表示取代基密码 type Cypher = [(Char, Char)] makeCypher :: String -> Cypher makeCypher s = zip ['a'

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

字符的
列表如何

Prelude> let alphabet = ['a'..'z']
Prelude> alphabet
"abcdefghijklmnopqrstuvwxyz"

因为这是为了表示取代基密码

 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
和类似的方法。

到目前为止您尝试了什么?还有,字符列表,也称为
字符串