Haskell 11日目
Haskell 11日目。
7章長いですね。
停滞していますが少しずつ進んでいきます。
Case式
関数の引数以外でもパターンマッチやガードを使いたいときにはcase式(case expression)が使えます。
case式の例
case str of "" -> "" (c:cs) -> tuUpper c: cs
このcase式はstrの値が空文字なら空文字を返す、strの値が空文字でなければ、その1文字目を大文字にした文字列を返すと解釈される。
一般に、case式は次のように書く。パターンマッチだけ使う場合はガードは書かなくてもよい。
case str of パターンA | ガードA1 -> 式A1 | ガードA2 -> 式A2 : : パターンB | ガードB1 -> 式B1 | ガードB2 -> 式B2 : : パターンC | ガードC1 -> 式C1 | ガードC2 -> 式C2 : :
case式で使えるパターンは関数定義の引数とまったく変わらない。
ガードの意味も関数定義と変わらない。
case式のレイアウト
case式のof以降にはコードブロックがあるとみなされる。
明示的に『{』と『;』で区切っても構わない。
今日のところはここまで
関連記事
[Haskell][プログラミング言語][関数型言語]Haskell 10日目
[Haskell][GPGPU][CUDA]なぜGPGPUにHaskellが採用されないのか?
[Haskell]Haskellのリファレンスマニュアルを検索するツール href
[Haskell][プログラミング言語][関数型言語]ふつうのHaskellプログラミング
[プログラミング言語]ハッカーを目指す者が習得すべき5つのプログラミング言語
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/06/01
- メディア: 単行本
- 購入: 25人 クリック: 314回
- この商品を含むブログ (320件) を見る