Path: csiph.com!news.nrbbs.org!border-4.nntp.ord.giganews.com!nntp.giganews.com!local-2.nntp.ord.giganews.com!Xl.tags.giganews.com!local-3.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Wed, 19 Aug 2026 01:35:42 +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> <87se4mquld.fsf@nightsong.com> <20260811131649.559@kylheku.com> Date: Tue, 18 Aug 2026 21:35:37 -0400 Message-ID: <87qzjuuc2e.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:M0J/SUOkOcVxze4tF3BnTumwazs= MIME-Version: 1.0 Content-Type: text/plain Lines: 34 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-PQedXpWvmv/vVCxyhYZ3lmpiYR9p+gtTrMspkVRhhziSPivq/d+gv+OQYM2O9LTWJM/9bAWB3pRTNnm!P84eA3Q/AGOWkK4pCEUjcMFxVKqkYXeAyz3NgcrdcA49txU= 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:61507 Kaz Kylheku <046-301-5902@kylheku.com> writes: > On 2026-08-10, Paul Rubin wrote: > Suppressing evaluation is not the same thing as delaying evaluation. > Macfros suppress evaluation so that the expression can be given an > arbitrary meaning. One such meaning could be that evaluation is delayed, > e.g. classic (delay
) macro, returning a promise. That's only a > small point in a large universe. if you start to combine quote and quasi-q suck like `(list ',@ ) it gets ugly but hygenic-macros and late evaluation is one of the best features about lisp macros. This one is from zerox building problem solvers. I use this all the time. The `defun will delay evaluation while the ,(gen ... ) will force it. Not to mention the variable capture. TeX reminds me of this, but it get too compilated for me... (defun generate-body-procedure (pattern var body) (let ((newly-bound (pattern-free-variables pattern)) env docstring) (when var (push var newly-bound)) (setq docstring (format nil "Body procedure when pattern: |~w| matches." pattern)) (setq body (with-pushed-variable-bindings newly-bound (fully-expand-body body)) env (append newly-bound (scratchout newly-bound *bound-vars*))) `(defun ,(generate-rule-procedure-name pattern "BODY") ,env ,docstring ,@body)))