Соответствие шаблону - это идиома для использования:
-module(sample).
-export([xyz/1]).
xyz(p) -> p();
xyz(q) -> g().
p() -> "you called p".
g() -> "you called g".
Если вы хотите быть динамичным, вы можете использовать сервер gen_event .
По сути, это сервер, который содержит состояние, состоящее из пары ключ / функция, например:
[{p, #func1},
{g, #func2},
{..., ...},
...]
Затем вы можете связать события с функциями. (Излишне говорить, что это немного больше, чем это.