s-cargot-letbind: Enables let-binding and let-expansion for s-cargot defined S-expressions.

[ data, library ] [ Propose Tags ] [ Report a vulnerability ]

This module allows let bindings to be introduced into the S-Expression syntax.

For example, instead of:

   (concat (if (enabled x) (+ (width x) (width y)) (width y))
           " meters")

this can be re-written with let bindings:

   (let ((wy    (width y))
         (wboth (+ (width x) wy))
         (wide  (if (enabled x) wboth wy))
        )
     (concat wide " meters"))

As S-expressions grow larger, let-binding can help readability for those expressions. This module provides the discoverLetBindings function that will convert an S-expression into one containing let-bound variables, and the inverse function letExpand which will expand let-bound variables back into the expression.

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.2.2.0, 0.2.3.0, 0.2.4.0, 0.2.5.0
Change log ChangeLog.md
Dependencies base (>=4.9 && <5), s-cargot (>=0.1.6.0 && <0.2), text (>=1.2 && <2.1) [details]
Tested with ghc ==8.8.4, ghc ==8.10.7, ghc ==9.2.7, ghc ==9.4.4, ghc ==9.6.1
License ISC
Copyright 2018 Kevin Quick
Author Kevin Quick
Maintainer kquick@galois.com
Category Data
Home page https://github.com/GaloisInc/s-cargot-letbind
Source repo head: git clone git://github.com/GaloisInc/s-cargot-letbind.git
Uploaded by KevinQuick at 2023-04-17T21:38:08Z
Distributions NixOS:0.2.5.0
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 3587 total (11 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-04-17 [all 1 reports]