-
-
Save PalumboN/fcc33145deeeb9b1465c to your computer and use it in GitHub Desktop.
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 |
el mio
pesoPino x = ((min x 3) * 300) + ((max 0 (x-3))*200)
esPesoUtil x = 400<x && x<1000
sirvePino = esPesoUtil.pesoPino
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:
-
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
yenCm
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ónpesoPino
es super simple.
Además no resolví cuentas en mi cabeza, sino que las escribo en el código: tus300
y200
son productos de hacer3 * 100
y2 * 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. -
Los nombre de los parámetros. Yo les puse nombres expresivos de lo que representan:
altura
ykg
, mientras que vos le pusiste a todasx
, 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 👍
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:
- 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
yenCm
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ónpesoPino
es super simple.
Además no resolví cuentas en mi cabeza, sino que las escribo en el código: tus300
y200
son productos de hacer3 * 100
y2 * 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.- Los nombre de los parámetros. Yo les puse nombres expresivos de lo que representan:
altura
ykg
, mientras que vos le pusiste a todasx
, 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!
Gracias! No se me ocurría ninguna forma para resolverlo