もしRubyistがHaskellを学んだら(9) パターンマッチによる関数定義
タグ: learning_haskell / 初版公開: 2013-11-19

今日はパターンマッチによる関数定義をしてみることにした。実装するのは、TrueとFasleを逆転させる論理否定を行うlnot関数だ。

Rubyで書くと以下のイメージである。

def lnot
	lnot ? false : true
end
puts false
puts true

Haskellでは、これをパターンマッチによる関数定義で実装する。

lnot :: Bool -> Bool
lnot False = True
lnot True = False

main = do
	print (lnot False)
	print (lnot True)

lnot関数は、Boolを受け取りBoolを返す。lnot FalseパターンにはTrueを、lnot TrueパターンにはFalseを返す。

試しにこのコードを実行した結果は以下のとおりだ。確かに論理否定できていることがわかる。

True
False