@pragdave
There is another error.
if fun.(head) do
[head | filter(tail, fun)]
def filter([], _fun), do: []
def filter([head | tail], fun) do
if fun.(head) do
[head | filter(tail, fun)]
else
filter(tail, fun)
end
end