Proc is older, but the semantics of return are highly counterintuitive to me (at least when I was learning the language) because:
- ifIf you are using proc, you are most likely using some kind of functional paradigm.
- procProc can return out of the enclosing scope (see previous responses), which is a goto basically, and highly non-functional in nature.
Lambda is functionally safer and easier to reason about - I always use it instead of proc.