Domande con tag 'tail-call'

8
risposte

Quali metodi ci sono per evitare uno stack overflow in un algoritmo ricorsivo?

Domanda Quali sono i modi possibili per risolvere un eccesso di stack causato da un algoritmo ricorsivo? Esempio Sto cercando di risolvere il problema Project Euler 14 e ho deciso di provarlo con un algoritmo ricorsivo. Tuttavia,...
posta 11.04.2013 - 12:46
4
risposte

Quali limitazioni impone la JVM all'ottimizzazione di coda

Clojure non esegue l'ottimizzazione delle chiamate tail da solo: quando hai una funzione ricorsiva di coda e vuoi ottimizzarla, devi usare la forma speciale recur . Allo stesso modo, se hai due funzioni reciprocamente ricorsive, puoi ottimiz...
posta 21.07.2012 - 14:47
2
risposte

Combinazioni combinatore e coda di chiamata Y

La definizione di un combinatore Y in F # è let rec y f x = f (y f) x f si aspetta di avere come primo argomento una continuazione per i sottoproblemi ricorsivi. Usando y f come continuazione, vediamo che f sarà applicato alle chiamate succ...
posta 26.12.2012 - 19:08
3
risposte

Quali sono le alternative all'utilizzo di una pila per rappresentare la semantica delle chiamate di funzioni?

Sappiamo tutti e amiamo che le chiamate alle funzioni vengono solitamente implementate usando lo stack; ci sono frame, indirizzi di ritorno, parametri, tutto il lotto. Tuttavia, lo stack è un dettaglio di implementazione: le convenzioni di ch...
posta 07.06.2013 - 11:38
1
risposta

Suggerimenti per la ricorsione della coda chiamata in Python [duplicato]

Ok, Python non ha ottimizzazione delle chiamate tail. Ma per coloro che pensano in modo ricorsivo meglio di "in loop", quali sono le migliori pratiche per scrivere codice ?? 1000 richieste di stack sono sufficienti per molti casi, ma qua...
posta 22.10.2013 - 21:38
1
risposta

Implementazione coda-ricorsiva di take-while

Sto provando a scrivere un'implementazione ricorsiva della funzione take-while in Scheme (ma questo esercizio può essere fatto anche in un'altra lingua). Il mio primo tentativo è stato (define (take-while p xs) (if (or (null? xs)...
posta 03.06.2014 - 22:56
2
risposte

Quando usare la ricorsione della coda?

Recentemente sono entrato nella programmazione funzionale. Ho fatto una domanda qui sopra "'Memorizzare' i valori nella programmazione funzionale" e ho imparato un sacco di cose che non avevo nemmeno capito che volevo ancora imparare. È stato...
posta 22.09.2016 - 09:25
3
risposte

Cosa può qualificarsi per una potenziale ottimizzazione della ricorsione della coda (TCO) o dell'eliminazione della ricorsione della coda (TRE)

La domanda breve è: cosa può qualificarsi per l'ottimizzazione della ricorsione della coda (TCO) o l'eliminazione della ricorsione della coda (TRE) se il compilatore o l'interprete lo supporta. Il riassunto di questa domanda è nella sezione "...
posta 10.01.2016 - 18:07
2
risposte

Ricorsione generale alla ricorsione in coda

È teoricamente possibile trasformare ogni tipo di ricorsione generale in ricorsione di coda? Sono equivalenti per esempio dal punto di vista del lambda-calcolo? Questo è un dibattito tra me e un conoscente. La mia opinione è che non è possibi...
posta 17.07.2014 - 20:41
1
risposta

Implementazioni diverse dell'ottimizzazione delle chiamate tail

Ho sentito alcune persone nella mia università discutere dell'ottimizzazione delle chiamate tail in ML come se si trattasse di una versione speciale dell'ottimizzazione delle chiamate tail. Le implementazioni ML (SML / F #) di tco in questi ling...
posta 05.04.2015 - 22:48