Yves Parès:
if f is lazy in its second argument, then use foldr. Everything is lazy, you build a very small thunk since nothing is evaluated.
In the rare cases where f is (also) lazy in its first argument, you can use foldl.
...
I have the impression that this is not the most useful advice possible.

1. "Nothing is evaluated"?? Look, foldr is designed to consume incrementally the list argument, and to produce, also incrementally the result ; it may stop in the middle if f is lazy, but if you organize badly your program, you will pollute your memory. You might wish to process the whole of the list as fast as possible, and then foldr may be dangerous. You may build a veeery big thunk before its reduction.

2. This is not only the issue: "f x z" versus "f z x". foldl is iterative (tail-recursive) and the reduction proceeds until all the source list is consumed. foldl works better with strict functions, not lazy.

(of course, unless I am mistaken...)
==

In general, sorry for the cynism, but when I read:

"There are times when I would like to find out which to use in the quickest way possible, rather than reading a long explanation of why each one behaves the way it does" of David Fox, I compare it with a question of a young army officer, addressed to his elders:

"Tell me how to win the war in the quickest way possible, rather than boring me with the explanations behind all those complicated strategies".

Jerzy Karczmarczuk
Caen, Normandy, France

(William the Conqueror, who lived here, had a reputation of a strategist who tried to understand his enemies. 350 years later, the French didn't try to understand anything, they just wanted to win the battle of Azincourt as quick as possible).