In my more extended version of this proposal, I allow
for namespaces so that server-specific, and even
user-specific functions can be defined. I also
propose to allow for the uploading of new functions.
=Dennis Heimbigner
Unidata
John Caron wrote:
On 6/28/2012 1:12 PM, Dennis Heimbigner wrote:
Server-Side Expression Proposal
-------------------------------
A semantically nonsensical, but syntactically correct, example might
look something like this.
$x=f("string17",g(h(12))),f2($x,p[0:3:10])
The idea is that a URL would contain in its query section
(the part after the '?') a set of comma separated expressions.
An expression would be either
1. a function invocation, or
2. an assignment of a function invocation to
a single-assignment variable.
A function invocation is your typical one of the form
f(arg1,arg2,...,argn)
where the arguments can be any of the following.
1. another, nested, function invocation
2. a constant (string, number, etc)
3. a dataset
4. a variable.
The value of a function is a dataset (see below) so that
functions can be nested/composed.
The term "dataset" is intended to cover all of the following
possibilities.
1. whole dataset (e.g. a DAP Dataset or a netcdf dataset)
2. a variable within a dataset (variable here is not be confused
with a single-assignment variable.
3. a range expression applied to a variable within a dataset
p[0:1:30], for example.
The term "single-assignment" means that a variable can have
a value assigned to it exactly once. The reason for using
single-assignment is that allows for the representation of
any possible data-flow without introducting the notion of
mutable state.
The above is just a sketch, and there are many details
I am ignoring (such as typing and namespaces).
=Dennis Heimbigner
Unidata
Interesting. could you give as many examples as you can?
are the functions all predefined, or can a user define them?
_______________________________________________
thredds mailing list
thredds@xxxxxxxxxxxxxxxx
For list information or to unsubscribe, visit:
http://www.unidata.ucar.edu/mailing_lists/