Nouveau à Haskell:Haskell | Problèmes avec les chars tournants et Int à la ficelle.
Salut ne semble pas comprendre cela.
Ce que je suis en train de faire est de prendre une chaîne, mettez-le dans un [Int] (avec carte ord)
Modifier quelques chiffres qui REMPLIT quelque chose (dans ce cas x mod
3 == 0). Par la suite je voudrais retourner les nombres inchangés à char, et a changé les numéros de nombres fixes. Combinez cela dans une chaîne à nouveau ..
Ceci est mon problème:
*Main> fromStringToList "hihello"
[104,105,104,101,108,108,111]
*Main> changeB3 [104,105,104,101,108,108,111]
"'h'210'h''e'216216222"
Ce que je veux:
"h210he216216222"
Je suis coincé à trouver comment utiliser la carte et spectacle pour obtenir ceci pour travailler sans le '_' de Char. Merci.
Mon code:
import Data.Char
fromStringToList :: String -> [Int]
fromStringToList "" = []
fromStringToList myString = map ord myString
{-
changeB3
PRE: True
POST: every Int that can be divided by 3 is multiplied by 2 and
kept as int, otherwise transformed to char
-}
changeB3 :: [Int] -> String
changeB3 [] = ""
changeB3 (x:xs)
| x `mod ` 3 == 0 = show map (x * 2) ++ changeB3 xs
|otherwise = map chr x ++ changeB3 xs
Merci beaucoup! Yep .. A été confondu avec la carte et la récursion essayé de les combiner à partir de deux fonctions précédentes. Atteint pour quelque chose qui ne comprend pas complètement les principes derrière les deux ... Un grand merci! Très bien expliqué! –