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

[ data, library ] [ Propose Tags ]

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.


[Index] [Quick Jump]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,,,
Change log ChangeLog.md
Dependencies base (>=4.9 && <5), s-cargot (>= && <0.2), text (>=1.2 && <2.1) [details]
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:
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 3412 total (28 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]