Haskell勉強会

関数型プログラミングの学習日記

Haskell 関数呼び出し

今日は、Haskellの「関数呼び出し」を学習します。

 

haskell.hatenablog.com

 

 

1.1 関数呼び出し

(p.3)

関数を呼び出す=関数を適用する、と言う。

 

関数の呼び出し方には、2種類ある。

  1. 中置関数
  2. 前置関数

 

中置関数

(例)

ghci> 1 + 2

3

  • 「+」は2つの数を引数に取り、それらを足し合わせる関数です。
  • 関数「+」を適用する(呼び出す)には、足し合わせたい2つの数で挟みます。

 

前置関数

(例)

ghci> succ 8

9

 「succ」は、順番があるデータ(自然数など)で、引数の次のデータを返す関数です。

  • 関数「succ」を適用する(呼び出す)には、関数名を最初に書いて、それからスペース、続けて(スペースで区切られた)引数を書きます。
  • Haskellで用意されているほとんどの関数は、前置関数です。

 

前置関数を中置関数として使う方法

(例)割り算を行う前置関数「div」

ghci> div 100 2

50 

 

関数が2引数のときは、その関数をバッククオート(`)で囲むことで中置関数として呼び出せます。

 

ghci> 100 `div` 2

50

 

f:id:hamamuratakuo:20170822125806p:plain

 

演算の優先度

関数の適用は、すべての演算の中で最も高い優先度を持ちます。

 

ghci> succ 9 + max 5 4 + 1
16

ghci> (succ 9) + (max 5 4) + 1
16

 

式の左から右へ結合していく場合、関数があれば、先に関数が適用されています。

 

上記の例だと、

succ 9 + max 5 4 + 1

という式は、

succ (9 + (max 5 (4 + 1)))

という順番の計算にはならない、ということですね。

 

まとめ

関数の呼び出し(適用 application)には、

  • 前置関数
  • 中置関数

という2つのスタイルがある。

 

演算の優先度は、関数が1番高い。

 

 

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!