10Pines / pdepreludat

BSD 3-Clause "New" or "Revised" License
24 stars 2 forks source link

Permitir el uso de otros tipos numéricos #38

Open PalumboN opened 3 years ago

PalumboN commented 3 years ago

Buenas! Este año comenzamos a usar esto en mi curso de UTN y traigo la sugerencia de permitir el uso de otros tipos numéricos más allá de Number (como Int, Float y cualquier que venga con Haskell).

Yo banco el tipo Number y es el que uso en clase, pero muchas veces mis estudiantes ven código en otro lado (Mumuki) y cuando lo quieren probar en sus proyectos les falla porque no reconoce esos tipos de datos, lo que obliga a hacer el reemplazo y es medio molesto.

Me gustaría que estén disponibles todos los tipos de números además del tan querido Number. Además esto permitiría adaptarse mejor a otros cursos: esta sea tal vez la barrera más molesta para empezar a usar este proyecto. Y creo que hay más cosas mucho muy valiosas que aporta (como el reporte de errores o la documentación en español) que un poco se pierde detrás de esta decisión.

My two cents! Muchas gracias por todo!! :rocket:

JuanFdS commented 3 years ago

@PalumboN holis, creo que los desafío con esto son:

Hay un par de alternativas que se me ocurren:

Todavía no tengo nada decidido, pero se me ocurren esas cosas a tener en cuenta (?, de eso que opinas?

PalumboN commented 3 years ago

@JuanFdS Ok, sí me imaginé que el problema venía por ahí... en realidad lo que me gustaría es que las definiciones que usen Int o Float no fallen, pero que siempre se termine comportando como Number. No se puede exportar un alias onda:

type Int = Number
type Float = Numbe

Eso lo acabo de probar y me deja tener esta definición:

doble :: Int -> Int
doble numero = numero + numero

Lo que estoy viendo / pensando es que tiene algunos problemas:


Qué les parece? Mete más ruido?

JuanFdS commented 3 years ago

jajajaja ese era el hackazo que decía que se me había ocurrido por telegram 😅.

Y mmm, no me termina de cerrar exponer un Int que pueda tener decimales, me gustaría primero ver si se nos ocurren otras cosas.

Igual, algo bueno de el hack este es que lo pueden agregar facil a algun repo que ya les den armado a sus alumnes (?. Pueden agregar esos 2 type alias a algun modulo que usen o importen y avisarles que con eso el codigo que vean en apuntes o mumuki les deberia funcionar lo mas bien local 👌🏾

@fdodino @ludat ustedes que piensan?

fdodino commented 3 years ago

A mí me preocupa más la resistencia de les docentes que la de les alumnes. A largo plazo creo que la estrategia que me convence es:

  1. poner los sinónimos de tipo como un workaround didáctico de incluir a docentes con dudas
  2. sensar que tengamos una mayoría de gente usando pdepreludat
  3. cambiar los apuntes y Mumuki (ya 2022)
  4. terminar de cerrar la discusión didáctica: para mí diferenciar los tipos Float / Int es una decisión negativa para un curso inicial de Funcional, didácticamente solo aporta ruido y confusión empeoradas por la respuesta a la pregunta :t 2.