From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: Help with recursive destructive function Date: Thu, 07 Jun 2018 01:30:12 +0200 Message-ID: <87lgbr8pdn.fsf@web.de> References: <87efiqzzd2.fsf@ericabrahamsen.net> <87bmdu3mtf.fsf@web.de> <87zi1e9kju.fsf@web.de> <87o9hs3aht.fsf@ericabrahamsen.net> <87bmds9qcg.fsf@web.de> <87k1sg185t.fsf@ericabrahamsen.net> <044bdbf1-39a2-0e71-ec79-3d375d9109c8@gmail.com> <877eof1k7y.fsf@ericabrahamsen.net> <87wowe2sql.fsf@web.de> <877eoe2dma.fsf@ericabrahamsen.net> <87tvrgqnug.fsf@web.de> <87vabvbfrj.fsf@web.de> <87d0y30wkn.fsf@ericabrahamsen.net> <878t8mtiqz.fsf@web.de> <87vaayp4p8.fsf@ericabrahamsen.net> <87in6yw06e.fsf@web.de> <87wovbvd6y.fsf@ericabrahamsen.net> <877enba86p.fsf@web.de> <87vaavtvl5.fsf@ericabrahamsen.net> <87a7s7tst7.fsf@ericabrahamsen.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1528327745 10491 195.159.176.226 (6 Jun 2018 23:29:05 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 6 Jun 2018 23:29:05 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Eric Abrahamsen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jun 07 01:29:01 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fQhrQ-0002Ym-NB for ged-emacs-devel@m.gmane.org; Thu, 07 Jun 2018 01:29:00 +0200 Original-Received: from localhost ([::1]:55057 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fQhtW-0003S5-0D for ged-emacs-devel@m.gmane.org; Wed, 06 Jun 2018 19:31:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60205) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fQhsr-0003QN-8a for emacs-devel@gnu.org; Wed, 06 Jun 2018 19:30:30 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fQhsn-0001ac-V4 for emacs-devel@gnu.org; Wed, 06 Jun 2018 19:30:29 -0400 Original-Received: from mout.web.de ([212.227.15.4]:52693) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fQhsn-0001Ys-Il for emacs-devel@gnu.org; Wed, 06 Jun 2018 19:30:25 -0400 Original-Received: from drachen.dragon ([188.110.196.170]) by smtp.web.de (mrweb003 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MduO5-1fd1Ap0mq5-00PfI7; Thu, 07 Jun 2018 01:30:14 +0200 In-Reply-To: <87a7s7tst7.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Wed, 06 Jun 2018 16:10:28 -0700") X-Provags-ID: V03:K1:fRrAKcWB9TTMJAxXamBkbuQlsEIN3gCb1gQn2tsPhCY9r2jkRO5 ln0Usj3OF8G7cLOewNOf71twGQDmh6bXoak8MJHzJbVS3CseOo0lq+ByANlC1XIct52U3KC fFgTJp+Dh5PMYMpp6B7N/1+qcuuJhwcTcAZNbpJgFBVprKcSjOD0NPLIFL5qITZkJWbRdhW edcRWhUPJGjvwR137jSZw== X-UI-Out-Filterresults: notjunk:1;V01:K0:hYhGTZi5mVU=:6vMhqQ6+dddElxJFuKYdmB Q4p6zlD7Y2s3H8ZhZMQyNK6WVh/AOefEqmQ0AeId4zGgheVs8r6CjZLVH66Q6BDvJweSi9C/5 Zp3bUOpaA1Fpa0jSUZ2u8wKE0Kcb6Y6NkvEqJh2uKG9C4vbReQQ7nzU8Bsxt1WZ1sUkz9WGUJ CLpWzHUH3sc9uddcW087ywzwTF8k5hx+UpqDsvelDaRD4yxZnrE9iiS8SugTPfIvtV5YLIK3D Ara2V30h85BhbdB+VA+aIWVLcSIbfDYRpPdRhyQ8x96b+L0rfxePyR31GmycKuMgWkU3OgE1q g1oFVyY5Zg8l4t7S+9W0KzhQVtyh/KXBNQG3KQTo77KBtQA5qqtvXAXFcP5qsT+QuHserztb3 8RNtJE8mxEgAeXQttfbasWxa6UZ7K6AcBBIXQnJW0Ja/6JZ1FO71mMzAYHcFdorzZqYZjp8d4 /3k8soki6OB0E9gBGNOv4CYQ/gnPYYEP+g/B1iZj07C0CC4ML5ovRiiuKYZP3j9WoD3pjz6PY 3Fo1fkVl5nc1UjMnlOAHZVA/ZGrSSjqtwBTuovGAqHTsXhz2OczDQw3my6DLnLHbxs18j1SIG TqPZQPamo6Ahk98ANgSrhjweyQzytJC/Iszu68d6u5Ve6JfjnWAhms4E8+SNvIxJg892zevs+ Rv2U44bgrWMF3S42nR/+lxv8zhrGOX96UjnbZPe2lZy4CRtuGVwzc5R+lwBnxW4LqY0uzfsCs InyDMkJuzCVc2UVcL31DSoFWy/Gl0Oxm5vSZheRa1kBEz+P2A9BsHskfnyGv5kFpNxxqGoRy X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.4 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:226085 Archived-At: Eric Abrahamsen writes: > - It is recursive (on car) instead of iterative. Yes, that's not good in your use case. > - It destructively replaces elements based on an alist lookup: if an > element matches an alist key, it's replaced with the alist value. It also handles only lists - it can't traverse arrays, hash tables, structs, etc. If you give that all up, however, `cl-sublis' is the canonical thing you get. Note that "destructively" doesn't necessarily mean you can reuse the original structure (which is what you want). In this case the implementation seems to guarantee that, however. Michael.