嗯,你真的应该显示这样的代码,但是:
kick(Power, Angle) ->
io_lib:format("(kick ~B ~B)", [Power, Angle]).
init() ->
init(myteam, 14).
init(Team, Version) ->
io_lib:format("(init ~p (version ~B))", [Team, Version]).
是一种入门方式(未经测试)。如果您想要更快的输出,您可能应该编写一个函数term_to_sexp,然后将任意术语输出为iolist()'s(查找iolists,它们非常适合这种工作并且非常快)。
term_to_sexp(A) when is_atom(A) ->
L = atom_to_list(A),
<<L>>;
term_to_sexp(B) when is_binary(B) ->
B;
term_to_sexp(T) when is_tuple(T) ->
term_to_sexp(tuple_to_list(T));
... % Missing cases probably
term_to_sexp(L) when is_list(L) ->
intersperse(" ", [term_to_sexp(Item) || Item <- L]).
intersperse(_, []) -> [];
intersperse(_, [X]) -> [X];
intersperse(Sep, [X | Rest]) ->
[X, Sep | intersperse(Sep, Rest)].
(也没有测试,但是一个开始)。