Elixir의 집합 연산

8440 단어 Elixir

소개



  • @nezuq 씨의 파이썬 집합 연산을 보았습니다.

  • Elixir은 Elixir 1.10.4 (compiled with Erlang/OTP 23)를 사용했습니다
  • IEx 에서 사용해보십시오.

    MapSet


    iex> x = MapSet.new([1,2,3,4,5,6,1,1,1])
    #MapSet<[1, 2, 3, 4, 5, 6]>
    
    iex> y = MapSet.new([9,9,9,4,5,6,7,8,9])
    #MapSet<[4, 5, 6, 7, 8, 9]>
    

    MapSet.union/2


  • / 뒤의 숫자는 인수의 수입니다
  • 일본집합
  • iex> MapSet.union(x, y)
    #MapSet<[1, 2, 3, 4, 5, 6, 7, 8, 9]>
    

    MapSet.intersection/2


  • 제품 집합
  • iex> MapSet.intersection(x, y)
    #MapSet<[4, 5, 6]>
    

    MapSet.difference/2


  • 차이 집합
  • iex> MapSet.difference(x, y)
    #MapSet<[1, 2, 3]>
    

    XOR


    iex> MapSet.union(x, y) |> MapSet.difference(MapSet.intersection(x, y))
    #MapSet<[1, 2, 3, 7, 8, 9]>
    
  • 함수가없는 것처럼 보였으므로 벤 다이어그램의 요령으로 합집합에서 곱셈을 뺍니다.

    MapSet.subset?/2


  • 첫 번째 인수 MapSet의 모든 멤버가 두 번째 인수 MapSet 멤버에 포함되어 있는지 여부
  • iex> x = MapSet.new([1,2,3])
    #MapSet<[1, 2, 3]>
    
    iex> y = MapSet.new([1,2,3,4,5])
    #MapSet<[1, 2, 3, 4, 5]>
    
    iex> MapSet.subset?(x, y)
    true
    

    MapSet.disjoint?/2


  • 공통 요소가 없는지의 판정
  • iex> x = MapSet.new([1,2,3])
    #MapSet<[1, 2, 3]>
    
    iex> y = MapSet.new([4,5,6])
    #MapSet<[4, 5, 6]>
    
    iex> MapSet.disjoint?(x, y)
    true
    
    iex> MapSet.disjoint?(MapSet.new([1, 2]), MapSet.new([2, 3]))
    false
    

    Wrapping Up



  • Elixir 에서는 MapSet 을 사용합니다
  • Enjoy Elixir !!!
  • 좋은 웹페이지 즐겨찾기