Skip to content

Instantly share code, notes, and snippets.

@PalumboN
Created March 15, 2016 05:38
Show Gist options
  • Save PalumboN/fcc33145deeeb9b1465c to your computer and use it in GitHub Desktop.
Save PalumboN/fcc33145deeeb9b1465c to your computer and use it in GitHub Desktop.
Posible solución para el ejercicio 2.11 de Funcional en Mumuki: http://pdp-unsam.mumuki.io/exercises/18-funcional-practica-valores-y-funciones-pinos
pesoPino altura = pesoBase altura + pesoCopa altura
pesoBase altura = 3 * enCm (min 3 altura)
pesoCopa altura = 2 * enCm (max 0 (altura - 3))
enCm mtrs = 100 * mtrs
esPesoUtil kg = kg > 400 && kg < 1000
sirvePino = esPesoUtil . pesoPino
@hernan-arga
Copy link

Gracias! No se me ocurría ninguna forma para resolverlo

@gpratoe
Copy link

gpratoe commented Apr 7, 2021

el mio

pesoPino x = ((min x 3) * 300) + ((max 0 (x-3))*200)
           
esPesoUtil x = 400<x && x<1000 
sirvePino = esPesoUtil.pesoPino

@PalumboN
Copy link
Author

PalumboN commented Apr 7, 2021

Woo no sé quién sos @FootMassage, ni cómo llegaste a este gist del 2018, pero comparando soluciones fijate que mi código tiene 2 cosas que el tuyo no:

  1. Les puse nombre a ideas que en tu código también aparecen pero todas juntas, lo que puede causar confusión / dificultad de entender. Las abstracciones pesoBase, pesoCopa y enCm me permiten dividir el problema en subtareas y no tener que enfrentar toda la cuenta compleja de una. De hecho, la definición de mi función pesoPino es super simple.
    Además no resolví cuentas en mi cabeza, sino que las escribo en el código: tus 300 y 200 son productos de hacer 3 * 100 y 2 * 100. Como estoy escribiendo un programa, es importante saber de dónde salen esos números: 3, 2 y 100 aparecen en el enunciado, 300 y 200 no.

  2. Los nombre de los parámetros. Yo les puse nombres expresivos de lo que representan: altura y kg, mientras que vos le pusiste a todas x, lo que no deja en claro qué es lo que espera la función.

Por favor, tomar todo esto como sugerencias / críticas constructivas para generar código más legible y mantenible. No es una bardeada a tu código, el cual resuelve el problema y compone funciones 👍

@gpratoe
Copy link

gpratoe commented Apr 28, 2021

Woo no sé quién sos @FootMassage, ni cómo llegaste a este gist del 2018, pero comparando soluciones fijate que mi código tiene 2 cosas que el tuyo no:

  1. Les puse nombre a ideas que en tu código también aparecen pero todas juntas, lo que puede causar confusión / dificultad de entender. Las abstracciones pesoBase, pesoCopa y enCm me permiten dividir el problema en subtareas y no tener que enfrentar toda la cuenta compleja de una. De hecho, la definición de mi función pesoPino es super simple.
    Además no resolví cuentas en mi cabeza, sino que las escribo en el código: tus 300 y 200 son productos de hacer 3 * 100 y 2 * 100. Como estoy escribiendo un programa, es importante saber de dónde salen esos números: 3, 2 y 100 aparecen en el enunciado, 300 y 200 no.
  2. Los nombre de los parámetros. Yo les puse nombres expresivos de lo que representan: altura y kg, mientras que vos le pusiste a todas x, lo que no deja en claro qué es lo que espera la función.

Por favor, tomar todo esto como sugerencias / críticas constructivas para generar código más legible y mantenible. No es una bardeada a tu código, el cual resuelve el problema y compone funciones 👍

Gracias, voy a tener en cuenta todo lo que me dijiste :D
Estoy estudiando ciencias de la computación y me dieron ese curso de mumuki para practicar programación funcional. Este ejercicio en particular me costó pensarlo, así que cuando lo terminé quise buscar si había alguno resuelto en internet para ver como lo habían hecho. Y así justo di con tu resultado y me dieron ganas de compartir el mio jajaja

Gracias por las criticas, es cierto que mi código es medio engorroso, voy a intentar trabajar en ello!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment