EBook: Practical Common Lisp

Started by j.kalsbach, January 24, 2005, 04:18:54 AM

Previous topic - Next topic

j.kalsbach

Hello,



I found a good ebook about common lisp. Practical Common Lisp by Peter Seibel



Here is some code to fetch the files:



;;CONFIG

(setq proxy "") ;;"http://proxy.intra.mlsystems.de:8080">http://proxy.intra.mlsystems.de:8080");; your proxy or null-string

(setq lroot "d:/software/practical common lisp/") ;; where to store the files

;;CONFIG END

(env "HTTP_PROXY" proxy)

(define (get-pcl)

    (letn  ((root "http://www.gigamonkeys.com/book/">http://www.gigamonkeys.com/book/")

            (files( filter (lambda(x)

                             (regex ".html'" x ))

                           (parse (get-url root) "=|>" 0))))

           (println "get "  lroot "index.html")

           (device (open (string lroot "index.html") "write"))

           (println (get-url root))

           (close (device))

           (dolist (afile files)

             (let ((fname (trim afile "'")))

               (println "get " (string lroot fname))

               (device (open (string lroot fname ) "write"))

               (println (get-url (string root fname)))

               (close (device))))))

 



Regards,



Jörg

HPW

#1
It's not only a ebook, it's the web preview of a real book.

You can preorder on amazon. (As I did)

I think it is worth to get a place on the lisp-book-shelf.



I asked Peter Seibel if he wants to mention newLISP somewhere

in his book, but he was not sure if newLISP would fit in there.

(No more language wars)



So wait and see!
Hans-Peter

Lutz

#2
Thanks for the tip and the program.

Here a small improvement, you could replace:



(device (open (string lroot "index.html") "write"))

(println (get-url root))

(close (device))



with the shorter:



(write-file (string lroot "index.html") (get-url root))



Lutz