💁♂本記事で掲載するコードについて 今回紹介するコードの他、RubyやHaskellによる、べき集合を求める関数の実装をいくつか含めたリポジトリーをigrep / powersetsに公開したので興味があればご覧ください。使用した各種言語処理系のバージョンもそちらに記載しています。興が乗ったので、すべての実装についてHaskell製の最も素朴なバージョンと同じ振る舞いをするか、QuickCheckでテストまでしています。 きっかけ 半ば風が吹けば桶屋が儲かる的な話なのですが、2年半程前、Yokohama.rbというRubyのコミュニティーでこちら👇の問題を解こうとしたのがきっかけでした: マスクしても同じ数 Yokohama.rb #103 詳細は割愛しますが、この問題の解法の一つとして、入力された数における有効なビット番号の配列 --- 例えば2進数で10100となる数であれば下位