La idea está inspirada en el hecho de que operadores como +, -,%, etc. se pueden ver como funciones con uno o dos argumentos aprobados y sin efectos secundarios. Suponiendo que yo, u otra persona, escriba un lenguaje que impida que se pasen más de dos argumentos, y que también solo funcione a través del valor de retorno:
a) ¿tal lenguaje conduciría a un código más fácil de entender?
b) ¿sería más claro el flujo del código? (forzado a más pasos, con potencialmente menos interacciones 'ocultas'
c) las restricciones harían que el lenguaje fuera excesivamente voluminoso para programas más complejos.
d) (bonus) cualquier otro comentario sobre pros / contras
Nota:
Todavía tendrían que tomarse dos decisiones: la primera es si se debe permitir la entrada del usuario fuera de main () o su equivalente, y también cuál será la regla con respecto a lo que sucede al pasar matrices / estructuras. Por ejemplo, si alguien quiere que una sola función agregue múltiples valores, podría sortear la limitación al agruparla en una matriz. Esto podría detenerse al no permitir que una matriz o estructura interactúe consigo misma, lo que aún le permitiría, por ejemplo, dividir cada número por una cantidad diferente, dependiendo de su posición.
result = f(a)(b)…(z)
. Este es el caso en la familia de idiomas de ML como Haskell, pero también conceptualmente en otros idiomas como Lisp, JavaScript o Perl.