-module(my_module). -export([test/2]). test(Arg1,{?MODULE,Arg2}) -> io:format("Arg1:~p~nArg2:~p~n",[Arg1,Arg2]).
my_module:test(1,{my_module,2}).
or so {my_module,2}:test(1).
-module(user). -export([new/0,save/1]). -export([name/1,set_name/1]). -export([proplist/1]). % record name must be same as module name. -record(user,{id,name}). new() -> {ok,#user{}}. name(#user{name=Name}) -> Name. set_name(NewName) -> {ok,State#user{name=NewName}}. % … Some other code ... save(#user{id=undefined,name=Name} = State) -> % Create new object in db; % ... {ok,State}; save(#user{id=ID,name=Name} = State) -> % Update an object in database % ... {ok,State}; proplist(#user{id=ID,name=Name}) -> [{id,ID}, {name,Name}].
{ok,User} = user:new(), {ok,User2} = User:set_name("SomeName"), {ok,User3} = User2:save(), UserName = User3:name().
{ok,User} = user:new(), {ok,User2} = user:set_name("SomeName",User), {ok,User3} = user:save(User2), UserName = user:name(User3).
to_json(Resource) -> Proplist = Resource:proplist(), Json = mochijson2_fork:encode({struct,[Proplist]}), {ok,Json}. to_xml(Resource) -> Proplist = Resource:proplist(), XML = SomeProplistToXmlGenerator(Proplist), {ok,XML}.
Source: https://habr.com/ru/post/146471/
All Articles