From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: mutate list by appending a list (and similar for props) Date: Thu, 18 Sep 2014 19:44:38 -0400 Message-ID: References: <3710b1bf-1e23-4147-b6ea-40c360fb16b4@googlegroups.com> <82917bd2-a3dc-4521-b1d3-45680b0a4402@googlegroups.com> <874mw4zx7m.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1411084257 13467 80.91.229.3 (18 Sep 2014 23:50:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 18 Sep 2014 23:50:57 +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 Sep 19 01:50:52 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 1XUlTO-00020k-Ny for geh-help-gnu-emacs@m.gmane.org; Fri, 19 Sep 2014 01:50:50 +0200 Original-Received: from localhost ([::1]:54752 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUlTN-0008SC-Pi for geh-help-gnu-emacs@m.gmane.org; Thu, 18 Sep 2014 19:50:49 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44870) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUlNr-0006ms-Vz for help-gnu-emacs@gnu.org; Thu, 18 Sep 2014 19:45:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XUlNk-0003nw-GB for help-gnu-emacs@gnu.org; Thu, 18 Sep 2014 19:45:07 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:58113) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUlNk-0003mv-Ae for help-gnu-emacs@gnu.org; Thu, 18 Sep 2014 19:45:00 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1XUlNc-0000b5-SL for help-gnu-emacs@gnu.org; Fri, 19 Sep 2014 01:44:52 +0200 Original-Received: from 69-165-145-6.dsl.teksavvy.com ([69.165.145.6]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 19 Sep 2014 01:44:52 +0200 Original-Received: from monnier by 69-165-145-6.dsl.teksavvy.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 19 Sep 2014 01:44:52 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 20 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 69-165-145-6.dsl.teksavvy.com User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) Cancel-Lock: sha1:9ja3WtKBX/not1R2EJS4cMFdLo0= 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:100016 Archived-At: > (define-modify-macro appendf (&rest args) append "Append onto list") With GV, this would be (defmacro sm-appendf (place &rest args) (gv-letplace (getter setter) place (funcall setter `(append ,getter ,@args)))) > (defun prepend (dest-list &rest other-lists) > (apply (function append) (append other-lists (list dest-list)))) > (define-modify-macro prependf (&rest args) prepend "Prepend to list") Which with GV would turn into (defmacro sm-appendf (place &rest args) (gv-letplace (getter setter) place (funcall setter `(append ,@args ,getter)))) -- Stefan