Domande taggate «tail-recursion»

La ricorsione in coda è una strategia ricorsiva in cui una funzione svolge una certa quantità di lavoro, quindi invoca se stessa. La "coda" si riferisce al fatto che la ricorsione si trova alla fine della funzione. Molti compilatori di linguaggi di programmazione, soprattutto funzionali, possono trasformare questi tipi di chiamate in iterazioni, il che significa che la ricorsione in coda nei linguaggi supportati può essere utilizzata senza timore di un overflow dello stack, indipendentemente dal numero di chiamate.



19
Come faccio a uscire da un ciclo in Scala?
Come faccio a interrompere un ciclo? var largest=0 for(i<-999 to 1 by -1) { for (j<-i to 1 by -1) { val product=i*j if (largest>product) // I want to break out here else if(product.toString.equals(product.toString.reverse)) largest=largest max product } } Come posso trasformare i nidificati per loop in ricorsione della coda? …

20
Capire la ricorsione [chiuso]
Allo stato attuale, questa domanda non è adatta al nostro formato di domande e risposte. Ci aspettiamo che le risposte siano supportate da fatti, riferimenti o competenze, ma questa domanda probabilmente solleciterà dibattiti, argomenti, sondaggi o discussioni estese. Se ritieni che questa domanda possa essere migliorata e possibilmente riaperta, visita …





5
La JVM impedisce le ottimizzazioni delle chiamate di coda?
Ho visto questa citazione sulla domanda: cos'è un buon linguaggio funzionale su cui costruire un servizio web? Scala, in particolare, non supporta l'eliminazione delle chiamate di coda tranne che nelle funzioni auto-ricorsive, che limita i tipi di composizione che puoi fare (questa è una limitazione fondamentale della JVM). È vero? …




Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.