2013-10-22 25 views
-2

對Haskell來說新的希望有人會幫助我。我需要爲一串字符(字母)定義一個數據結構,這將代表一個替代密碼。如何在haskell中定義字符串

+2

你到目前爲止嘗試過什麼?另外,怎麼樣的字符,也被稱爲'字符串' – bheklilr

回答

1

怎麼樣的ListChar

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

因爲這是代表一個暗號substituition

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類似。