Subject: gnu: packages: Add guile-simple-iterators.

From: "J. Sims" <[email-masked]>
Date: Thu, 26 Jan 2023 03:16:15 +0000

Hello,

guile-simple-iterators is a collection of macros to provide iteration inspired by Racket in Guile. I use them and find them delightful, so I thought other Guix users would appreciate ready access to them.

Thanks,
Juli

From 654847381613f558d80ad8fffb89b1361181d724 Mon Sep 17 00:00:00 2001
From: Juliana Sims <[email-masked]>
Date: Wed, 25 Jan 2023 21:07:54 -0600
Subject: [PATCH] gnu: packages: Add guile-simple-iterators.

* gnu/packages/guile-xyz.scm (guile-simple-iterators): Add guile-simple-iterators.
---
 gnu/packages/guile-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 0befff1576..340b2824c2 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2600,6 +2600,41 @@ (define-public guile-lib
     ;; details.
     (license license:gpl3+)))
 
+(define-public guile-simple-iterators
+  (let ((commit "50f16a2b2aa57e657e52e19fb3c35bdc182cfa36")
+        (revision "0"))
+    (package
+      (name "guile-simple-iterators")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url
+                       "https://gitlab.com/dustyweb/guile-simple-iterators")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1m1wirlnfwmp5a4rpszd5qsbwabz4ji033w6p2714p1r524ylah8"))))
+      (build-system guile-build-system)
+      (native-inputs (list guile-3.0))
+      (home-page "https://gitlab.com/dustyweb/guile-simple-iterators")
+      (synopsis "Simple iterators for Guile")
+      (description
+       "This is a collection of iteration macros for Guile. They are inspired by
+@code{racket}'s family of iterators. Specifically, the following iterators are
+available:
+@itemize
+@item @code{for}
+@item @code{for/map}
+@item @code{for/c}
+@item @code{for/fold}
+@item @code{for/fold-right}
+@item @code{for/folder}
+@item @code{folder}
+@end itemize")
+      (license license:expat))))
+
 (define-public guile2.0-lib
   (package
     (inherit guile-lib)

base-commit: a84ceaa8b2e8e121957afea1d1d3fe7c8141cb8d
-- 
2.39.1