UTNianos

Versión completa: Ayuda Recursividad-Funcional-Haskell
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas tengo próximo un recuperatorio y me preocupa porque es mi última chance, no logro poder hacer el punto 1 por recursividad de este parcial

--1)a) este no me funciona tiene que hacer lo mismo que el de abajo
numeroAtom elemento = encontrarNumAtomico elemento todosLosElementos

encontrarNumAtomico elemento x:xs|((elemento ==).nombre) x = numAtomico x
|otherwise = encontrarNumAtomico elemento xs

--1)b)
numero elemento = snd ( find((elemento==).fst) todosLosElementos)

Ah me olvidaba de estas funciones

todosLosElementos = [ ("H",1), ("He",2), ("Li",3), ("Be",4), ("B",5), ("C",6), ("N",7)]

elementos "alcalinos" = ["H", "Li", "Na", "K", "Rb", "Cs", "Fr"]
elementos "alcalinosTerreos" = ["Be", "Mg", "Ca", "Sr", "Ba", "Ra"]
elementos "gasesNobles" = ["He", "Ne", "Ar", "Kr", "Xe", "Rn"]

grupos = ["alcalinos", "alcalinosTerreos", "gasesNobles"]

find f = head. filter f

nombre elemento = fst elemento
numAtomico elemento = snd elemento
Hola,
Mira yo lo resolví de la siguiente forma:



numero nombre = buscar nombre todosLosElementos
buscar nombreElemento [] = -1 --Si no encuentra el Elemento.
buscar nombreElemento (cabeza:cola) | fst cabeza == nombreElemento = snd cabeza
| otherwise = buscar nombreElemento cola



espero que te ayude, suerte!
gracias!! cuando lo termine lo subo todo resuelto.
URLs de referencia