To use academic terminology, we would refer to &quot;floating functions&quot; as &quot;first class functions&quot; (since they are not second-class citizens in the language).<p>I would argue the true distinguishing feature of a &quot;lambda function&quot; in a PL is that it is first-class, nest-able, and lexically-scoped (that is, it captures bindings from its definition site).<p>A closure is simply a way of implementing lexical scope for functions.<p>A variable is a &quot;free variable&quot; not because it is &quot;freed&quot; from its lifetime, but because it is not bound by its enclosing lambda. (It would still be a free variable even if the function and the variable binding had the same lifetime.)