In che modo la programmazione logica reattiva è diversa dalla programmazione funzionale?

4

Poiché il modello di programmazione reattiva è perfettamente adatto per affrontare la propagazione delle modifiche richiesta per l'elaborazione delle transazioni, ovvero , quando il server riceve le richieste di modifica (Inserisci, Aggiorna o Elimina). L'approccio chiave prende in prestito pesantemente dal Domain Driven Design per fornire una logica di dominio dichiarativa. Ma come si differenzia dall'approccio alla programmazione funzionale?

    
posta Samantha Knotts 05.11.2013 - 11:12
fonte

2 risposte

3

Dalla pagina wikipedia di riferimento citata dal tuo link, si può dire che l'approccio funzionale è ortogonale all'essere reattiva. Dall'articolo di wikipedia segue che la programmazione reattiva può essere integrata in diversi paradigmi di programmazione (come procedurale, logico, OO o funzionale).

La mia comprensione è che la programmazione reattiva si basa sul concetto di flusso di dati, il che significa che la variabile può essere costruita da altre variabili e il loro valore è costantemente aggiornato dalle sue "dipendenze", proprio come accade in un foglio elettronico.

Quindi la programmazione reattiva riguarda principalmente i dati e il modo in cui i dati cambiano.

Il modello di programmazione funzionale si basa essenzialmente sulla definizione delle funzioni e sulla composizione di quelle per costruire operazioni di livello superiore.

Il modello di programmazione logica si basa su affermazioni logiche (di solito sotto forma di asserzioni o equazioni) e sulla loro composizione. Il programma viene eseguito trovando i dati che soddisfano la logica proposta. È simile all'utilizzo di un motore di regole.

Entrambi gli approcci possono essere utilizzati per creare programmi reattivi, che porteranno a programmi basati su un approccio di ragionamento diverso per risolvere un problema. Ciò si riflette sui blocchi fondamentali offerti dalla lingua, come si può vedere leggendo il link OP.

    
risposta data 05.11.2013 - 19:12
fonte
3

La programmazione funzionale riguarda bene ... le funzioni :) L'intero programma corrisponde all'applicazione e alla riduzione delle funzioni. Se vuoi tornare alle sue radici, la programmazione funzionale è lambda calcolo integrato con qualsiasi cosa tu voglia (tipi, record, concorrenza, dati primitivi).

In particolare, FP non ha alcuna nozione di "tempo". Le funzioni sono referenzialmente trasparenti e non dovrebbe avere importanza quando le valuti.

La programmazione reattiva parla di cose diverse, si concentra su "comportamenti" e "eventi". i comportamenti sono come variabili che cambiano tutto da soli, ad esempio: in una GUI il valore di un cursore cambia nel tempo, potremmo modellare un cursore con un comportamento. Parliamo anche di eventi, che sono sparati in momenti discreti, questo corrisponde a un pulsante, che un utente potrebbe fare clic.

Si noti che questi non si escludono a vicenda, ma la programmazione reattiva è praticamente ortogonale alla programmazione funzionale. È possibile modellare i comportamenti e gli eventi con funzioni, oggetti, relazioni logiche, è il nome! Abbiamo appena finito le parole d'ordine e stiamo iniziando a riutilizzarli :)

    
risposta data 05.11.2013 - 19:59
fonte

Leggi altre domande sui tag