使用地圖我有創造Data.Map代碼:我怎麼能在這種情況下
import qualified Data.Map as Map
shift_string :: [Char] -> Int -> [Char]
shift_string s num = (drop num s) ++ (take num s)
ascii :: [Char]
ascii = ['a' .. 'z']
shifted_ascii :: Int -> [Char]
shifted_ascii n = shift_string ascii n
trans_table :: Int -> Map.Map Char Char
trans_table n = Map.fromList(zip ascii $ shifted_ascii n)
的「trans_table」函數返回的地圖,其中一個字符映射到另一個地圖。 我可以創建函數來得到一個字符,並返回基於此地圖另一個問題:
translate_char :: Char -> Int -> Maybe Char
translate_char c n = Map.lookup c $ trans_table n
現在我想「翻譯」在地圖上的每個符號。例如:
encode message key = map translate_char message
此代碼不起作用,因爲translate_function必須只有一個參數。我需要像全局變量一樣來存儲地圖,並在我的地圖功能中查找它的值。但我不知道如何重寫我的代碼。
p.s.我想我可以在我的字符串中爲每個字符添加'key',但我正在尋找常用的解決方案。
什麼是你的編碼功能的關鍵? – Satvik
Hm ...這是'translate_char'函數中的'n'參數。 – demas
然後我提供的答案應該工作得很好。 – Satvik