Haskell 9日目
Haskell 9日目。
今日は基本的な構文の前半です。
コメント
1行コメント
1行コメントの例
square n = n * n -- nの2乗
『--』から行末までがコメントになります。
ただし『-』は演算子としても使える記号なので、『--』の直後に記号を書いてしまうと演算子と解釈されてしまいコメントになりません。
『--』の後には空白を入れる癖をつけておくと良いでしょう。
ブロック形式のコメント
ブロック形式のコメントの例
{- コメント -} {- ブロックコメント {- コメントブロックのネスト -} -}
『{-』から『-}』までの部分がコメントと見なされます。
HaskellのブロックコメントはCと違いネストできます。
リテレイト形式
Haskellのソースコードにはリテレイト形式(literate style)という形式があります。
リテレイト形式ではコードの中にコメントを書くのではなく、コメントの中にコードを埋め込みます。
リテレイト形式にする場合の拡張子はlhsにするのが慣習です。
- リテレイト形式のソースコード1
> main = print $ square 5 関数 squareは数値 n の 2乗を返す > square :: Int -> Int > square n = n * n
- リテレイト形式のソースコード2
\begin{code} main = print $ square 5 \end{code} 関数 squareは数値 n の 2乗を返す \begin{code} square :: Int -> Int square n = n * n \end{code}
行の先頭を『<』で始めるか、『\begin{code}』から『\end{code}』まで囲んだ箇所がソースと認識されます。
この2つの形式はGHCで試す限り、どちらか1つのソースでどちらか一方のようです。
尚、著者もプログラミングの主役はコードであるため、リテレイト形式はおすすめできないと述べています。
レイアウト
レイアウト
インデントをそろえる事でコードブロックを表現する方法。
main = do cs <- getContents putStr cs
複数の式の桁を揃えることによって式をまとめる方法をレイアウト(layout)またはオフサイドルール(off-side rule)と言います。
レイアウトを合わせる桁(オフサイドライン)は予約語let, where, do, ofのあとに現れる単語の位置によってきまります。
ブレース構文
インデントを揃える以外にもブレース『{}』と『;』を使う事でコードブロックを表現できるようになります。
main = do { cs <- getContents; putStr cs }
関連記事
[Haskell][プログラミング言語][関数型言語] Haskell 8日目
[Haskell][GPGPU][CUDA]なぜGPGPUにHaskellが採用されないのか?
[Haskell]Haskellのリファレンスマニュアルを検索するツール href
[Haskell][プログラミング言語][関数型言語]ふつうのHaskellプログラミング
[プログラミング言語]ハッカーを目指す者が習得すべき5つのプログラミング言語
[プログラミング言語]プログラミング言語ヒエラルキー
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/06/01
- メディア: 単行本
- 購入: 25人 クリック: 314回
- この商品を含むブログ (320件) を見る