FORMAT ~<...~:@> PUZZLE



The following simple function
(defun foo (n)
  (let* ((*print-right-margin* n)
	 (a '("Whan" "you're" "lost" "in" "the" "Wild,"
	      "and" "you're" "scared" "as" "a" "child,"
	      "And" "Death" "looks" "you" "bang"
	      "in" "the" "eye,")))
    (format t "~@<~{~A~^ ~}~:@>" a)))
if called (cl-user::foo 10)
prints one word at a line. So does (cl-user::foo 20),30,40.
And only (cl-user::foo 50) prints

Whan you're lost in the Wild, and you're scared
as a child, And Death looks you bang in the eye,

What's wrong? I'd expect that calls with n less that 50 (e.g 20, 30, 40)
would also print _formatted_ paragraph. Where was I wrong?

--
Vladimir Zolotykh
.



Relevant Pages