La codificación de Luka
En el problema Kemija se utiliza la codificación de Luka consistente en añadir detrás de cada vocal la letra 'p' seguida de la vocal. Por ejemplo, la palabra "elena" se codifica como "epelepenapa" y "luisa" por "lupuipisapa".
Definir las funciones
codifica :: String -> String decodifica :: String -> String
tales que + (codifica cs) es la codificación de Luka de la cadena cs. Por ejemplo,
λ> codifica "elena admira a luisa" "epelepenapa apadmipirapa apa lupuipisapa" λ> codifica "todo para nada" "topodopo paparapa napadapa"
- (decodifica cs) es la decodificación de Luka de la cadena cs. Por ejemplo,
λ> decodifica "epelepenapa apadmipirapa apa lupuipisapa" "elena admira a luisa" λ> decodifica "topodopo paparapa napadapa" "todo para nada"
Soluciones
codifica :: String -> String codifica "" = "" codifica (c:cs) | esVocal c = c : 'p' : c : codifica cs | otherwise = c : codifica cs esVocal :: Char -> Bool esVocal c = c `elem` "aeiou" decodifica :: String -> String decodifica "" = "" decodifica (c:cs) | esVocal c = c : decodifica (drop 2 cs) | otherwise = c : decodifica cs