2017-10-15 82 views
0

我做了一個加密練習,我需要填充輸入文本的長度爲16個字節(AES)的倍數,並且我發現在python中我可以創建一個空字符串空間)與:填充空字符串到文本

'' * N#無論整數n是

是否有哈斯克爾等效的方法?我可以用簡單的函數使用遞歸來做到這一點,但只是好奇的是有一種方法比python剪輯更短。

回答

2

由於字符串的字符的列表,你可以使用:

replicate :: Int -> a -> [a] 

例如:

replicate 5 'x' == "xxxxx" 

您可以通過搜索與Hoogle一個合理的類型簽名找到這樣自己的效用函數; replicate恰好是Hoogle search for Int -> a -> [a]中的第一個結果。

如果您使用Text代替String,存在Data.Text等效功能:

replicate :: Int -> Text -> Text 

replicate 5 (pack "x") == pack "xxxxx"