Skip to content

Instantly share code, notes, and snippets.

@StevenXL
Created December 22, 2015 23:22
Show Gist options
  • Select an option

  • Save StevenXL/e9cc9e399116c66881d2 to your computer and use it in GitHub Desktop.

Select an option

Save StevenXL/e9cc9e399116c66881d2 to your computer and use it in GitHub Desktop.
Elixir Guesser
defmodule Guesser do
def guess(actual, range) do
range_midpoint = midpoint(range)
try_guess(range_midpoint, actual, range)
end
defp try_guess(range_midpoint, actual, range) do
IO.puts "trying #{range_midpoint}"
cond do
range_midpoint == actual ->
IO.puts range_midpoint
range_midpoint > actual ->
first .. _last = range
guess(actual, first .. range_midpoint)
range_midpoint < actual ->
_first .. last = range
guess(actual, range_midpoint .. last)
end
end
defp midpoint(range) do
first..last = range
div(first + last, 2)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment