newLISP Fan Club

Forum => newLISP newS => Topic started by: j.kalsbach on January 24, 2005, 04:18:54 AM

Title: EBook: Practical Common Lisp
Post by: j.kalsbach on January 24, 2005, 04:18:54 AM
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");; 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/")

            (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
Title:
Post by: HPW on January 24, 2005, 05:04:49 AM
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!
Title:
Post by: Lutz on January 24, 2005, 05:19:28 AM
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