Path: csiph.com!news.nrbbs.org!border-4.nntp.ord.giganews.com!nntp.giganews.com!local-4.nntp.ord.giganews.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Sun, 09 Aug 2026 23:09:08 +0000 From: steve g Newsgroups: comp.lang.lisp Subject: Re: Resources to learn common lisp? References: <110a9pp$ckmk$6@dont-email.me> <110nf0q$3vra6$3@dont-email.me> <87y0gg62cx.fsf@nightsong.com> <110rfqf$142ot$1@dont-email.me> <111ne5o$vsm3$3@dont-email.me> <111pbk6$36pi7$1@dont-email.me> <111sb7u$3ua8h$7@dont-email.me> <8fj54lpvg7v6mhi9r9u39tpojbjage8br4@4ax.com> <87mrwdyt0t.fsf@nightsong.com> <1127cho$34rpg$3@dont-email.me> <112o4aa$cpek$2@dont-email.me> <87jyqdtumj.fsf@gmail.com> <87bjbn2nhs.fsf@safunu.org> <877bm4zgsp.fsf@safunu.org> <1159f4c$26g2n$1@dont-email.me> <27256.23391.392575.398862@parhasard.net> Date: Sun, 09 Aug 2026 19:09:04 -0400 Message-ID: <87cxvqvqlr.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:LtngZnK4ofIbZ7EMh6oHeRTwhCs= MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Lines: 58 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-tAhU0IGgm2IusC63hFXXcvCXOLfagRoOhyeeLtC2HzOBbAFCNEFOu9L+jfQfW1jy+DY+1k/w1/uyY9v!H6TedgU+7hWMIV8n422iZKoySlwpmc3yjHR5ReiHhwI377k= X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 Xref: csiph.com comp.lang.lisp:61353 Jyyohann 'Myrkraverk' Oskarsson writes: > I've never really gotten the hang of when I need to use (gensym) and > and when I don't. If I ever reach those heights of Common Lisp arcana, > I may change my mind and use macros all the time. using macros to enhance performance is usually a bad idea. The macros save time. (macrolet ((def-optimize (name args &body forms) ;; Optimize a function for inlining. (assert (symbolp name)) `(progn (declaim (inline ,name)) (defun ,name ,args ;; these (declare (optimize speed (compilation-speed 0) (debug 1) (safety 2) (space 0))) ,@forms)))) (def-optimize list-length=1 (lst) (declare (list lst)) "Return T or nil if length of the list is one." (and (consp lst) (null (cdr lst))) )) I find this better than rewriting a bunch of code or implementing defsubst. Macros should not be an initial response. wait until you think you need them... IMHO > Chances are, I won't. I have this feeling that macros should be used as > a last resort, and not as the first /weapon of choice/ when coding Comm- > on Lisp. > >> Common Lisp is big and there’s plenty worth using in the rest of the >> language. >> > > Indeed, and QuickLisp makes it bigger. It's perhaps the major reason I > find myself faster at coding certain tasks in Common Lisp than most > other programming languages. Though packages of various types are now > commonplace in other common programming languages. > > Perhaps the major beauty of the Common Lisp social culture, is the disc- > ipline of keeping interfaces stable. As far as I've heard, the /Python- > ic/ interfaces are always in flux, perhaps because their Python is ever > writhing? It didn't help when they ditched the syntax of Python 2.7. > Many people whose code got obsolete decided never to use that language > again. And with good reason. > > Of course, cultures change, but Common Lisp is eternal. I'm sure we can > still code all of our websites with Hunchentoot without ever having the > need to learn something new, several hundred years from now. > > > Happy coding in Common Lisp!