8.11.1
Qi: An Embeddable Flow-Oriented Language
(require qi) | package: qi-lib |
An embeddable, general-purpose language to allow convenient framing of programming logic in terms of functional flows. A flow is a function from inputs to outputs, and Qi provides compact notation for describing complex flows.
Tired of writing long functional pipelines with nested syntax like this?
(map f (filter g (vector->list my-awesome-data)))
Then Qi is for you!
(~>> (my-awesome-data) vector->list (filter g) (map f))
But wait, there’s more: Qi isn’t just a turbo-charged threading language. It
supports multiple values and a suite of other operators for describing
computations:
(define-flow average (~> (-< + count) /))
Start by getting your bearings. For an overview of the language, continue to Introduction and Usage. For a thorough orientation, watch the original video from RacketCon 2021.