2017-10-15 6 views
0

Je fais un exercice de cryptage que j'ai besoin de tamponner un texte d'entrée pour avoir une longueur de multiple de 16 octets (AES), et je trouve qu'en python je peux créer un vide (ie espace) avec:Rembourrage d'une chaîne vide au texte

'' * n # tout entier n est

est-il un moyen équivalent en haskell? Je peux le faire avec une simple fonction en utilisant la récursivité, mais juste curieux est-il un moyen qui est encore plus court que le snip python.

Répondre

2

Puisque les chaînes sont des listes de caractères, vous pouvez utiliser:

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

Par exemple:

replicate 5 'x' == "xxxxx" 

Vous pouvez trouver des fonctions utilitaires comme vous-même en recherchant une signature de type plausible avec Hoogle; replicate arrive à être le premier résultat dans un Hoogle search for Int -> a -> [a].

Si vous utilisez Text au lieu de String, il y a une fonction équivalente à Data.Text:

replicate :: Int -> Text -> Text 

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