Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/usaoc/gref
Generalized references for Racket
https://github.com/usaoc/gref
racket racket-library
Last synced: 29 days ago
JSON representation
Generalized references for Racket
- Host: GitHub
- URL: https://github.com/usaoc/gref
- Owner: usaoc
- Created: 2023-01-19T04:37:35.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-09-05T01:03:34.000Z (over 1 year ago)
- Last Synced: 2024-12-15T02:02:58.762Z (about 1 month ago)
- Topics: racket, racket-library
- Language: Racket
- Homepage:
- Size: 250 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
# Copyright (C) 2022 Wing Hei Chan
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.#+title: Gref
Gref is a proof-of-concept implementation of generalized references
for Racket. For detailed documentation, refer to [[https://docs.racket-lang.org/gref/index.html][the reference]].* Introduction
As commonly known by Lispers, generalized references are infamously
present in many Lisp systems, most notably [[http://www.lispworks.com/documentation/HyperSpec/Body/05_a.htm][Common Lisp]] with its
magical modify macros such as [[http://www.lispworks.com/documentation/HyperSpec/Body/m_setf_.htm][~setf~]]. They not only serve practical
purposes, but also showcase powerful capabilities of syntactic
abstraction, [[https://docs.racket-lang.org/guide/macros.html][at which Racket excels]]. Nonetheless, those with a
functional mind might prefer functional references even more
infamously present in [[https://en.wikibooks.org/wiki/Haskell/Lenses_and_functional_references][Haskell]], for which see [[https://github.com/jackfirth/lens][Lens]] and [[https://github.com/jackfirth/glass][Glass]].* How to Use
This library can be installed through [[https://docs.racket-lang.org/pkg/index.html][the Racket package manager]].
The main entry points are the ~gref/base~ and ~gref/syntax~ modules
respectively for base functionalities and syntactic extensions, and
the ~gref~ module combines these modules.This library is split into the following packages:
- [[file:gref-doc/][=gref-doc=]] provides the documentation;
- [[file:gref-lib/][=gref-lib=]] provides the implementation;
- [[file:gref-test/][=gref-test=]] provides the tests;
- [[file:gref/][=gref=]] combines the non-test packages.* Contribute
[[https://github.com/usaoc/gref/issues][Submit an issue]] for bug reports and general discussion. [[https://github.com/usaoc/gref/pulls][Submit a
pull request]] for patches. Otherwise, [[mailto:[email protected]][send an email]] with patches
attached if any.