Se provo a valutare il seguente codice nel mio emacs cider-repl, nil viene restituito, come previsto, ma nessuna stampa avviene nel repl buffer o nella console. Come posso rendere questa stampa come previsto?Perché non riesco a stampare da thread in background in Clojure Cider REPL in emacs?
(dotimes [i 5]
(.start
(Thread.
(fn []
(Thread/sleep (rand 500))
(println (format "Finished %d on %s" i (Thread/currentThread)))))))
;=> nil
Questo funziona bene, tuttavia:
(println (format "Finished 1 on %s" (Thread/currentThread)))
;=> Finished 1 on Thread[nREPL-worker-18,5,main]
----------- mini-buffer -----------------
nil
Grazie mille! Questo risolve il mistero e tu mi hai appena insegnato qualcosa sia su Clojure che su Emacs.C'è un modo per riassociare la variabile * out * per i thread in background da stampare anche sul repl repl buffer? – kurofune
'* out *' può essere impostato con 'binding', come qualsiasi altra var dinamica. La risposta di @ amalloy fa un buon lavoro nel mostrare quella parte che penso. – noisesmith
proprio sopra. Entrambi avete chiaramente risolto questo per me. Grazie. – kurofune