UTNianos

Versión completa: Ayuda con ejercicio TP
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas, tengo una lista de productos:
martillo = ("martillo","Stanley",5.0)
guante = ("guante",”generico",1.0)
linterna = ("linterna","Duracel",2.0)
casco = ("casco","MSA",6.0)

de cada producto obtengo el iva de dos formas:
1) precioDeProductoConIVA (_, _, precioDeProducto) = 1.21 * precioDeProducto -- que me muestra solo el precio final

2) ivaAplicadoAProducto (nombreDeProducto, marcaDeProducto, precioDeProducto) = (nombreDeProducto, marcaDeProducto, precioDeProductoConIVA (nombreDeProducto, marcaDeProducto, precioDeProducto) ) -- que me muestra la tupla completa con el iva incluido..

Ahora la pregunta es si yo tengo una lista de productos [martillo,guante,casco] como logro sacar la suma del precio con iva de todos los productos de la lista en forma recursiva y también por orden superior?
tendría que armar la función precioDeProductosConIVA [martillo,guante,casco] pero no logro que me compile, alguna ayuda ?

muchas gracias.
Qué intentaste hacer?.
Probaste haciendo map (función de orden superior) de algo y aplicarlo a la lista?.

En el spoiler tenes la solución con Orden Superior.
Spoiler: Mostrar


listaIvaProductos lista = sum(map precioDeProductoConIVA lista)


Gracias Martin, igualmente a ese lo logre sacar, el tema que no me sale encarar la recursividad esa..

otra cosa, por listas de comprensión tambien se podria encarar no? haciendo algo como:

precioDeProductosConIVA2 lista = sum [ x | x <- precioDeProductoConIVA lista ] ?

aunque probando esta ultima forma no me compila, alguna ayudita? =)

Slds
Lo que sucede es que lo estás haciendo al reves.

Vos pensa que lo que está a la izquierda de la guarda es lo que te va a "insertar" en la nueva lista, y lo otro es el elemento de la lista.
Por ende para que sea de forma correcta tendría que ser así:

precioDeProductosConIVA2 lista = sum [ precioDeProductoConIVA x | x <- lista ]

Esto lo que hace es a cada elemento X de la lista le aplica el la función.
URLs de referencia