Ho iniziato a programmare con Python, ed ero davvero confuso da concetti come coroutine e chiusure.
Ora penso di conoscerli a un livello superficiale, ma non ho mai sentito quel momento di "illuminamento", quindi ho scelto di imparare Clojure. Ho comprato il libro di Stuart Halloway ed è buono, ma quando ho guardato l'indice non c'erano parole come coroutine o continuazione. Li ho cercati su Google, ma non c'è neanche niente.
Quindi, la mia domanda è:
Clojure ha continuazioni o coroutine per svolgere attività come il ping-pong senza un overflow dello stack?
Esempio di Python (sebbene Python standard non supporti una versione completa di questo coroutine simmetrico):
def ping():
while 1:
print "ping"
function to switching to pong
def pong():
while 1:
function to switching to ping
print "pong"