「と[]がfalseとtrueに対応するようなandとor作れないかなぁ >>=とかうまく使って」 @itchyny
ルール
- 短いこと
- 綺麗であること
- 途中でエラーが生じないこと
Prelude> -- Prelude> -- []: false, [[]]: true Prelude> -- リストでBoolean計算!? Prelude> Prelude> -- Prelude> -- and計算は(>>) Prelude> let andl x y = x >> y Prelude> [] `andl` [] -- false and false [] Prelude> [] `andl` [[]] -- false and true [] Prelude> [[]] `andl` [] -- true and false [] Prelude> [[]] `andl` [[]] -- true and true [[]] Prelude> -- Prelude> -- Prelude> -- or計算は(++)とtake 1 Prelude> let orl x y = take 1 (x ++ y) Prelude> [] `orl` [] -- false or false [] Prelude> [] `orl` [[]] -- false or true [[]] Prelude> [[]] `orl` [] -- true or false [[]] Prelude> [[]] `orl` [[]] -- true or true [[]] Prelude> -- Prelude> -- Prelude> -- notは短くかけなさそう... Prelude>