Articles of clojure

Clojure: creazione di una nuova istanza dal nome della class String

In Clojure, dato un nome di class come una stringa, ho bisogno di creare una nuova istanza della class. In altre parole, come implementerei new-instance-from-class-name in (def my-class-name “org.myorg.pkg.Foo”) ; calls constructor of org.myorg.pkg.Foo with arguments 1, 2 and 3 (new-instance-from-class-name my-class-name 1 2 3) Sto cercando una soluzione più elegante di chiamare il metodo […]

Come posso visualizzare la definizione di una funzione in Clojure al REPL?

Sto cercando la possibilità di avere il REPL stampare la definizione corrente di una funzione. C’è un modo per fare questo? Ad esempio, dato: (defn foo [] (if true “true”)) Mi piacerebbe dire qualcosa del genere (print-definition foo) e ottenere qualcosa sulla falsariga di (foo [] (if true “true”)) stampato.

Creazione di un UUID da una stringa senza trattini

Come potrei creare un java.util.UUID da una stringa senza trattini? “5231b533ba17478798a3f2df37de2aD7” => #uuid “5231b533-ba17-4787-98a3-f2df37de2aD7”

Strumento di profilazione per Clojure?

qualcuno sa di un buon strumento di profilazione o di una libreria per Clojure? Preferirei qualcosa che potesse essere usato dal REPL, sulla falsariga di (with-profiling …) in Allegro Common Lisp nel corso della giornata. C’è qualcosa in questo senso? O hai qualche esperienza con profilatori Java (non commerciali) che funzionano bene con Clojure?

Quali sono le convenzioni comuni per l’uso degli spazi dei nomi in Clojure?

Ho difficoltà a trovare buoni consigli e pratiche comuni per l’uso dei namespace in Clojure. Mi rendo conto che i namespace non sono gli stessi dei pacchetti Java, quindi sto cercando di mettere in evidenza le convenzioni in Clojure, che sembrano sorprendentemente difficili da determinare. Penso di avere una buona idea di come suddividere le […]

Clojure differenze tra Ref, Var, Agent, Atom, con esempi

Sono molto nuovo in Clojure, puoi darmi una spiegazione con scenari del mondo reale. Voglio dire, dove usare Ref, Var, Agent, Atom. Ho letto il libro, ma, ancora non riuscivo a capire gli esempi del mondo reale.

cos’è un buon framework di collezioni persistenti per l’uso in java?

Per collezioni persistenti intendo collezioni come quelle in clojure. Ad esempio, ho una lista con gli elementi (a, b, c). Con una lista normale, se aggiungo d, la mia lista originale avrà (a, b, c, d) come suoi elementi. Con un elenco persistente, quando chiamo list.add (d), torno a una nuova lista, tenendo premuto (a, […]

Differenza tra Simboli e Vars in Clojure

Sono sempre un po ‘confuso riguardo a Simboli e Vars in Clojure. Ad esempio, è sicuro dire che + è un simbolo che è usato per denotare una var, e questa var punta a un valore che è una funzione che può aggiungere numeri? Quindi cosa succede, passo dopo passo, quando inserisco “+” in un […]

Come elencare le funzioni di un namespace?

Mi piacerebbe sapere come elencare tutte le funzioni di uno spazio dei nomi Clojure. Ho fatto delle ricerche ma non ci sono ancora. Ho già scoperto come elencare i metodi di una class Java usando il metodo show: (show java.awt.Graphics) Per elencare le funzioni di uno spazio dei nomi Clojure ho provato il metodo show […]

Come convertire la sequenza lazy in non-pigro in Clojure

Ho provato quanto segue in Clojure, aspettandomi di restituire la class di una sequenza non pigra: (.getClass (doall (take 3 (repeatedly rand)))) Tuttavia, questo restituisce ancora clojure.lang.LazySeq . La mia ipotesi è che doall valuti l’intera sequenza, ma restituisce la sequenza originale in quanto è ancora utile per la memoizzazione. Allora, qual è il mezzo […]