Scheme lacks a flexible way to create and apply curried procedures. This SRFI describes curried, a variant of lambda that creates true curried procedures which also behave just like ordinary Scheme procedures. They can be applied to their arguments one by one, all at once, or anywhere in between, without any novel syntax. curried also supports nullary and variadic procedures, and procedures created with it have predictable behavior when applied to surplus arguments.
This SRFI defines two disjoint immutable container types known as Maybe and Either, both of which can contain objects collectively known as their payload. A Maybe object is either a Just object or the unique object Nothing (which has no payload); an Either object is either a Right object or a Left object. Maybe represents the concept of optional values; Either represents the concept of values which are either correct (Right) or errors (Left).
This SRFI defines two disjoint immutable container types known as Maybe and Either, both of which can contain objects collectively known as their payload. A Maybe object is either a Just object or the unique object Nothing (which has no payload); an Either object is either a Right object or a Left object. Maybe represents the concept of optional values; Either represents the concept of values which are either correct (Right) or errors (Left).
This package provides an implementation of SRFI-232, which describes curried
, a variant of lambda
that creates true curried procedures which also behave just like ordinary Scheme procedures. They can be applied to their arguments one by one, all at once, or anywhere in between, without any novel syntax. curried
also supports nullary and variadic procedures, and procedures created with it have predictable behavior when applied to surplus arguments.
This package provides an implementation of SRFI 146 for Guile. SRFI 146 defines datastructures that implement mappings (finite sets of associations consiting of a key and a value). Two types of mappings are defined: One using a comparator to define an order on the keys and another using a hash function on the keys. The datastructures and procedures are by default purely-functional. This package re-uses the SRFI sample implementation that is based on red-black trees and Hash Array Mapped Trie (HAMT).
Data validation and type checking (supposedly) make for more correct code. And faster code too, sometimes. And, in rare cases, code that's easier to follow than the un-checked one. Unfortunately, Scheme does not have many (type-)checking primitives out of the box. This SRFI provides some, with the aim of allowing more performant and correct code with minimum effort on the user side. Both (manual) argument checking/validation (check-arg) and return value(s) (values-checked) checking/coercion are provided. Syntax sugar like lambda-checked and define-checked is added on top.
Pre-built Guile for bootstrapping purposes.
Guile Shapefile is a Guile library for reading shapefiles.
Provides bindings for GNOME's libnotify C library to Guile
Guile-colorized provides you with a colorized REPL for GNU Guile.
Guile-websocket provides an implementation of the WebSocket protocol as defined by RFC 6455.
Guile-OpenGL is a library for Guile that provides bindings to the OpenGL graphics API.
This package allows you to compile a Guile Python file to any target from tree-il
.
This package provides an implementation of ActivityStreams and ActivityPub in Guile. It includes a full (currently demo) web server.
guile-dbi
is a library for Guile that provides a convenient interface to SQL databases. This package implements the interface for MySQL.
This Guile library provides tools for reading, comparing, and writing Semantic Versions. It also includes ranges in the style of the Node Package Manager (NPM).
This package provides Guile bindings to GnuTLS, a library implementation the TLS protocol. It supersedes the Guile bindings that were formerly provided as part of GnuTLS.
This package provides functions to generate Guix manifests interactively. It works by scanning an alist of package categories, to ask the user which package sets would they like to install from it.
This package provides bindings for GNU Parted library, a C library allowing disk partition tables creation and manipulation. The bindings are written in pure Scheme by using Guile's foreign function interface.
Guile-Plotutils is a Guile binding to the venerable GNU Plotutils plotting and graphing library. If you want to make graphs that look like you went to university in the 1990s, this is the library for you.
Guile-Gcrypt provides a Guile interface to a subset of the GNU Libgcrypt crytographic library. It provides modules for cryptographic hash functions, message authentication codes (MAC), public-key cryptography, strong randomness, and more. It is implemented using the foreign function interface (FFI) of Guile.
Guile-Gcrypt provides a Guile interface to a subset of the GNU Libgcrypt crytographic library. It provides modules for cryptographic hash functions, message authentication codes (MAC), public-key cryptography, strong randomness, and more. It is implemented using the foreign function interface (FFI) of Guile.
This package provides Guile FFI bindings for CBLAS, the library of linear algebra subprograms.
To use the bindings, import (ffi cblas)
. CBLAS will be loaded from the default dynamic library path. There are up to three bindings for each function: raw, typed, and functional.
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.