في Elixir، يمكن أن تحتوي الدالة الواحدة على عدة فروع. ويتحقق ذلك بمطابقة أنماط وسائط الدالة وباستخدام الشروط الحارسة.
# pattern matching the argument
def number(7) do
"Awesome, that's my favorite"
end
# using a guard
def number(n) when is_integer(n) do
"That's not my favorite"
end
def number(_n) do
"That's not even a number!"
end
FunctionClauseError._، وإلا أصدر المُصرِّف تحذيرًا.fn
13 -> "Awesome, that's my favorite"
_ -> "That's not my favorite"
end
لاحظ أنه لا ينبغي الخلط بين الدوال متعددة الفروع وبين التحميل الزائد للدوال الذي قد تعرفه من لغات برمجة أخرى. في Elixir، تُعرَّف الدوال باسمها وعدد معاملاتها فقط، لا بأنواع وسائطها (إذ لا يوجد نظام أنواع ثابت). وتُعدّ الدالة number/1 من المثال دالة واحدة بصرف النظر عن عدد فروعها.