Fortran is great in expressing operations on multi-dimensional arrays of numbers. Scheme is great at expressing your coding thoughts. This project is an attempt to combine both into something useful.
Guile-Quickcheck is a library for random testing of program properties inspired by ghc-quickcheck. You can use it to express properties, which functions should satisfy, as Scheme code and then check whether they hold in a large number of randomly generated test cases.
Guile-Present defines a declarative vocabulary for presentations, together with tools to render presentation documents as SVG or PDF. Guile-Present can be used to make presentations programmatically, but also includes a tools to generate PDF presentations out of Org mode and Texinfo documents.
guile-scheme-lsp
is an implementation for Guile of the LSP specification. This software aims to support several Scheme implementations. To achieve this, the code is designed to contain as much logic as possible in R7RS Scheme, separating implementation-specific code in different directories.
guile-commonmark is a library for parsing CommonMark, a fully specified variant of Markdown. The library is written in Guile Scheme and is designed to transform a CommonMark document to SXML. guile-commonmark tries to closely follow the CommonMark spec, the main difference is no support for parsing block and inline level HTML.
MiniKanren is a relational programming extension to the Scheme programming Language, written as a smaller version of Kanren suitable for pedagogical purposes. It is featured in the book, The Reasoned Schemer, written by Dan Friedman, William Byrd, and Oleg Kiselyov.
This is Ian Price's r6rs packaged version of miniKanren, which deviates slightly from miniKanren mainline.
See http://minikanren.org/ for more on miniKanren generally.
Guile-Cairo wraps the Cairo graphics library for Guile Scheme. Guile-Cairo is complete, wrapping almost all of the Cairo API. It is API stable, providing a firm base on which to do graphics work. Finally, and importantly, it is pleasant to use. You get a powerful and well-maintained graphics library with all of the benefits of Scheme: memory management, exceptions, macros, and a dynamic programming environment.
The (file-names)
module provides tools for manipulating file names. The module was built on the idea that doing anything more than a non-trivial modification of a file name string is a pain (making sure all slashes are present and accounted for, resolving .
and ..
, etc). Inevitably, you have to break the string up into chunks and operate on that list of components. This module takes care of that for you.
G-Golf (Gnome: (Guile Object Library for)) is a library for developing modern applications in Guile Scheme. It comprises a direct binding to the GObject Introspection API and higher-level functionality for importing Gnome libraries and making GObject classes (and methods) available in Guile's object-oriented programming system, GOOPS.
Note: Currently, when developing with G-Golf in guix shell
, there is a grafts bug in Guix. To avoid it, use Guix' --no-grafts
option. Guix packages that use wrap-program
are unaffected.
Guile bindings to the GDBM key-value storage system, using Guile's foreign function interface.
Guile bindings to the GDBM key-value storage system, using Guile's foreign function interface.
This package provides tooling to write web applications in Guile, such as signed sessions, multipart message support, etc.
Guile-Charting is a Guile Scheme library to create bar charts and graphs using the Cairo drawing library.
guile-dbi is a library for Guile that provides a convenient interface to SQL databases. This package implements the interface for SQLite.
This package provides A Guile reader extension for `raw strings', it lets you write verbatim strings without having to escape double quotes.
This is an R6RS library for working with packed byte structures. It is similar to struct in Python or pack and unpack in Perl.
This module provides line editing support via the Readline library for GNU Guile. Use the (ice-9 readline)
module and call its activate-readline
procedure to enable it.
The GNU Shepherd is a daemon-managing daemon, meaning that it supervises the execution of system services, replacing similar functionality found in typical init systems. It provides dependency-handling through a convenient interface and is based on GNU Guile.
This package provides a functional parser combinator library that supports backtracking and a small logical framework. The idea is to build up chunks that are memoized and there is no clear scanner/parser separation, chunks can be expressions as well as simple tokens.
This package provides a complete Scheme implementation of miniAdapton, which implements the core functionality of the Adapton system for incremental computation (also known as self-adjusting computation). Like Adapton, miniAdapton allows programmers to safely combine mutation and memoization. miniAdapton is built on top of an even simpler system, microAdapton. Both miniAdapton and microAdapton are designed to be easy to understand, extend, and port to host languages other than Scheme.
Fibers is a Guile library that implements a a lightweight concurrency facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is like a "goroutine" from the Go language: a lightweight thread-like abstraction. Systems built with Fibers can scale up to millions of concurrent fibers, tens of thousands of concurrent socket connections, and many parallel cores. The Fibers library also provides Concurrent ML-like channels for communication between fibers.
Note that Fibers makes use of some Guile 2.1/2.2-specific features and is not available for Guile 2.0.
Guile-colorized provides you with a colorized REPL for GNU Guile.
This package adds support for the Guile Scheme implementation to Geiser, a generic Scheme interaction mode for the GNU Emacs editor.
This package adds support for the Guile Scheme implementation to Geiser, a generic Scheme interaction mode for the GNU Emacs editor.