fix zip. should not evaluate second parameter if first parameter is empty

Cherry-picking pull request #625 (3b76ed6, bdf6689, a371d7b)
Merge pull request #636 from larsrh/backport/zip-laziness

[backport] zip laziness