closing the loop on Erlang metaprogramming with Smerl

Yariv Sadan <>
Thu Aug 17 23:30:01 CEST 2006


> I think this pretty much concludes the development of Smerl. I want to
> keep Smerl simple, so any additional metaprogramming features would
> belong in higher-level libraries.
>

Boy, was I wrong!

Old way:

C1 = smerl:new(foo),
{ok, C2} = smerl:add_func(foo, "bar() -> 1+1."),
smerl:compile(C2),
foo:bar(). % returns 2

New way:

A = 7,
C1 = smerl:new(foo),
{ok, C2} = smerl:add_func(foo, bar, fun() -> 3 + A end),
smerl:compile(C2),
foo:bar(). %% returns 10

Yup, Smerl now supports fun expressions -- even closures!

http://yarivsblog.com/articles/2006/08/17/smerl-attains-erlang-metaprogramming-nirvana

Cheers,
Yariv



More information about the erlang-questions mailing list