A compiler for a small pure functional query language
- OCaml 98.4%
- Makefile 1.5%
- Common Lisp 0.1%
| bench | ||
| example | ||
| runtime | ||
| src | ||
| test | ||
| .gitignore | ||
| descr | ||
| Makefile | ||
| opam | ||
| README.md | ||
delta
OCaml compiler for a small pure functional language of keyed collection queries
Collections are unordered finite maps from signed machine integers to values.
map preserves keys; filter keeps the keys of the rows it retains. Results
are printed in key order, so presentation is deterministic
Language
type order = {
customer : string;
total : int;
}
input orders : collection order
let tax n = n * 20 / 100
query expensive_orders =
orders
|> filter (fun o -> o.total > 1000)
|> map (fun o -> (o.customer, tax o.total))