Haskell 12日目
Haskell 12日目。
日刊じゃなくて週刊Haskellになってきた。
関数定義
関数定義の例
square n = n * n
引数を1つとる関数squareの定義で、『square n』の値を『n * n』と定義します。
関数の定義は束縛の一種でもあり、上記の例では引数の2乗するという関数に変数squareが束縛されます。
関数定義をこのような観点から見て、関数束縛(function binding)と呼ぶことがあります。
パターンマッチを利用して関数を定義することもできる。(過去に出てきたので割愛)
識別子の規則
Haskellで関数や変数の名前に使える文字は次のいずれかとなる。
- アルファベットの小文字と大文字(a〜z、A〜Z)
- 数字(0〜9)
- アンダースコア(_)
- シングルクオート(')
関数名や変数名に使う識別子は、1文字目がアルファベットの小文字か『_』アンダースコアでなければいけない。
アンダースコアはHaskellの仕様書では1文字目の使用は避けるべきとされている。
識別子にシングルクオートが使える事にも注意する。
尚、Haskellの予約語は識別子として使用できない。
Haskellの予約語は下記の通り。
case class data default deriving do else if import in infix infixl inflxr instance let module newtype of then type where -
二項演算子の定義
Haskellでは、二項演算子のように使える関数が定義できる。
定義するには次のように書く。
パターン1 演算子 パターン2 = 定義
この形式でも、通常形式の関数定義と同じく、引数には値のパターンを記述できる。
『||』演算子の定義例
(||) :: Bool -> Bool -> Bool True || _ = True False || x = x
関連記事
[Haskell][プログラミング言語][関数型言語]Haskell 11日目
[Haskell][プログラミング言語][関数型言語]Haskell 10日目
[Haskell][GPGPU][CUDA]なぜGPGPUにHaskellが採用されないのか?
[Haskell]Haskellのリファレンスマニュアルを検索するツール href
[Haskell][プログラミング言語][関数型言語]ふつうのHaskellプログラミング
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/06/01
- メディア: 単行本
- 購入: 25人 クリック: 314回
- この商品を含むブログ (320件) を見る