From patchwork Thu Jun 8 15:14:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "ashish.is--- via Guix-patches\" via" X-Patchwork-Id: 50766 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 7697527BBEA; Thu, 8 Jun 2023 16:18:20 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id BECC627BBEC for ; Thu, 8 Jun 2023 16:18:17 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q7HOu-0003Yn-Mr; Thu, 08 Jun 2023 11:18:12 -0400 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 1q7HOm-0002vP-4o for guix-patches@gnu.org; Thu, 08 Jun 2023 11:18:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q7HOk-0000c0-9x for guix-patches@gnu.org; Thu, 08 Jun 2023 11:18:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1q7HOk-0002kh-3k for guix-patches@gnu.org; Thu, 08 Jun 2023 11:18:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#63955] [PATCH 1/5] utils: Add insert-before. References: <20230607171353.8445-1-wurt@wurtshell.com> In-Reply-To: <20230607171353.8445-1-wurt@wurtshell.com> Resent-From: wurt@wurtshell.com Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 08 Jun 2023 15:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63955 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 63955@debbugs.gnu.org Cc: Carlos =?utf-8?b?RHVyw6FuIERvbcOtbmd1ZXo=?= Received: via spool by 63955-submit@debbugs.gnu.org id=B63955.168623743110406 (code B ref 63955); Thu, 08 Jun 2023 15:18:02 +0000 Received: (at 63955) by debbugs.gnu.org; 8 Jun 2023 15:17:11 +0000 Received: from localhost ([127.0.0.1]:57213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q7HNv-0002hj-CQ for submit@debbugs.gnu.org; Thu, 08 Jun 2023 11:17:11 -0400 Received: from mail.wurtshell.com ([141.94.77.195]:36076 helo=wurtshell.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q7HNn-0002gY-LK for 63955@debbugs.gnu.org; Thu, 08 Jun 2023 11:17:07 -0400 Received: from localhost.localdomain (unknown [IPv6:2a0c:5a80:8000:bb00:e206:e6ff:fe9a:ab42]) by wurtshell.com (Postfix) with ESMTPSA id E70D1605F3; Thu, 8 Jun 2023 15:16:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wurtshell.com; s=mail; t=1686237417; bh=DZX35Vhh7SLMaIdU+kPsmpOMEsThFpeCMQCUBICz8rk=; h=From:To:Cc:Subject:Date:From; b=oFvjAPPQpwz8vSNsMJ9TTQ84qpexeGkKq1FPb118HcQSpTqlP+GX/Gok/eWO4XBy4 5Kpi1ZqB2LTWcQmOngYIXNybynmxryBXt+oXTeGoXZ2si1jEZbN0y9DTBWn82r/w9f 03qtc8V7kEgV0+RSoqG3WLhDll/jmw2H0RMm/vP18kGVDk0ve1UBKVsap+mmmTfDZQ XlEnDffgJVelnO99eIpoM/rbGvWlPSvD2JMaxmd3vrurTIX88EO97g3VE6fEwdxKWy /whzg2jHNGwlQsaSOm4qz9na3YvZt+17mVd9Dm1TeHdpJdcOb93tgk6m235597Kl/7 sGdlZgw+HqezA== Date: Thu, 8 Jun 2023 17:14:35 +0200 Message-Id: <20230608151438.1280-1-wurt@wurtshell.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: wurt@wurtshell.com X-ACL-Warn: , wurt--- via Guix-patches X-Patchwork-Original-From: wurt--- via Guix-patches via From: "ashish.is--- via Guix-patches\" via" Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches From: Carlos Durán Domínguez --- guix/utils.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/guix/utils.scm b/guix/utils.scm index b9657df292..5773b55116 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2022 Denis 'GNUtoo' Carikli ;;; Copyright © 2022 Antero Mejr ;;; Copyright © 2023 Philip McGrath +;;; Copyright © 2023 Carlos Durán Domínguez ;;; ;;; This file is part of GNU Guix. ;;; @@ -149,7 +150,9 @@ (define-module (guix utils) string-distance string-closest - pretty-print-table)) + pretty-print-table + + insert-before)) ;;; @@ -1128,6 +1131,19 @@ (define* (string-closest trial tests #:key (threshold 3)) #f +inf.0 tests))) + +;;; +;;; List modification. +;;; + +(define (insert-before pred lst1 lst2) + "Return a list appending LST2 just before the first element on LST1 that + satisfy the predicate PRED." + (cond + ((null? lst1) lst2) + ((pred (car lst1)) (append lst2 lst1)) + (else (cons (car lst1) (insert-before pred (cdr lst1) lst2))))) + ;;; ;;; Prettified output.