{"id":18386800,"url":"https://github.com/usaoc/elisp-for","last_synced_at":"2025-04-07T00:33:31.275Z","repository":{"id":48431794,"uuid":"516753863","full_name":"usaoc/elisp-for","owner":"usaoc","description":"Racket-inspired iteration and sequence forms for Elisp","archived":false,"fork":false,"pushed_at":"2024-06-20T05:41:20.000Z","size":534,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-22T10:11:46.771Z","etag":null,"topics":["elisp","emacs","emacs-lisp"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/usaoc.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-22T13:06:41.000Z","updated_at":"2025-02-26T22:41:35.000Z","dependencies_parsed_at":"2024-06-20T17:11:52.350Z","dependency_job_id":null,"html_url":"https://github.com/usaoc/elisp-for","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usaoc%2Felisp-for","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usaoc%2Felisp-for/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usaoc%2Felisp-for/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usaoc%2Felisp-for/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usaoc","download_url":"https://codeload.github.com/usaoc/elisp-for/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247574088,"owners_count":20960495,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elisp","emacs","emacs-lisp"],"created_at":"2024-11-06T01:23:26.324Z","updated_at":"2025-04-07T00:33:30.953Z","avatar_url":"https://github.com/usaoc.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Copyright (C) 2022 Wing Hei Chan\n\n# Copying and distribution of this file, with or without modification,\n# are permitted in any medium without royalty provided the copyright\n# notice and this notice are preserved.  This file is offered as-is,\n# without any warranty.\n\n#+title: For\n\n[[https://melpa.org/#/for][file:https://melpa.org/packages/for-badge.svg]]\n[[https://stable.melpa.org/#/for][file:https://stable.melpa.org/packages/for-badge.svg]]\n\nFor is an Emacs Lisp extension package that provides iteration and\nsequence forms inspired by Racket.  For detailed documentation, refer\nto [[https://usaoc.github.io/elisp-for/][the manual]].\n\n* Introduction\n  [[https://racket-lang.org/][Racket]], extending on the idea of [[https://srfi.schemers.org/srfi-42/srfi-42.html][SRFI 42]], provides [[https://docs.racket-lang.org/reference/for.html][iteration]] and\n  [[https://docs.racket-lang.org/reference/sequences.html][sequence]] forms that are both efficient and generic.  The iteration\n  forms essentially expand to calls to self-tail-recursive procedures,\n  similar to [[https://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-10.html][~do~ and named ~let~ forms]].  The sequence constructors\n  serve a twofold purpose, acting both as [[https://docs.racket-lang.org/reference/Macros.html][transformers]] and normal\n  procedures.  This package aims to implement a subset of the\n  functionalities of Racket's iteration and sequence forms.  For those\n  looking for iteration forms closer to [[http://www.lispworks.com/documentation/HyperSpec/Body/06_a.htm][the Common Lisp Loop Facility]],\n  [[https://www.gnu.org/software/emacs/manual/html_node/cl/Loop-Facility.html][also available in Emacs Lisp]], [[https://github.com/okamsn/loopy][Loopy]] is a better option that provides\n  iteration forms in the same vein as [[https://iterate.common-lisp.dev/][Iterate]].\n\n* How to Use\n  This package can be installed through the user's package manager of\n  choice, such as the built-in [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html][package manager]] or [[https://github.com/radian-software/straight.el][Straight]].  A\n  [[file:Makefile][=Makefile=]] is provided for those who manually install the package,\n  where targets are available for compiling the Emacs Lisp files,\n  building the documentation, as well as running the test suites.\n\n  If only the iteration forms and sequence expanders are used, it is\n  recommended that the [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Named-Features.html][named feature]] ~for~ be available only [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Eval-During-Compile.html][at\n  compile time]], otherwise the named feature must also be available\n  at execution time.  [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Shorthands.html][Shorthands]] may be useful for those who use the\n  sequence generators.\n\n  Although it is not a must, it is recommended that [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Variable-Scoping.html][lexical binding]] be\n  enabled, as this package is designed and optimized for such usage.\n\n  This package requires minimally Emacs 28.1.\n\n* Contribute\n  [[https://github.com/usaoc/elisp-for/issues][Submit an issue]] for bug reports and general discussion.  [[https://github.com/usaoc/elisp-for/pulls][Submit a\n  pull request]] for patches.  Otherwise, [[mailto:whmunkchan@outlook.com][send an email]] with patches\n  attached if any.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusaoc%2Felisp-for","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusaoc%2Felisp-for","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusaoc%2Felisp-for/lists"}