[hunchentoot-devel] Hunchentoot Recursive Function

Chaitanya Gupta mail at chaitanyagupta.com
Wed Dec 16 12:04:50 UTC 2009


Phil Marneweck wrote:
> This is most likely a problem with my understanding of lisp and not
> hunchnetoot.
> 
> Why does the following function only out put "Recursive count- 0" to the
> hunchentoot page?
> 

This might be more of an issue with your understanding of CL-WHO rather 
than Lisp ;)

(defun recursive-test (count)
   (with-html-output (*standard-output*)
     (if (< count 10)
         (recursive-test (+ count 1)))
     (str (format nil "Recursive count- ~A~%" count))))

Note that I am using WITH-HTML-OUTPUT instead of 
WITH-HTML-OUTPUT-TO-STRING. This way, output by all recursive calls 
would go to *standard-output* which is then be handled by TEST-RECURSIVE.

(define-easy-handler (test-recursive :uri "/test.html") ()
   (with-html-output-to-string (*standard-output*)
     (recursive-test 0)))

We don't need the (STR ...) around (RECURSIVE-TEST 0) since we are not 
interested in the return value. Also, you don't necessarily need to use 
WITH-HTML-OUTPUT-TO-STRING here -- even WITH-OUTPUT-TO-STRING would work.

Chaitanya

> (defun recursive-test (count)
>   (with-html-output-to-string (*standard-output*)
>     (if (< count 10)
>         (recursive-test (+ count 1)))
>     (str (format nil "Recursive count- ~A" count))))
> 
> (define-easy-handler (test-recursive :uri "/test.html" () 
>     (with-html-output-to-string (*standard-output*)
>       (str (recursive-test 0))))
> 
> 
> _______________________________________________
> tbnl-devel site list
> tbnl-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/tbnl-devel
> 


-- 
http://chaitanyagupta.com/blog/




More information about the Tbnl-devel mailing list