here's the announcement email (very boiled down version of the readme, essentially):
babbage is a library for easily gathering data and computing summary measures in a declarative way.
The summary measure functionality allows you to compute multiple
measures over arbitrary partitions of your input data simultaneously
and in a single pass. You just say what you want to compute:
The functions :x, :y, and #(+ (or (:x %) 0) (or (:y %) 0)) defined in
the fields map are called once per input element no matter how many
sets the element contributes to. The function #(contains? % y) is also
called once per input element, no matter how many unions,
intersections, complements, etc. the set :has-y contributes to.
A variety of measure functions, and structured means of combining
them, are supplied; it's also easy to define additional measures.
babbage also supplies a method for running computations structured as
dependency graphs; this can make gathering the initial data for
summarizing simpler to express. To give an example that's probably
familiar from another context:
Options are provided for parallel, sequential, and lazy computation of
the elements of the result map, and for resolving the dependency graph
in advance of running the computation for a given input, either at
runtime or at compile time.
Cutting to the chase, does this make the summary results available in the midst of the sequence; eg: if it takes two hours to gather pressure data (or any other time series data) does this expose the running variance 10 minutes in, an hour in, etc. ?
I actually wrote something similar in bash which I use frequently when I need to munge a table of numbers on the command line [1]. The whole time I was thinking I should really be doing this in common lisp.
[+] [-] kenko|13 years ago|reply
babbage is a library for easily gathering data and computing summary measures in a declarative way.
The summary measure functionality allows you to compute multiple measures over arbitrary partitions of your input data simultaneously and in a single pass. You just say what you want to compute:
and the sets that are of interest: And then run it with some data: The functions :x, :y, and #(+ (or (:x %) 0) (or (:y %) 0)) defined in the fields map are called once per input element no matter how many sets the element contributes to. The function #(contains? % y) is also called once per input element, no matter how many unions, intersections, complements, etc. the set :has-y contributes to.A variety of measure functions, and structured means of combining them, are supplied; it's also easy to define additional measures.
babbage also supplies a method for running computations structured as dependency graphs; this can make gathering the initial data for summarizing simpler to express. To give an example that's probably familiar from another context:
Options are provided for parallel, sequential, and lazy computation of the elements of the result map, and for resolving the dependency graph in advance of running the computation for a given input, either at runtime or at compile time.[+] [-] defrost|13 years ago|reply
[+] [-] eschulte|13 years ago|reply
[1] http://eschulte.github.com/data-wrapper/
[+] [-] yayitswei|13 years ago|reply
[+] [-] innovate|13 years ago|reply
[+] [-] furqanrydhan|13 years ago|reply
[+] [-] unknown|13 years ago|reply
[deleted]