Sto scrivendo una guida in stile C # per il mio team e sto cercando di descrivere i vantaggi dei metodi in stile funzionale senza effetti collaterali. Voglio includere i riferimenti online per eseguire il backup dei suggerimenti, ma non riesco a sembrare a Google il tipo di concatenamento dei metodi funzionali che ho in mente.
Quando penso a "catena di metodi", immagino qualcosa di simile (in Ruby)
userInput.chomp.downcase.split(",").map(&:to_i)[3].to_s(16)
dove ogni metodo restituisce un nuovo oggetto (forse anche di una classe diversa) e tutto è privo di effetti collaterali, quindi è come comporre funzioni in un linguaggio funzionale. Scrivere metodi simili a funzioni rende molto facile costruire questo tipo di catene e, secondo la mia esperienza, semplifica enormemente il codice.
Ma quando uso Google "C # method chaining", continuo a cercare cose come questa
myObj.AddItem(mItem).AddItem(mItem2).AddItem(mItem3);
dove ogni metodo muta e restituisce il ricevitore. Questo è praticamente l'opposto della programmazione funzionale e, se mai, è il tipo di cosa che voglio scoraggiare dal mio team. Anche quando eseguo il "concatenamento dei metodi funzionali C #" di Google, il risultato migliore è il post di blog su StringBuilder
, che si basa interamente sugli effetti collaterali di ogni chiamata di metodo!
C'è un termine diverso per questo oltre al "concatenamento di metodi"? O, ancora meglio, c'è un posto che documenta i vantaggi di questo stile?