f x = (\y -> x + y)
f returns a closure, because the variable
x, which is bound outside of the lambda abstraction is used inside its definition.
An interesting side note: the context in which
x was bound shouldn't even exist anymore, and wouldn't, had the lambda abstraction not closed around x.