From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: replacing a function with another one Date: Mon, 17 Mar 2014 13:00:31 +0100 Message-ID: <878us9rq5c.fsf@web.de> References: <87vbvofsi6.fsf@yun.yagibdah.de> <87bnxgs4r9.fsf@web.de> <87lhwj1cfz.fsf@yun.yagibdah.de> <87zjkz6vd5.fsf@web.de> <8738ir161u.fsf@yun.yagibdah.de> <87eh2b6nfm.fsf@web.de> <87r46anab5.fsf@yun.yagibdah.de> <87wqg2u77k.fsf@web.de> <87pplugjh6.fsf@yun.yagibdah.de> <8738ipd2kh.fsf@web.de> <87y50gj1uf.fsf@yun.yagibdah.de> <874n34ticd.fsf@web.de> <87bnxcrloa.fsf@web.de> <87vbvjmq0h.fsf@yun.yagibdah.de> <87siqmy39r.fsf@web.de> <878usbw890.fsf@yun.yagibdah.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1395057664 4363 80.91.229.3 (17 Mar 2014 12:01:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 17 Mar 2014 12:01:04 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Mar 17 13:01:10 2014 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WPWE9-0002Nx-0L for geh-help-gnu-emacs@m.gmane.org; Mon, 17 Mar 2014 13:01:09 +0100 Original-Received: from localhost ([::1]:57091 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPWE8-0007kL-LA for geh-help-gnu-emacs@m.gmane.org; Mon, 17 Mar 2014 08:01:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41059) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPWDt-0007ax-4D for help-gnu-emacs@gnu.org; Mon, 17 Mar 2014 08:00:59 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WPWDm-00032F-V8 for help-gnu-emacs@gnu.org; Mon, 17 Mar 2014 08:00:53 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:57082) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPWDm-000320-Oy for help-gnu-emacs@gnu.org; Mon, 17 Mar 2014 08:00:46 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WPWDk-0001xe-VA for help-gnu-emacs@gnu.org; Mon, 17 Mar 2014 13:00:44 +0100 Original-Received: from ip-90-186-250-125.web.vodafone.de ([90.186.250.125]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Mar 2014 13:00:44 +0100 Original-Received: from michael_heerdegen by ip-90-186-250-125.web.vodafone.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Mar 2014 13:00:44 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 30 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip-90-186-250-125.web.vodafone.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:rzMHHibGki+qr46xvhIuGDrNGP0= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:96551 Archived-At: lee writes: > Ah! Finally I understand what the difference is! What is the point of > having two variations of `let'? Both are useful. The standard `let' works similar to how arguments of a lambda expression are bound. If the expressions expr1, expr2, ... in a `let' form (let ((v1 expr1) (v2 expr2) ...) body) are side-effect free, the bindings of the `let' are interchangeable and independent from each other, which makes code easier to read in general. OTOH, `let*' provides the possibility to refer to bindings made earlier, which is often what you want. But to the cost that every binding may depend on prior bindings in the same `let*', which makes it harder to read. BTW, there is also a parallel setting operator named `psetq' or `cl-psetq' respectively. For example, to interchange the values bound to the variables a, b, you can do (psetq a b b a) Michael.