Skip to content

Instantly share code, notes, and snippets.

@jxub
Created November 30, 2017 22:47
Show Gist options
  • Select an option

  • Save jxub/ef5ad0aad555ca896366dea51d3581b5 to your computer and use it in GitHub Desktop.

Select an option

Save jxub/ef5ad0aad555ca896366dea51d3581b5 to your computer and use it in GitHub Desktop.

Revisions

  1. jxub created this gist Nov 30, 2017.
    22 changes: 22 additions & 0 deletions enumerable-tuple-elixir.ex
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    defimpl Enumerable, for: Tuple do
    def count(tuple) do
    tuple_size(tuple)
    end

    def member?([], _), do {:ok, false}
    def member?({}, _), do {:ok, false}
    def member?(tuple, elem) do
    tuple
    |> Tuple.to_list
    |> member?(elem)
    end

    def slice({}, _start, _count), do: {}
    def slice(tuple, start, count), do
    tuple
    |> Tuple.to_list
    |> slice(start, count)
    end

    def reduce(_, {:halt, acc}, _fun), do: {:error, __MODULE__}
    end