J'ai essayé de comprendre comment les blocs Ruby travail, et de le faire que j'ai essayé de les mettre en œuvre en C.blocs Ruby/fermetures de Java en C
Un moyen facile à mettre en œuvre des fermetures est de passer void*
à la pile englobante à la fonction de fermeture/fonction, mais les blocs Ruby semblent également gérer les retours et les déclarations de rupture de la portée qui utilise le bloc.
loop do
break i if (i >= 4000)
i *= 2
end
Je pense que l'une des propositions de fermeture pour Java fonctionne comme ça aussi. Alors, comment implémenteriez-vous Ruby-blocks/Java-closures en C?
"Alors, comment implémenteriez-vous Ruby-blocks/Java-closures en C?" Au moins jusqu'à la sortie de Java 7, les fermetures Java n'existent pas. –
Oui, c'est pourquoi j'ai dit "propositions de fermetures pour Java" juste avant. –