ValSpada / parcialesFuncional

Parciales Resuletos PdP - Paradigma Funcional
0 stars 0 forks source link

Correcciones - Crystal Gems #2

Open julian-berbel opened 3 months ago

julian-berbel commented 3 months ago

https://github.com/ValSpada/parcialesFuncional/blob/a9ea106e1b451f22f090b9fd64bbf66fdf9207e7/crystalGems.hs#L37

Repite lógica. Si se agregaran aspectos nuevos en el futuro (que el enunciado especifica que podría pasar) habría que modificar la función y agregar los aspectos nuevos definiéndola de esta forma. Una situación es mejor que otra si para todos (all) los aspectos, cumple con la condición de ser mejor que la otra.

https://github.com/ValSpada/parcialesFuncional/blob/a9ea106e1b451f22f090b9fd64bbf66fdf9207e7/crystalGems.hs#L49

Convenciones de nombres:

https://github.com/ValSpada/parcialesFuncional/blob/a9ea106e1b451f22f090b9fd64bbf66fdf9207e7/crystalGems.hs#L40-L46

Tratá de usar palabras con significados distintos para funciones que se comportan de distinta forma; cambiar y modificar significan lo mismo, entonces puede dar la impresión de que ambas funciones se comportan igual. Una mejor palabra en este caso podría ser asignarGrado.

https://github.com/ValSpada/parcialesFuncional/blob/a9ea106e1b451f22f090b9fd64bbf66fdf9207e7/crystalGems.hs#L71-L78

En las tres funciones repetís la función alterarTension (subtract unValor). Te convendría extraer la lógica repetida en una función tipo bajarTension unaCantidad = alterarTension (subtract unaCantidad). Idem con peligro (se repite resta en otras funciones).

https://github.com/ValSpada/parcialesFuncional/blob/a9ea106e1b451f22f090b9fd64bbf66fdf9207e7/crystalGems.hs#L102-L103

La lógica de la condición se repite; podrías delegar en una función como dominaA :: Gema -> Gema -> Bool.

https://github.com/ValSpada/parcialesFuncional/blob/a9ea106e1b451f22f090b9fd64bbf66fdf9207e7/crystalGems.hs#L140-L141

Se podría definir más declarativamente usando fold:

fusionGrupal :: Situacion -> [Gema] -> Gema
fusionGrupal unaSituacion = foldl1 (\unaGema otraGema -> fusionGemas unaGema otraGema unaSituacion)
ValSpada commented 3 months ago

Buenas Juli, primero que nada gracias por chequear todas mis resoluciones. Ya corregí lo que me marcaste acá, más tarde seguro sigo con el resto.