Salut,
Alors voilà j'ai un petit soucis je dois coder un programme qui prend une séquence au clavier de ce type :
£55484: £52345: £56898: . £45484: £54785: .
je dois séparer la chaine et ne récupérer que les nombres et les . en java j'obtien quelque chose du genre :
55484|52345|56898|.|45484|54785|.
je dois par la suite manipuler les nombres pour en faire des string en fonction de caracteres dans un tableau et renvoyer la string avec tous les nombres remplacés ainsi que les points au bon endroit par exemple:
jtkjektkejd.kejdkje.
Du coup j'ai commencé un programme dont le main va lire l'entrée au clavier et le mettre dans une variable x puis imprimer x passant par une fonction qui va faire toutes les modifications necessaires.
J'ai commencé par découper x au niveau des espaces :
cut :: String -> [String]
cut x = h
where
h = splitOn " " x
ceci me renvoie donc un tableau avec la string sans les espaces. Pour mes tests j'ai voulu ensuite l'imprimer mais vu que ce n'est plus une String je ne peux pas le faire passer par la fonction putStr (et je n'ai pas encore trouvé comment le reconvertir en String)
Du coup je me suis dit que j'allais continuer en attendant et j'ai créé une autre fonction qui va parcourir le tableau et me renvoyer un tableau avec les manipulations sur les nombres :
change :: [String] -> [String]
change[] = []
change (x:xs) = if x=="."
then x: (recuperer xs)
else convertir x
Donc je veux regarder si l'élément est un "." , si oui je le remet dans le tableau puis je passe au suivant et si l'élément qu'on observe est autre chose (un nombre donc) je l'envoie vers une autre fonction qui va s'occuper de le transformer en la suite de caractères appropriée.
Du coup cette derniere fonction ne fonctionne pas et me ramene une erreur, si j'essai de la faire avec des gardes elle me donne une erreur d'indentation et avec le if then else :
Quelqu'un pourrait-il me réaiguiller sur la bonne voie s'il vous plait? (Je précise que j'ai déjà totalement finit le programme en Java mais je dois le rendre en Haskell du coup j'ai encore un peu de mal avec la maniere d'écrire le code)
merci d'avance et bonne journée