...huh? Having piece-of-code A call piece-of-code B which in turn calls some other piece of code as determined by A is useful. Whether you call this idea a "block" or a "lambda" or a "function pointer" or a "first-class function" is an implementation detail.