In seguito utilizza il codice JavaScript ma F # viene taggato per l'input dai programmatori funzionali.
Capisco che nella programmazione funzionale non dovremmo mutare lo stato o i parametri in ingresso, ma sono confuso sul modello di richiesta formale quando si tratta di programmazione funzionale.
Il modello di richiesta formale è costituito da un oggetto con parametri di input e di output nello stesso oggetto.
La funzione cerca il sottoinsieme associato di parametri di input e popola il campo risultato associato. L'oggetto richiesta viene successivamente passato ad altri oggetti in cui ogni funzione aggiorna o decora il risultato formando quindi una pipeline.
In altre parole, l'oggetto richiesta viene popolato mentre passa attraverso la pipeline e ogni funzione successiva dipende dal risultato dell'operazione precedente.
ad esempio nel contesto del seguente codice Javascript.
var request = {
publicationId: "1234",
permissions: [] // string array
schema: null
// a lot more other input and output params
}
la seguente funzione legge publicationId
& aggiorna permissions
authorization.requestPermissions(request);
la seguente funzione legge publicationId
, permissions
(dalla precedente chiamata) & popola schema
article.create(request);
article.upload(request); // uses updated schema from 'article.create'
article.publish(request); // uses update schema from 'article.upload'
Ogni operazione successiva dipende dal risultato dell'operazione precedente.
qui entrambi permissions
e schema
vengono emessi
console.log(request.permissions)
console.log(request.schema)
La domanda è, sta violando la programmazione funzionale?
Cosa potrei cambiare in questo codice per rendere il modello di richiesta formale più funzionale alla programmazione.