clojure-italy

🇮🇹
reborg 2020-07-16T08:27:55.172Z

giorno people

Andrea Imparato 2020-07-16T09:01:32.176700Z

buongiornissimo! domanda algoritmosa mattiniera per voi! immaginate di avere una mappa parecchio grande che ha come chiavi liste di stringhe e come valori liste di liste di stringhe. Ora con questa mappa per ogni chiave bisogna creare tuttue le liste formate da “percorsi” tra chiavi e liste. Praticamente scelgo una chiave e tutti i valori associati diventano le chiavi da cui ripartire fino a quando non ci sono piu’ valori associati. Ho fatto un’implementazione ricorsiva della funzione ma sono andato incontro ad un stackoverflow perche’ la mappa e’ troppo grande. Il problema e’ che la chiamata ricorsiva deve essere fatta dentro al loop dei valori della chiave e quindi non riesco ad usare recur perche’ non e’ tail recursion

reborg 2020-07-16T09:32:14.177700Z

Se hai voglia posta un esempio input output. Non riesco ad interpolare la definizione di “partire” per “andare” etc.

Andrea Imparato 2020-07-16T09:40:20.177900Z

eheh c’hai anche ragione

Andrea Imparato 2020-07-16T09:43:36.179100Z

input: da “This is a cat.\nThis is a dog.\nThis is pizza” creo {(“This” “is” “a”) ((“dog.“) (“cat.“)), (“cat.“) (nil), (“dog.“) (nil), (“This” “is” “pizza”) (nil)}

Andrea Imparato 2020-07-16T09:43:49.179400Z

il risultato dovrebbe essere

Andrea Imparato 2020-07-16T09:44:33.180300Z

((“This” “is” “a”) (“dog.“) (“This” “is” “a”) (“cat.“) (“cat.“) (“dog.“) (“This” “is” “pizza”))

Andrea Imparato 2020-07-16T09:45:58.180500Z

la funzione che ho fatto e’ (defn all-sentences [chain current-key sentence] (let [words (get chain current-key)] (for [w words] (if (empty words) (concat sentence current-key) (all-sentences chain w sentence)))))

Andrea Imparato 2020-07-16T09:46:44.181Z

che funziona per l’esempio ma mi va in stackoverflow se la mappa e’ grande

Andrea Imparato 2020-07-16T09:46:57.181400Z

potrebbe anche essere concat il problema adesso che ci penso pero’

reborg 2020-07-16T11:33:44.182100Z

mmh, perche’ non c’e’ ("pizza") tra i risultati?

reborg 2020-07-16T11:43:24.182400Z

sembra un problema interessante :)

Andrea Imparato 2020-07-16T19:06:19.182500Z

Eh perché sono triplette di parole in un testo