計算機科学のブログ

HaskellのI/O テキストとUnicodeの操作 Data.Textモジュール、pack関数、unpack関数 Haskellの言語拡張:OverloadedStrings コンパイル、LANGUAGEプラグマ

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT4(HaskellのI/O)、LESSON23(テキストとUnicodeの操作)、23.2(Data.Textを使用する)、Haskellの言語拡張:OverloadedStrings、クイックチェック 23-2の解答を求めてみる。

コンパイル時に拡張名を指定する方法。

コード

main :: IO ()
main = do
  print "Hello, World!"

入出力結果(Terminal, Zsh)

% ghc templates.hs -XTemplateHaskell
Loaded package environment from /Users/…/.ghc/x86_64-darwin-8.10.7/environments/default
[1 of 1] Compiling Main             ( templates.hs, templates.o, templates.dyn_o )
Linking templates ...
% ./templates 
"Hello, World!"
%

LANGUAGEプラグマの利用。

コード

{-# LANGUAGE TemplateHaskell #-}

main :: IO ()
main = do
  print "Hello, World!"

入出力結果(Terminal, Zsh)

 % runghc templates1.hs 
"Hello, World!"
%