Default arguments are just a syntactic sugar that transforms into functions with different arity:
def my_func(arg1, arg2 \\ %{}, arg3 \\ false)
# arg2 = %{} and arg3 = false
def my_func(arg1)
# arg3 = false
def my_func(arg1, arg2)
# no default arguments
def my_func(arg1, arg2, arg3)
So if you choose my_func/3, then you are required to pass all arguments when calling it, if you want to avoid passing all the arguments use either my_func/1 or my_func/2.


















