このポイントフリー関数があるとしましょう:
f1 = flip const map
それがどのように機能し、何をするべきなのか、私にはわかりません。つまり、マップ、const、およびフリップ関数が何であるかを知っています。しかし、このようにそれらをまとめることは、私には意味がありません。この関数内で正確に何が起こっているのでしょうか? 毎回渡すのと同じものを返すようですが...なぜですか?
この関数が何をするのか、少しずつ見ていきましょう
flip const map x = (flip const) map x
= const x map
= x
そのため、与えられたものは常に返されます。
Haskell のすべての関数は引数を 1 つしか取りませんが、別の関数を返すことで複数の引数を取ることをシミュレートすることに注意してください。と書くflip const map
こともできます(flip const) map
。const
通常、2 番目の引数を無視して、最初の引数を返します。flip
は引数の順序を逆にするためflip const
、最初の引数を無視して 2 番目の引数を返します。したがってmap
、無視され、常に引数を返す関数が返されます。