我想为具有以下模式的Elixir函数指定4个子句: i)字符串列表 ii)数字列表 iii)字符串元组 iv)数字元组
我该怎么做?
答案 0 :(得分:3)
可能是这样的事情:
def foo([]), do: :empty
def foo([h|t]) when is_binary(h), do: :list_of_strings
def foo([h|t]) when is_number(h), do: :list_of_numbers
def foo(tuple) when is_tuple(tuple) do
# Convert tuple to list of stuff, then recursively call foo
tuple |> tuple_to_list |> foo
end
最后一句假设您不关心从foo
获取元组。