From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Heime via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Using hash table to apply command sequence with arguments Date: Mon, 25 Nov 2024 12:05:34 +0000 Message-ID: Reply-To: Heime 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="39325"; mail-complaints-to="usenet@ciao.gmane.io" To: Heime via Users list for the GNU Emacs text editor Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Nov 25 13:06:35 2024 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 1tFXrO-000A2S-R5 for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 25 Nov 2024 13:06:34 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tFXqa-000118-Jg; Mon, 25 Nov 2024 07:05:44 -0500 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 1tFXqX-00010Z-51 for help-gnu-emacs@gnu.org; Mon, 25 Nov 2024 07:05:42 -0500 Original-Received: from mail-43167.protonmail.ch ([185.70.43.167]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tFXqV-0008Q5-Fn for help-gnu-emacs@gnu.org; Mon, 25 Nov 2024 07:05:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1732536336; x=1732795536; bh=3qoXp8XTIbz80vJa1c//zp840uj2KFbT/pS6s2khtWw=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector: List-Unsubscribe:List-Unsubscribe-Post; b=Tv1UuUoFsTpch7puVHhmS0PrxGm1/b9cjgX7/zCPdl8P8JlZ1gLnRhL5G682CJR1P hfrFGo9qu4rjM8jH2Ck08Csa57b3tv4MFkSts04GNRrB0Ng5U3O8Esx7wfiSQd66XP fj7bhkQrIp1irfeDLEipPmBCmiKDYuhvpw+T0Gw2VtkclF3X12bBp7FAvmMmLiaStD Af5MYWXcSgyffd4cNtCvLuEHjcnqKY4aH/CXM4bRP/w2oQcXmnTbCV9lOqSYvjgT1V DipCcnNUiuJJxl81QJOuwa6556wvls7qQ+vowu/zsHkzzTpiwgxUQryFvqdrNrASAE aQxVP5a1lNmtQ== Feedback-ID: 57735886:user:proton X-Pm-Message-ID: a25a13420a566632b98db320f772e09b1f63fd81 Received-SPF: pass client-ip=185.70.43.167; envelope-from=heimeborgia@protonmail.com; helo=mail-43167.protonmail.ch X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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:148388 Archived-At: How can use a hash table to execute a sequence of commands,=20 possibly with arguments. Here I am decoupling the action=20 from the conditions. Would this be a good strategy? (defun fpln-test (actm-service) (let ((actm-table (make-hash-table :test 'eq))) ;; Put entry to actm-table (puthash 'armg (lambda () (alkotr-ar ar) (alkotr-af af))) actm-table) ;; Put entry to actm-table (puthash 'go (lambda () (require 'alkotr) (alkotr-ignition gf)) actm-table) ;; Map values from collection with lookup from hash table (mapc (lambda (actm) (let ((action (gethash actm actm-table))) (if action (funcall action) (message "[marshal-falkotr]\n%s%s\n" " =E2=94=94=E2=94=80=E2=94=80 ACTM Unrecognised:"= "'" actm)))) actm-service)))