From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Pascal J. Bourguignon" Newsgroups: gmane.emacs.help Subject: Re: What does "lacks a prefix" mean? Date: Fri, 10 Jul 2015 02:49:25 +0200 Organization: Informatimago Message-ID: <87a8v4q1ka.fsf@kuiper.lan.informatimago.com> References: <1e0ad02f-ca3e-495c-bb85-61f77090d31d@googlegroups.com> <87bnfmqzn2.fsf@kuiper.lan.informatimago.com> <87io9ui67a.fsf@nl106-137-147.student.uu.se> > > NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1436489432 18487 80.91.229.3 (10 Jul 2015 00:50:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 10 Jul 2015 00:50:32 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Jul 10 02:50:18 2015 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 1ZDMW9-00083H-Kx for geh-help-gnu-emacs@m.gmane.org; Fri, 10 Jul 2015 02:50:17 +0200 Original-Received: from localhost ([::1]:42450 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZDMW9-0002Q9-2f for geh-help-gnu-emacs@m.gmane.org; Thu, 09 Jul 2015 20:50:17 -0400 Original-Path: usenet.stanford.edu!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 42 Original-X-Trace: individual.net ncV6k4WAAjXxs8ZoqILejAxswvDtzM5YXkZcZHRArbgdVXLkcp Cancel-Lock: sha1:MmM2ZWEzNGNlMjkyZjNhODYwZTA0YzBmMGNkNjJjNWM3NWQ3MmE4Ng== sha1:r3Csvdl52RXJTCUG++8mWM6rsWE= Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Original-Xref: usenet.stanford.edu gnu.emacs.help:213286 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:105573 Archived-At: Drew Adams writes: >> > And non-parallelizable theoretically :) >> >> Regular let isn't parallelizable. It specifies that the value >> expressions are evaluated in order. >> >> The only difference between the two is the environment within which >> later expressions are evaluated. > > FWIW, Common Lisp specifies that "let performs the bindings > in parallel and let* does them sequentially." > > That is theoretical, just a restatement that `let' bindings > are independent. But it means that yes, they *could* be > evaluated in parallel (because they are independent). IF they are independent, and notably IF they are side effect free. (let ((i 0)) (cons (let ((i 42) (a (print (incf i))) (b (print (incf i))) (c (print (incf i)))) (list i a b c)) i)) prints: 1 2 3 --> ((42 1 2 3) . 3) Here, there's now way the initialization expressions in the inner let be evaluated in parallel. The left-to-right evaluation order is imperative, because of the side effects. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk