In che modo Clojure fa scattare la separazione delle preoccupazioni? Poiché il codice è dati, le funzioni possono essere passate come parametri e utilizzate come resi ...In che modo Clojure fa scattare la separazione delle preoccupazioni?
E, poiché esiste il principio "Migliori 1000 funzioni che funzionano su 1 struttura di dati, di 100 funzioni su 100 strutture di dati" (o qualcosa del genere).
Voglio dire, comprimere tutto una mappa, dargli una parola chiave come chiave, e basta? funzioni, scalari, raccolte, tutto ...
L'idea di Separazione delle preoccupazioni è implementata, in Java, mediante Aspetti (programmazione orientata agli aspetti) e annotazioni. Questa è la mia visione del concetto e potrebbe essere un po 'limitata, quindi non darla per scontata.
Qual è la strada giusta (modo gergale) per andare su in Clojure, per evitare le WTFs di colleghi programmatori _
Potresti essere un po 'più specifico su quello che stai chiedendo. Separazione delle preoccupazioni è un termine usato per indicare 100 cose diverse. – Sami
Gli aspetti sono un modo per modificare il comportamento del codice esistente senza accesso alla sua origine. Clojure e altri Lisps forniscono qualcosa di simile attraverso variabili dinamiche, che sono essenzialmente globali con i propri stack. Le funzioni di livello superiore (quelle create con defn) sono variabili dinamiche e possono essere associate a 'binding'. La sintassi di 'binding' assomiglia a' let', ma il binding è usato all'interno di chiamate all'interno del modulo di binding. – Zak