Apple extended C with block closures years ago.<p><pre><code>  int b = 0;

  ^(int a) {
    return a*b;
  }
</code></pre>
The declaration for lambda variables is almost identical to function pointers, just with a ^ instead of a *, so there&#x27;s nothing to learn (or unlearn, like C++ forces you to). The ^ looks like a lambda, and historically the lambda of lambda calculus actually was a caret accent over the variable. The argument list can be elided.