Capturing a function with default arguments?

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.