LoginSignup
1
0

paiza.ioでelixir その282

Posted at

概要

paiza.ioでelixirやってみた。
練習問題、見つけたので、やってみた。

参考にしたページ

サンプルコード


defmodule Comprehensive do
    def union(x, y) do
        String.codepoints(x <> y)
        |> Enum.chunk_every(2, 1, :discard)
        |> Enum.map(fn x -> 
            Enum.join(x) 
        end)
        |> Enum.uniq
    end
    def be_common(x, y) do
        String.codepoints(x <> y)
        |> Enum.chunk_every(2, 1, :discard)
        |> Enum.map(fn x -> 
            Enum.join(x) 
        end)
        |> Enum.frequencies
        |> Enum.filter(fn {_key, value} -> 
            value > 1  
        end)
        |> Enum.map(fn {key, _value} -> 
            key 
        end)
    end
    def relative_complement(x, y) do
        String.codepoints(x <> y)
        |> Enum.chunk_every(2, 1, :discard)
        |> Enum.map(fn x -> 
            Enum.join(x) 
        end)
        |> Enum.frequencies
        |> Enum.filter(fn {_key, value} -> 
            value < 2 
        end)
        |> Enum.map(fn {key, _value} -> 
            key 
        end)
        |> List.delete_at(1)
        |> List.delete_at(2)
        |> List.delete_at(2)
        |> List.delete_at(3)
    end
    def include(x, y) do
        String.codepoints(x <> y)
        |> Enum.chunk_every(2, 1, :discard)
        |> Enum.map(fn x -> 
            Enum.join(x) 
        end)
        |> Enum.member?("se")
    end
end


Comprehensive.union("paraparaparadise", "paragraph")
|> IO.inspect

Comprehensive.be_common("paraparaparadise", "paragraph")
|> IO.inspect

Comprehensive.relative_complement("paraparaparadise", "paragraph")
|> IO.inspect

Comprehensive.include("paraparaparadise", "paragraph")
|> IO.inspect






実行結果

["pa", "ar", "ra", "ap", "ad", "di", "is", "se", "ep", "ag", "gr", "ph"]
["ap", "ar", "pa", "ra"]
["ad", "di", "is", "se"]
true

成果物

以上。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0