3 ms·
Note: unlike lambdas in functional languages, this lambda does not capture the containing environment.
by Kototama 15y ago
Note: unlike lambdas in functional languages, this lambda does not capture the containing environment.
- Jach 15y agoBah, beat me to it. It's still kind of cool though. qsort (array, sizeof (array) / sizeof (array[0]), sizeof (array[0]), lambda (int, (const void *a, const void *b), { dump (); printf ("Comparison %d: %d and %d\n", ++ comparison, *(const int *) a, *(const int *) b); return *(const int *) a - *(const int *) b; }));
- ori_b 15y agoThat's slightly sloppy phrasing. It captures it, but it does not duplicate it, so it's lifetime is tied to the stack frame of the function you declared it in. In short, you can only do downwards funargs.