A funny read.
However, the most important person in my gang will be a systems programmer.
A person who can debug a device driver or a distributed system is a person who can be trusted in a
Hobbesian nightmare of breathtaking scope; a systems programmer has seen the terrors of
the world and understood the intrinsic horror of existence
http://research.microsoft.com/en-us/people/mickens/thenightwatch.pdf
Strict vs lazy evaluation
Source - Strict Functions, section 3.3
The section in above link very clearly explains what is lazy evaluation and what is strict evaluation.
From above link - A function is strict (and not lazy) if given a non-terminating expression the function itself becomes non-terminating. For example:
def printArray arraySequence
arraySequence.each {|x| puts x}
end
Above function is strict because if calling #each
on arraySequence
results in
non-terminating expression then function printArray
becomes non-terminating itself.