malloydata / malloy

Malloy is an experimental language for describing data relationships and transformations.
http://www.malloydata.dev
MIT License
2k stars 76 forks source link

Function Blueprint DSL #1882

Closed christopherswenson closed 2 months ago

christopherswenson commented 2 months ago

Improves the experience of authoring new Malloy standard functions, dialect overrides, and dialect functions by creating a function "blueprint" system. This system is a typescript DSL which can succinctly describe simple functions, e.g.

{ takes: { value: 'number' }, returns: 'number', impl: { function: 'SIN' } }

and is also expressive enough to represent much more complicated functions, like string_agg.

See the README for details on the blueprint DSL.