Δημοσιεύτηκε: 03 Δεκ 2011, 17:32
από migf1
migf1 έγραψε:Χμ, μάλλον άλλο κατάλαβα :( το θέμα είναι πως είναι καθόλα εφικτό και στη C (θα το κοιτάξω όταν πάω σπίτι με καθαρό μυαλό. γιατί προφανώς δεν κατάλαβα την εκφώνηση).


Φεύγω για σπίτι!

Έτσι γίνεται με C: http://www.hokstad.com/how-to-implement-closures.html (αν δεν βαρεθώ μπορεί αργότερα ή αύριο να το προσαρμόσω στα μέτρα της συγκεκριμένης άσκησης... η ουσία είναι πως μπορείς να διαχειριστείς run-time μέσω function pointers.

Αυτό που κάνουν δηλαδή behind the scenes και οι περισσότερες HL γλώσσες και απλά το δίνουν έτοιμο στο εξωτερικό interface, έτοιμο προς χρήση... στη C μπορείς να το φτιάξεις μια φορά και να το κάνεις βιβλιοθηκούλα για να υπάρχει πλέον κι αυτό έτοιμο για μελλοντική χρήση ... ή εναλλακτικά να χρησιμοποιήσεις κάποιο έτοιμο library ή compiler specific extensions (ο gcc για παράδειγμα υποστηρίζει εδώ και πολλά χρόνια closures, nested functions, κλπ ως extensions ).

EDIT:
Να κι ένα σχετικό αποτέλεσμα από ένα γρήγορο googling: http://linuxgazette.net/112/ramankutty.html (ενδέχεται να έχει και τη λύση της άσκησης μέσα σε C... δεν το διάβασα γιατί φεύγω)