/var/log/messages

Jan 26, 2019 - 1 minute read - Comments - programming

プログラミング Elixir (13)

次の練習問題 StringsAndBinaries-2 について。アナグラム、って何でしたっけ。

定義は

anagram?(word1, word2)

で、同一の文字で構成されている文字列かどうか、を判定すれば良いのかな。リストって並べ替えできないのかな、と思って調べてみたら Enum.sort という道具がある模様。

iex(14)> Enum.sort('dge')
'deg'

これができるなら話は早いスね。

  def anagram?(word1, word2) do
    _anagram?(Enum.sort(word1), Enum.sort(word2))
  end
  defp _anagram?([], []) do
    true
  end
  defp _anagram?([], _list), do: false
  defp _anagram?(_list, []), do: false
  defp _anagram?([head1 | tail1], [head2 | tail2]) do
    if head1 == head2 do
      _anagram?(tail1, tail2)
    else
      false
    end
  end

最初動作不良だったんスけど。動くようになったぞ (直していない)。何なのこれ。

StringsAndBinaries-3

これ、dog は cdr でリストになってるからこの表示、てのはダウトなのかな。

旦過市場 #fukuokaex (#kokuraex)

comments powered by Disqus