What is the difference between proc function and lambda function when they both create new Proc object? Is there any guidelines for preferring one over another?