> #+object_begin var > x = 1 > y = 2 > #+end I was thinking on similar lines. This together with Nicolas's suggestion of "one name" will be wonderful.
I think it is easier to explain what I think by means of an example. In case of lisp, the SAME variable name could either act as a function or a variable. The way the VARIABLE NAME is INTERPRETED, DEPENDS ON THE CONTEXT in which it needs to be interpreted. Similarly a VAR could be EVALLED or just be a QUOTED SYMBOL. Coming back to the above example - If the HANDLE for the above block (whatever you call it), appears as a PARAM OF BABEL CALL it would be interpreted as a param list. Think `apply' and `&rest args' in the elisp world. Another near equivalent would be COERCING or CASTING. In abstract terms, the above block could be treated as a TABLE. In some sense, a LIST or a LIST OF LIST could be coerced in to a TABLE. I consider babel to be a VM and an execution environment - i.e., as a scripting environment for Org. So definitely we can borrow ideas from the existing languages and extend it. In summary, what I am saying is EVERYTHING IS A BLOB. The way a BLOB is INTERPRETED depends on the CONTEXT in which interpretation happens. A BLOB in and of itself is but JUST A BLOB and has NO INHERENT meaning. I don't use babel myself so I may not be using the right set of words. Also it is not my intention to hijack the thread. Jambunathan K.