Similar to a function, but anonymous. Though you would normally assign the closure to a variable and reference it that way. Technically - a record storing a function together with an environment. There are various benefits - unlike a plain function, a closure allows the function to access those captured variables through the closure's copies of their values or references even when the function is invoked outside their scope. So you can't do that with a regular function because you are limited to local and externally scoped vars but with a closure you can access the passed in vars as local - something like that?