Hacker News new | ask | show | jobs
by jzimbel 975 days ago
Elixir puts some guardrails on its numbered-argument anonymous function syntax, which I think do a good job of restricting its use to defining extremely simple functions.

1. The function has to use all of its arguments at least once. You can’t do `&(&2)`, because it skips the first argument.

2. Single-expression. You can’t do something like `&(x = &1; x + 1)`.

3. No nesting. You can’t define an additional anonymous function inside of a & expression, or even use a `&SomeModule.some_fn/arity` capture. For anonymous functions with nesting, you have to use the `fn arg1, arg2, ... -> body end` syntax.