Sì, un'arità di uno è una proprietà di una funzione matematica. Il caso arity = 0 è veramente arity = 1 con il parametro void
o unit
. E 1 input non è l'unica proprietà, ma forse si presta ad alcuni degli altri (ad esempio senza effetti collaterali). Forse le tue funzioni tendono a conformarsi alla definizione delle funzioni matematiche?
Ecco un buon articolo sulle funzioni matematiche (la base per la programmazione funzionale) con i loro vantaggi e svantaggi nel contesto di programmazione. Ecco un estratto.
As you can see from the diagrams, there is always exactly one input and one output for a mathematical function. This is true for functional programming languages as well, although it may not be obvious when you first use them.
Per le persone che grattano la testa adesso, in pratica nella programmazione funzionale, non si codificano solo le funzioni a parametro singolo e nient'altro. Attraverso l'inganno matematico, è possibile mostrare che una funzione N-parametro può essere cambiata in N funzioni a parametro singolo con currying. (Quindi, il compilatore lo fa per te.)
Probabilmente la manutenibilità ha più a che fare con i seguenti DRY e SRP, poiché le tue funzioni sono suddivise in singole operazioni.
La componibilità è uno dei punti di forza primari delle funzioni matematiche. Non mi prenderò del tempo per approfondire tutte le informazioni su f(g(x))
qui. E probabilmente non sono bravo a spiegarlo come gli altri, quindi su altro link su questo argomento.
La testabilità è anche molto alta con le funzioni matematiche poiché mancano degli effetti collaterali che devono essere tenuti in considerazione. Per definizione danno anche risultati ripetibili.