Sha256: e29f9ff5e6be3ce8ee46ba7409e1736a947fea91442dbef5e9d9571d990f91bd

Contents?: true

Size: 349 Bytes

Versions: 69

Compression:

Stored size: 349 Bytes

Contents

defmodule Isogram do
  @doc """
  Determines if a word or sentence is an isogram
  """
  @spec isogram?(String.t()) :: boolean
  def isogram?(sentence) do
    codepoints =
      sentence
      |> String.downcase()
      |> String.replace(~r/\s|-/u, "")
      |> String.codepoints()

    length(Enum.uniq(codepoints)) == length(codepoints)
  end
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.158 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.157 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.156 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.155 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.154 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.153 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.152 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.151 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.150 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.149 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.148 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.147 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.146 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.145 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.144 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.143 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.142 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.141 tracks/elixir/exercises/isogram/example.exs
trackler-2.2.1.140 tracks/elixir/exercises/isogram/example.exs