Path: csiph.com!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: tpeplt@gmail.com Newsgroups: comp.lang.lisp Subject: Re: Writing HG LISP in Python, kind of Date: Wed, 24 Sep 2025 14:59:05 -0400 Organization: A noiseless patient Spider Lines: 37 Message-ID: <87zfajad8m.fsf@gmail.com> References: <87ms6lc6jw.fsf@parhasard.net> <10b0cks$3i6j6$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 24 Sep 2025 18:59:06 +0000 (UTC) Injection-Info: dont-email.me; posting-host="50d14dae6fbd920fa3dad8f032c3f8e2"; logging-data="4051962"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19wbadUdP/Y+aQUEqxZL/zzKhRYPtEdZ2s=" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:na6V2OS5T4neSeS6hsycIcW1NKs= sha1:OabRIv+G6/u2i6jD3Ba72hbQqPw= Xref: csiph.com comp.lang.lisp:60718 Madhu writes: >> >> That’s an implementation issue, which is irrelevant to the way the >> language works. Python lets you write >> >> a, b = b, a >> >> as an easy way to swap the values of variables, for example. > > What does this non-sequitur have to do with bindings (either > destructuring or multiple values)? > > Mutation of bindings is handled in lisp through generalized references > ("places") in a uniform way. > > (let ((a 10) (b 20)) (rotatef a b) (list a b)) > > https://www.lispworks.com/documentation/HyperSpec/Body/m_shiftf.htm > https://www.lispworks.com/documentation/HyperSpec/Body/05_a.htm > Did you mean to reference the documentation for ROTATEF? ‘m_shiftf.htm’ is the page that documents the macro SHIFTF. ‘m_rotatef.htm’ is the page that documents the macro ROTATEF. At the www.ai.mit.edu website, they have expanded the ‘m_’ to ‘mac_’ to provide a longer hint that a page documents a macro: http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/mac_rotatef.html -- The lyf so short, the craft so long to lerne. - Geoffrey Chaucer, The Parliament of Birds.