From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: uzibalqa Newsgroups: gmane.emacs.help Subject: Re: Swapping characters in a word inside elisp code Date: Fri, 28 Jul 2023 19:44:02 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3390"; mail-complaints-to="usenet@ciao.gmane.io" Cc: uzibalqa via Users list for the GNU Emacs text editor To: uzibalqa Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jul 28 21:59:01 2023 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qPTc4-0000gA-TU for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 28 Jul 2023 21:59:01 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qPTNs-0000nl-N6; Fri, 28 Jul 2023 15:44:20 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qPTNr-0000nd-8V for help-gnu-emacs@gnu.org; Fri, 28 Jul 2023 15:44:19 -0400 Original-Received: from mail-40132.protonmail.ch ([185.70.40.132]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qPTNo-0003lH-UB for help-gnu-emacs@gnu.org; Fri, 28 Jul 2023 15:44:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail; t=1690573453; x=1690832653; bh=MAJRMo9sb/NfGo2KPZ64y5WdZiasWjJzKA41w6P5R4w=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=lbbhA7SXsb55ziLFM5Th4TleeIY236e59WxF5O1fmwWsLaW+MesxsznAiezzg6SLG vyYY9nOqVsycI/WuCRc2GIveusl3CGJ9nIFjMtbUnrmtP3ak4w3BV5UI+WDneAttx4 RWPcRLVv500uVsvvynoS1n1KN/IpuvSmXils1Jid9p/AyGSepFN70DT7mohUsufPmM /hszkaPIAvvd+f1oRXU+RcxmVyzV1VAvtX5rQpFHXBKgSaihb+S07EMvrZSVUARnB5 Vd1Jis8ZnzbffszrA6AeL0DHZRzuZbDqjMa5AbgZ60+2LOlnkhQHFYx5nN/935QKKR cuGh7oOd99Acw== In-Reply-To: Feedback-ID: 52887082:user:proton Received-SPF: pass client-ip=185.70.40.132; envelope-from=uzibalqa@proton.me; helo=mail-40132.protonmail.ch X-Spam_score_int: -8 X-Spam_score: -0.9 X-Spam_bar: / X-Spam_report: (-0.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TO_EQ_FM_DIRECT_MX=1.227, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:144486 Archived-At: Sent with Proton Mail secure email. ------- Original Message ------- On Saturday, July 29th, 2023 at 6:03 AM, uzibalqa wrot= e: > I have a word and want to swap characters at position i with position j. >=20 > What would be a good way to do this ? Would I need to change structure > (to array, vector or some other thing) ? =20 I have done it this way, but it fails when p > q=20 How can I solve this ? (defun cswap (wstr p q) "Replace characters in WSTR at positions P and Q." (let ( (char1 (elt wstr p)) (char2 (elt wstr q)) ) (if (and char1 char2) (concat (substring wstr 0 p) (char-to-string char2) (substring wstr (+ p 1) q) (char-to-string char1) (substring wstr (+ q 1)))) ))