Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm not sure I understand what you have in mind. Assuming I have something like this:

int foo(void) { return bar(1) + 2; }

is there any way in which I could arbitrarily modify this function? E.g. to dynamically turn it into

int foo(void) { return bar(2) * 4 }

using closures?

I get how you could do that, assuming you had a function defined for each of the possible operations you needed. But what about arbitrary modifications?



You wouldn't want to modify the function in-place, that would violate immutability of data. Each of these closures would themselves be generated, by a factory method. When you're ready to modify, you'd invoke the factory to generate another closure, then you'd use whatever infrastructure you built to assign them in the first place to re-assign them to the new closures.


Ah, got it. Thanks!


If you wanted to get really sophisticated, you could generate the factory methods, too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: