君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

Rubyの配列を集合として扱った時の操作がとてもわかりやすい(共通集合・和集合・集合の差)

配列の準備

ary1 = %w(a b c)  # ["a","b","c"]
ary2 = %w(b c d)  # ["b","c","d"]

%wというのはパーセント記法と言うやつです。

これを使うと配列の定義が簡単にできます。

今回の場合は文字列を要素に持つ配列を作成しています。

共通集合

p (ary1 & ary2)
#=> ["b", "c"]

和集合その1

p (ary1 | ary2)
#=> ["a", "b", "c", "d"]

和集合その2

p (ary1 + ary2)
#=> ["a", "b", "c", "b", "c", "d"]

その1と違って重複を許してます。

単純に集合をくっつけている感じ。

差分

p (ary1 - ary2)
#=> ["a"]

これはほぼ見たまんま。

感想

すごく直感的にかけるので良い。