Bonjour,
Jaime bien les folds parce que ça utilise les lambdas et la récursion terminale (je crois).
J'aimerais savoir si on peut remplacer ma fonction filt' par un fold comme plus haut dans mon code (script simplissime que j'ai codé pour un script bash). Ou même reduire ce code(j'apprends donc je me preocuperais de la lisibilité une autre fois)
En attendant une réponse, bonne journée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 rev' :: String -> String --fonction reverse... rev' = foldl (\acc x -> x : acc) [] patio' :: String -> Integer --dis si la chaine contient un '/' patio' = foldl (\acc x -> if x == '/' then 1 + acc else acc) 0 filt' :: String -> String -- vire le debut de la chaine jusqu'au premier '/' filt' [] = [] filt' (x:xs) = if x == '/' then xs else filt' xs rparsePah :: String -> String --main rparsePah xs = if patio' xs /= 0 then rev' $ filt' $ rev' xs else xs main = do interact rparsePah
Partager