Open mmatos opened 4 years ago
@asanzo quería algo así pero para todas las funciones, no?
Jjajajaj lo que yo quiero es ser delgado y abrazarles, aunque por ahora me estoy conteniendo de ambas.
Mi propuesta es si esto intenta imitar las ideas funcionalosas, especialmente el alto orden y el tipado, siento que necesito:
1) una forma de entender por qué no encaja y en dónde sí encajaría (entiendo que decidieron hacerlo por color, aunque en mis sueños más húmedos tengo bloques que tienen distinta forma para distinto tipo, y agujeros donde claramente calzan y agujeros donde claramente no, y está resuelto de una forma simpática el encastre de cosas con polimorfismo paramétrico como el caso de recibir funciones por parámetro)
2) (esto sí tiene q ver con el issue) una forma de diferenciar las cosas que puedo aplicar de las que no. Es decir, con un vistazo rápido me gustaría saber qué expresiones son o están "cerradas" (como el caso del bloque 0
siempre, o el id
cuando está metido en la composición, porque no lo quiero aplicar más).
Usar el "collapse" de Blockly de un bloque para cuando algo deja de ser aplicable es simpático, pero se queda bastante corto. Para mí un primer approach no debería ser usar el collapse, porque tiene una semántica y decisiones de diseño a veces contraproducente (por ejemplo ocultar los parámetros que le pasaste a la función).
Un primer approach podría ser sencillamente eliminar el último value input del bloque cuando la función es pasada por parámetro. De esta forma, id
se parecería a un valor, se parecería a un 0
, que es un poco lo que estás buscando.
En el caso que pasó la jefa, quedaría así:
Porque:
$
Compro todo lo que decís.
El $
lo había pedido @mmatos para que se pareciera a lo que escriben en el código. A mí me parecía simpático.
La aplicación es ULTRA necesaria, esa abstracción TIENE que existir en este lenguaje, así como las lambdas, la combinación es explosiva. Ver: https://github.com/uqbar-project/function-laboratory/issues/20#issuecomment-1154545122
When nesting compositions, the $ and third slot in the composition looks odd:
Even though it works to prove that if you try to apply it, it is rejected:
I don't think that's something anyone would try to do in real life...
Showing it as
id . id ?
doesn't seem fitting either, so it might be best to just remove the $ and third slot altogether.