From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.devel Subject: Re: can `shuffle-vector' be moved? Date: Fri, 13 May 2011 00:00:53 -0600 Message-ID: References: <87pqnny9lk.fsf@lifelogs.com> <87fwojw91r.fsf@lifelogs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1305266716 18344 80.91.229.12 (13 May 2011 06:05:16 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 13 May 2011 06:05:16 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri May 13 08:05:13 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QKlUu-0002Eq-GW for ged-emacs-devel@m.gmane.org; Fri, 13 May 2011 08:05:12 +0200 Original-Received: from localhost ([::1]:38318 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QKlUt-0003PW-VW for ged-emacs-devel@m.gmane.org; Fri, 13 May 2011 02:05:11 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:40975) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QKlUr-0003PG-TI for emacs-devel@gnu.org; Fri, 13 May 2011 02:05:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QKlUq-00030X-Q2 for emacs-devel@gnu.org; Fri, 13 May 2011 02:05:09 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:34760) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QKlUq-00030Q-J2 for emacs-devel@gnu.org; Fri, 13 May 2011 02:05:08 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QKlUo-0002Ch-Rd for emacs-devel@gnu.org; Fri, 13 May 2011 08:05:06 +0200 Original-Received: from c-71-237-25-24.hsd1.co.comcast.net ([71.237.25.24]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 13 May 2011 08:05:06 +0200 Original-Received: from kevin.d.rodgers by c-71-237-25-24.hsd1.co.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 13 May 2011 08:05:06 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 39 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: c-71-237-25-24.hsd1.co.comcast.net User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 In-Reply-To: <87fwojw91r.fsf@lifelogs.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:139347 Archived-At: On 5/12/11 9:53 PM, Ted Zlatanov wrote: > On Fri, 13 May 2011 10:03:57 +0800 Leo wrote: > > L> On 2011-05-13 03:58 +0800, Ted Zlatanov wrote: >>> Also this loop call from Pascal Bourguignon is a nice CL alternative to >>> `shuffle-vector', though it uses the same algorithm: >>> >>> (defun shuffle (vector) >>> "Re-orders randomly the vector." >>> (loop >>> for i from (1- (length vector)) downto 1 >>> do (rotatef (aref vector i) (aref vector (random i))))) >>> >>> Can it go into cl-macs.el? > > L> We should have one version and not in cl-macs.el. > > Why? There are many functions in cl-macs.el that have analogues in > plain ELisp. If anything I would drop `shuffle-vector' :) > > L> `shuffle' is not in common lisp. > > I didn't say it was. cl-macs.el is not Common Lisp by any means and IMO > should not be treated as a clone of it. From cl-macs.el: ;; These are extensions to Emacs Lisp that provide a degree of ;; Common Lisp compatibility, beyond what is already built-in ;; in Emacs Lisp. ... ;; This file contains the portions of the Common Lisp extensions ;; package which should be autoloaded, but need only be present ;; if the compiler or interpreter is used---this file is not ;; necessary for executing compiled code. -- Kevin Rodgers Denver, Colorado, USA