Хм, вы действительно должны показать код для подобных вещей, но:
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()
(ищите 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)].
(также не проверено, но начало).