require 'pp' require 'optparse' class Test def and(*args) args.all?{|arg| arg == 1} ? 1 : 0 end def or(*args) args.any?{|arg| arg == 1} ? 1 : 0 end def xor(*args) args.inject(:+) % 2 == 1 ? 1 : 0 end def nand(*args) args.all?{|arg| arg == 1} ? 0 : 1 end def nor(*args) args.any?{|arg| arg == 1} ? 0 : 1 end def not(*args) args.map{|arg| if arg == 0; 1 elsif arg == 1; 0 end } end end @test = Test.new
![論理演算をrubyで表現するとこうなった - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/9d26dc22637b52707cd1eee33b18024ea7a5294f/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU4JUFCJTk2JUU3JTkwJTg2JUU2JUJDJTk0JUU3JUFFJTk3JUUzJTgyJTkycnVieSVFMyU4MSVBNyVFOCVBMSVBOCVFNyU4RiVCRSVFMyU4MSU5OSVFMyU4MiU4QiVFMyU4MSVBOCVFMyU4MSU5MyVFMyU4MSU4NiVFMyU4MSVBQSVFMyU4MSVBMyVFMyU4MSU5RiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9ZjdkNTNlZjczYjM0MDgzYWJiYjkyNzFiOTA3ZDMyMmQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrLXNoaW1vamkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThiNjg4NjQwMzU5NjI3NTYyMDc1MWM2NTY3Y2NiYWZk%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Df775094e8ff5759f03cec6e71d1f99c6)