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.

Versions [faq] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.2.2.0, 0.2.3.0
Change log ChangeLog.md
Dependencies base (>=4.9 && <5), s-cargot (>=0.1.4.0 && <0.2), text (>=1.2 && <2) [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 Tue Jun 12 18:30:13 UTC 2018
Distributions NixOS:0.2.3.0
Downloads 1005 total (86 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2018-06-12 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees