[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