0votos

Traductor a idioma F en Haskell

por josejuan hace 4 años

Una.

El idioma f consiste en agregar una f después de cada vocal, y repitiéndola después de la f.

1
2
3
4
5
isVowel = flip elem "aeiou" . T.head . normalize NFD . pack . (:[]) 
 
f [] = [] 
f (x:xs) | isVowel x = x : 'f' : x : f xs 
         | otherwise = x           : f xs 
2 comentarios
0votos

Escrito por Santiago hace 4 años

Madre mía, que cortito es tu código, es traduce las palabras?
increíble.

dejare mi código en python :D

#! -*- coding: utf-8 -*-

vocales = ("a", "e", "i", "o", "u")

indice = 0
indice2 = 0

def traductor(palabra_traducida):
    for letra in palabra_traducida:     #iteramos en la palabra
        indice = palabra_traducida.index(letra) #guardamos el indice de la letra
        try:      # intentamos ver si la letra es igual a una vocal
            indice2 = vocales.index(letra) #buscamos el indice de la letra en la tupla
            if palabra_traducida[indice] == vocales[indice2]: # si existe agregamos una f
                palabra_traducida[indice] = letra + "f" + letra
        except: #si no existe la letra en la tupla de vocales, continuamos con el bucle
            continue

while True:
    palabra = raw_input("\nPalabra o frase que desea traducir: ")
    palabra = palabra.lower()
    palabra_traducida = []
    palabra_traducida[ : ] = palabra #separamos la palabra por letras en una lista
    print palabra_traducida

    traductor(palabra_traducida)
    print "\n","".join(palabra_traducida)


Saludos.
0votos

Escrito por josejuan hace 4 años

"traduce las palabras?"

Sí ;)
*Main> putStrLn $ f "El jamón de mi tía está riquísimo"
EfEl jafamófón defe mifi tífíafa efestáfá rifiqufuífísifimofo


(NOTA: faltaba `toLower` para considerar mayúsculas)

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.