I am following the elisp introduction. Very first chapters. Here is two exemples I've copied/pasted from the html book. I've evaluated both forms, and here I copie/paste the returned value and the output as a side effect from the *Messages* buffer (I don't know how to copy the mini-buffer content).
First form
(let ((zebra 'stripes)
(tiger 'fierce))
(message "One kind of animal has %s and another is %s."
zebra tiger))
Output from *Messages*
One kind of animal has stripes and another is fierce.
#("One kind of animal has stripes and another is fierce." 23 30 (fontified t))
Second form
(let ((birch 3)
pine
fir
(oak 'some))
(message "Here are %d variables with %s, %s and %s value."
birch pine fir oak))
Output from *Messages* is:
Here are 3 variables with nil, nil and some value.
"Here are 3 variables with nil, nil and some value."
Why is the first form returning a lambda value please? What make the first form so special that the returned value won't be a character string?