Pour ma journalisation, je voulais avoir la possibilité de macro les instructions au moment de la compilation, donc -define à la rescousse!Macros Erlang avec une arité différente
Pour les drapeaux de mon compilateur je compile avec erlc -DFOO, y a-t-il un moyen pour -ifdef de déterminer la différence entre FOO = ok, FOO/0, et FOO/1?
-module(foo).
-define(FOO, ok).
-define(FOO(X), io:format("~p~n", [X])).
-export([test_x/1]).
%% i want this to be true iff FOO = ok, not if ?FOO/1 exists
-ifdef(FOO).
test_x(X) ->
?FOO(":) " ++ X).
-else.
test_x(X) ->
?FOO(":(" ++ X).
-endif.
Non, impossible de tester la définition de macro. – rvirding