Ciao a tutti, non che sia una domanda ruby specifica, ma considerata la
bravura di molti programmatori in questa lista vorrei sottoporvi questa
domanda (questa si chiama: captatio benevolentiae).
Sto giocando con il codice di sciGEN
(SCIgen - An Automatic CS Paper Generator), in quanto, visto che le
pubblicazioni languono negli ultimi anni di lavoro (sigh), tanto vale
scrivere un parser che ne genera un TOT a random (magari poi un paio me
li prendono: la scienza e’ cosi!)
mi chiedevo: qual’e’ il modo migliore per stoppare le infinite looping
substitutions?
Mi spiego:
Se ho la frase
MYLITTLELAB_PAPER EMULATING_THEM with PERVERSE and DIFFERENT kind of
WARE MYLITTLELAB_PAPER
Dove le parole in maiuscolo sono Token da sostiuire, mi trovo in un
infinite loop durante la sostituzione.
In sintesi il problema degli infinite loops puo’ essere sintetizzato in
questa “regola”:
kw1=“%kw1%”
In giro per la rete sembra che il metodo piu’ in uso sia quello di dare
un limite arbitrario al numero di iterazioni del loop.
Esiste un’altra maniera?
Ciao
Davide
P.S: concordo con chi crede che quando uno arriva ai computational
linguists e’ arrivato decisamente alla frutta xkcd: Computational Linguists
throw exception se la frase di input contiene due volte lo “start
token”: MYLITTLELAB_PAPER
Dopo 150 iterazioni, se non ho risolto i tokens, suppongo ci sia una
circolarita’ nel file grammar e tiro una bella eccezzione.
Si, lo sto facendo in C#, non perche’ sono sadomaso, ma perche’ e’ parte
di un grande progetto per fare una killer app e gudagnare il mio million
dollar! (ho gia comprato il maglione a girocollo come Steve)
A parte gli scherzi grazie per il link alla gemma ruby. Me la guarda ed
estraggo l’estraibile.