読者です 読者をやめる 読者になる 読者になる

はわわーっ

はわわわわっ

haskell の const

haskell

Prelude に const という関数がある。型は

const :: a -> b -> a

簡単に言うと、引数を2つとって1つ目の引数をそのまま返す関数。

Prelude> const 1 2
1

これと id を組み合わせてみると、引数を2つとって2つ目をそのまま返すようになる。

const id :: a -> b -> b
Prelude> const id 1 2
2

これは

const id x = id

となるから。

このように const に関数を与えると便利に使える場合がある。例えば

myLast = foldr1 (const id)

でリストの最後の要素を求めることができたり

myLength = foldr (const (+1)) 0

でリストの長さが求められる。