L'idée est inspirée du fait que les opérateurs tels que +, -,%, etc. peuvent être considérés comme des fonctions avec un ou deux arguments passés et sans effets secondaires. En supposant que moi ou quelqu'un d'autre écrive un langage qui empêche la transmission de plus de deux arguments et ne fonctionne que via la valeur de retour:
a) un tel langage conduirait-il à un code plus facile à comprendre?
b) le flux du code serait-il plus clair? (forcé à plus d'étapes, avec potentiellement moins d'interactions cachées)
c) les restrictions rendraient-elles le langage excessivement volumineux pour des programmes plus complexes.
d) (bonus) tout autre commentaire sur le pour / le contre
Remarque:
Deux décisions devraient encore être prises - la première est de savoir si autoriser l'entrée utilisateur en dehors de main () ou son équivalent, et aussi quelle sera la règle concernant ce qui se passe lors du passage de tableaux / structures. Par exemple, si quelqu'un veut qu'une seule fonction ajoute plusieurs valeurs, il peut contourner la limitation en la regroupant dans un tableau. Cela pourrait être arrêté en n'autorisant pas un tableau ou une structure à interagir avec lui-même, ce qui vous permettrait toujours, par exemple, de diviser chaque nombre par un montant différent, selon sa position.
result = f(a)(b)…(z)
. C'est le cas dans la famille de langages ML comme Haskell, mais aussi conceptuellement dans d'autres langages comme Lisp, JavaScript ou Perl.