最近はあまり話題になってないかもしれませんが、 Typed holes
機能についての紹介です。
ghc7.8くらいの頃に導入された機能で、ソースコードの式の中に _
か _
で始まる識別名を書くと、その部分の型を推論してくれます。
Contents
Link to
here使い方
例えば、
= print $ 1.0 + _ main
のようなコードを書いて、 runghc
やghci
やghc
で実行すると、 _
部の型をエラーメッセージで教えてくれます。
Link to
hereエラーメッセージの表示例
例えば、以下のようにエラーメッセージが表示されます。 以下の例では、_
部が、Double
型であることを示しています。
$ runghc test1.hs
.hs:3:22: error:
test1Found hole: _ :: Double
• In the second argument of ‘(+)’, namely ‘_’
• In the second argument of ‘($)’, namely ‘1.0 + _’
In the expression: print $ 1.0 + _
Relevant bindings include main :: IO () (bound at test1.hs:3:1)
• |
3 | main = print $ 1.0 + _
| ^
Link to
here補足1
_
の替りに、 _hoge
のように名前付けしても構いません。
ghci で、 :t
で型を調べるのと同じように気軽に使えます。 (最近はIDEがサポートしていて、明示的には使わなかったりするかもしれません。)
Link to
here補足2
詳細情報は以下にあります。