--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2008/10/12

ghc 拡張の使い方

コマンドオプションで指定する方法と、ソースコード内に記述する方法の2種類がある。

手元の環境では、拡張機能が必要ないのに拡張使用を指定すると、妙なメッセージを吐き出して死んでしまう。必要な時だけ使用すること。

コマンドオプション

ghc コマンドや ghci コマンドに、-X拡張名 というコマンドオプションを付ける。

ghc -XRankNTypes Hello.hs

ソースコード内指定

ソースコードの先頭行で、使用する拡張を指定する。個人的にはこちらが好き。何を要求するのか一目で分かるし、コンパイル時はghc とだけ打てば済むので。

 1 {-# LANGUAGE RankNTypes #-}
 2
 3 data Hello a = Hello a
 4              | GoodMorning a
 5
 6 extract :: Hello a -> a
 7 extract (Hello a) = a
 8 extract (GoodMorning a) = a
 9
10 showHellos :: forall a. (Show a) => [Hello a] -> [String]
11 showHellos = map (show . extract)

参考リンク

スポンサーサイト

comment

post




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。