Sto cercando di capire come modellare gli eventi in ClojureScript. Progettare una coda di eventi in JavaScript è facile. Basta mantenere una matrice (mutabile) di funzioni e fornire funzioni di supporto per aggiungere o rimuovere i callback dall'array. Quando si attiva l'evento, è sufficiente scorrere tutti i callback elencati nell'array e richiamarli uno dopo l'altro.Programmazione event-driven in Clojure/ClojureScript
Questo paradigma è lontano dallo stile funzionale, ad esempio non è possibile attivare i callback a meno che non abbiano effetti collaterali. Inoltre è implementato utilizzando una matrice mutabile. Ancora mi sembra che in ClojureScript sia necessario essere in grado di fare programmazione basata sugli eventi per fare qualcosa di utile. Ora, so che Google Closure implementa già una libreria di eventi, ma la mia domanda riguarda l'implementazione nativa.
Poiché tutti i tipi di dati Clojure/ClojureScript di base sono immutabili, quale sarebbe un modo idiomatico per implementare questo meccanismo? Cambiando un ref? Ricorrere a strutture dati mutabili dall'host (Java resp JavaScript)?
Se ho capito bene, gli agenti sono probabilmente lo strumento giusto in Clojure, ma vedo che attualmente non sono implementati in ClojureScript.
E usa lo stesso concetto di atomo per archiviare tutti i gestori di eventi – Ankur
404 non trovati - lo sai se è stato spostato altrove? –