From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: pukkamustard Newsgroups: gmane.lisp.guile.devel Subject: Re: Functional datatypes in Guile Date: Tue, 28 Feb 2023 08:22:35 +0000 Message-ID: <86bklenq75.fsf@posteo.net> References: <2682583.mvXUDI8C0e@t480s> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1301"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-devel@gnu.org To: Jessica Tallon Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Tue Feb 28 09:35:16 2023 Return-path: Envelope-to: guile-devel@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 1pWvS8-00008z-E4 for guile-devel@m.gmane-mx.org; Tue, 28 Feb 2023 09:35:16 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pWvRj-0003bj-ID; Tue, 28 Feb 2023 03:34:51 -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 1pWvRh-0003b8-6E for guile-devel@gnu.org; Tue, 28 Feb 2023 03:34:49 -0500 Original-Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pWvRf-0007TI-9d for guile-devel@gnu.org; Tue, 28 Feb 2023 03:34:48 -0500 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 4654B2404C8 for ; Tue, 28 Feb 2023 09:34:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1677573284; bh=6SvmQcSI29EiYt1YqkcDaaL8q4HWvZ4XqY/LB8/im74=; h=From:To:Cc:Subject:Date:From; b=AMrR70ISWjioJXN1HRlvYh+4Q0WwSOdPmesEn7QOuJI3YiL6c54TgcEuqLbLZmSBD gcL2OrXoT/1nywBT1Fs7eOrUcrFsg618lfziLUFb3voR3JsN9R3wI7cS7st2sx/K3o M8diAAyRO0CAzffnRwBpXRSsWc5I3f3C7NiisgZzQOY6gbiYgN5g5S3ywigpY5TSln Qy/U1RN9UHcInUbdsjwolpOXeMbOQgjVSQNzsREm9l9eOCkixpxmJidLlIAU9pLvtO gKkidcw5EbYgGIcTAfFoIPlM+VUG4uBNAVnAdAX5PWf3ID2YOPW+vSQZlcNZeUy1iq bSFBhj+nv/ysQ== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PQrJg4QNKz6tmK; Tue, 28 Feb 2023 09:34:43 +0100 (CET) In-reply-to: <2682583.mvXUDI8C0e@t480s> Received-SPF: pass client-ip=185.67.36.65; envelope-from=pukkamustard@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:21759 Archived-At: I've been using SRFI-146 (https://srfi.schemers.org/srfi-146/srfi-146.html) for functional mappings. There's a Guile port: https://inqlab.net/git/guile-srfi-146.git/ (also in Guix - guile-srfi-146). It would be nice to also have a Guile port of SRFI-113 (Sets and bags - https://srfi.schemers.org/srfi-113/srfi-113.html) and SRFI-217 (Integer Sets - https://srfi.schemers.org/srfi-217/srfi-217.html). For the integer sets, I believe there is some code already lurking deep down in Guile ((language cps intset)). These are all things that would be very nice to have distributed directly with Guile and I'd offer my help in upstreaming ports to Guile. I've previously used pfds (as mentioned by Maxime), but I've encountered some nasty issues that are keeping me from using it again (https://github.com/ijp/pfds/issues/5). -pukkamustard Jessica Tallon writes: > Hello, > > I've been thinking how it'd be nice to have available in Guile a number of > purely functional datatypes, these being hashmaps, vectors, and sets. I've > been wondering what folks have been using for these with the idea that we > could bring them into guile for ease of use. > > I know of Andy Wingo's fash[0] and fector[1]. What do folks like to use? > > Thanks, > Jessica. > > [0] https://wingolog.org/pub/fash.scm > [1] https://wingolog.org/pub/fector.scm