A idéia é inspirada no fato de que operadores como +, -,% etc. podem ser vistos como funções com um ou dois argumentos passados e sem efeitos colaterais. Supondo que eu, ou outra pessoa, escreva uma linguagem que impeça a passagem de mais de dois argumentos e também funcione apenas via valor de retorno:
a) essa linguagem levaria a um código mais fácil de entender?
b) o fluxo do código seria mais claro? (forçado a mais etapas, com potencialmente menos interações "ocultas"
c) as restrições tornariam o idioma excessivamente volumoso para programas mais complexos.
d) (bônus) quaisquer outros comentários sobre prós / contras
Nota:
Duas decisões ainda precisam ser tomadas - a primeira é permitir a entrada do usuário fora de main () ou equivalente, e também qual será a regra em relação ao que acontece ao passar matrizes / estruturas. Por exemplo, se alguém quiser que uma única função adicione vários valores, ele poderá contornar a limitação agrupando-a em uma matriz. Isso pode ser interrompido não permitindo que uma matriz ou estrutura interaja consigo mesma, o que ainda permitiria, por exemplo, dividir cada número por uma quantidade diferente, dependendo da posição.
result = f(a)(b)…(z)
. É o caso da família de idiomas ML, como Haskell, mas também conceitualmente em outros idiomas, como Lisp, JavaScript ou Perl.