27 lines
563 B
Markdown
27 lines
563 B
Markdown
# 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
|
|
|
|
```ocaml
|
|
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))
|
|
```
|