[erlang-questions] idea: function meta data
Joe Armstrong
erlang@REDACTED
Thu Nov 15 11:48:51 CET 2007
Module have metadata Mod:module_info(export) etc.
But functions do not.
idea - attach function meta data with a new attribute.
-meta(doc, "the factorial function").
-meta(type, "int -> int").
-meta(keywords, [math]).
fac(0) -> 1;
fac(N) -> N*fac(N-1)
The meta data gets *attached* to the Next function in the module
-meta(process, true).
foo() -> spawn(fun() -> ... end)
After compilation meta data can be access as follows:
Mod:meta_data(fac, 1, doc) => "the factorial function"
...
Mod:meta_data(fac, 1, glurk) => '$nothing'
if we then *standardise* the meta data it will be easy to make loads
of nice tools for type checking, documentation etc.
I'm off on a trip today - so can somebody hack the preprocess and
parser to do this? (( this needs a small change
attributes have a different syntax and must be at *before* all functions))
This adds introspection to the language !
/Joe Armstrong
More information about the erlang-questions
mailing list