Skip to content

Instantly share code, notes, and snippets.

@daemonfire300
Created January 24, 2016 21:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daemonfire300/9dc1f535cec8bed051d3 to your computer and use it in GitHub Desktop.
Save daemonfire300/9dc1f535cec8bed051d3 to your computer and use it in GitHub Desktop.
defmodule ListAndRecursion do
def all?([head | tail], filter) do
if filter.(head) == true do
pall?(tail, filter, true)
else
false
end
end
defp pall?([head | tail], filter, _previous) do
if filter.(head) == true do
pall?(tail, filter, true)
else
false
end
end
defp pall?([], _filter, previous) do
previous
end
def filter([head | tail], filterfn) do
if filterfn.(head) == true do
[head | filter(tail, filterfn)]
else
filter(tail, filterfn)
end
end
def filter([], _filterfn) do
[]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment