lo e’! ancora non l’ho risolto 😄
esiste un modo magico per fare un qualcosa tipo?
(loop [x '((1 2 3))
v []
(if x
(concat v
(for [y x]
(recur y)))
cioe’ fare la chiamata ricorsiva dentro ad un for?
Si non credo tu possa..solo funzione dentro loop...che tra l'altro ha senso, è più riusabile
cioe’, l’ho risolto senza tail recursion e quindi con una mappa grande mi sfonda lo stack
o cmq dentro ad un loop su di una lista?
Mi pare recur usi loop
come label su dove ritornare.
Oppure defn
...potresti estrarre la seconda parte in una funzione ricorsiva in pratica...
Sempre se capisco bene l'intento di quel che stai facendo... è un flatten sembra?
Se cerchi recur qui -> https://clojure.org/reference/special_forms lo spiega bene
Sisi so come funziona loop, il mio problema fondamentalmente é che voglio innestare 2 loop con il secondo che fa la recur al primo. Vedendo online avevo trovato una rfc per implementare nativamente i named-loop ma non é mai stata portata avanti
per il problema qui sopra se non hai problemi di performances grossi e poi fare due passate invece di tutto in una, solitamente se puoi usare una struttura dati intermedia magari semplifichi l'algoritmo @andrea.imparato
in generale poi non ho guardato nello specifico al problema e adesso ho troppo sonno per pensarci 😄 ma di solito come truccone funziona sempre
ammettendo appunto di non aver a che fare con big data