Je n'ai rien trouvé sur la façon de dépasser une chaîne (enlever les caractères de pointe / de fin) dans HASKELLL, et il n'y a pas de lieu de place pour trouver un tel Qu'est-ce que je vais faire? p> bande code> ou Chomp code> (Corrigez-moi si je me trompe). P>
4 Réponses :
Voici 3 fonctions et 3 fonctions planifiées courantes pour réussir:
stripL :: Char -> String -> String stripL x = dropWhile (==x) stripR :: Char -> String -> String stripR x = reverse . stripL . reverse strip :: Char -> String -> String strip x = stripL x . stripR x chompL :: String -> String chompL = stripL ' ' chompR :: String -> String chompR = stripR ' ' chomp :: String -> String chomp = strip ' '
stripr x = inverse. stripl. Inverser code>
De bonnes définitions, cependant, je dirais que si vous utilisez une chaîne, vous devriez essayer de traiter votre entrée linéairement et que vous ne savourez que des espaces blancheurs à l'avant, à l'aide d'Isspace baissé pour couvrir les onglets, etc., car un décapage à l'arrière d'une liste est inefficace. (Si vous vous dépendez et que vous avez obtenu [], vous êtes à la fin de votre contribution.) D'Ainsi, je n'utiliserais jamais Stripl et que vous trouviez de manière tombée plus facilement flexible. Cela peut être pourquoi ils ont été omis.
Tout d'abord, vous devez utiliser aussi, texte code> (à partir du fichier code> code>) au lieu de chaîne code>, puisque texte code> est beaucoup plus efficace. texte code> a déjà cette fonction: p>
L'approche plus générale consisterait à transmettre un prédicat aux fonctions code> bandes code>, donc on pourrait alors pour le décapage de la fin, un version potentiellement plus efficace utilise capable de produire une sortie sans déplacer toute la liste d'entrée et est efficace s'il n'y a pas de longues épuilles d'éléments satisfaisant le prédicat de l'entrée. P> p> stripl isspace code> E.G. Pour enlever tous les grands espaces blancs. stripl code> serait cependant simplement un alias pour drapeau code>. p> pli "/ code>, p>
regarder Les fonctions que vous recherchez sont, dans l'ordre: Notez qu'il n'y a pas de fonction spécifique pour décapage en fonction de l'égalité des caractères. Vous ne gagnez pas vraiment d'aliasing Data.text code> . Tout ce qui utilise des listes de prélude, tels que String code> S, fonctionne généralement mal, en particulier avec des fonctions telles que stripr code>. Certains considèrent comme une erreur du passé, car elle a infecté beaucoup d'interfaces (sinon sensibles) avec les inefficacités d'utilisation de listes de caractères individuellement liées ( string code>) pour les données textuelles. P>
Dwwwwwhile code>, Dwwwwwileend code>, Drocaround code>, stripstart code> , stripend code>, bande code>. p>
dropx code> avec un prédicat, à moins que ce ne soit un très em> couramment utilisé comme data.char.isspace code>. < / p>
Hackage.hakell.org/ Forfaits / Archives / manquantsH / 1.0.0 / DOC / HTML / ...