defmodule IsOdd do @moduledoc """ Documentation for `IsOdd`. Library for checking whether the number, string is odd or not. """ @doc """ Function to check a number is odd or not. ### Error {: .error} This syntax will render an error block ## Examples iex> IsOdd.is_odd?(5) true iex> IsOdd.is_odd?(6) false """ use Bitwise, only_operators: true @spec is_odd?(integer) :: boolean def is_odd?(number) when is_integer(number) do if (number &&& 1) === 1 do true else false end end @doc """ Function to check a string (parsable into integer) is odd or not. ## Examples iex> IsOdd.is_odd?("5") true iex> IsOdd.is_odd?("6") false iex> IsOdd.is_odd?("3FF", 16) true """ @spec is_odd?(binary, 2..36) :: boolean def is_odd?(num_string, base \\ 10) when is_binary(num_string) do number = num_string |> String.to_integer(base) is_odd?(number) end end