Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

【自習記録】プログラミングHaskell 第2章

実行環境セットアップ

次のブログを参考に進めました。
・Haskellを始めよう
http://d.hatena.ne.jp/nanntekotta/20100504/1272952476

次のサイトからWindows用のインストーラをダウンロード&インストール
Hugs
https://www.haskell.org/hugs/pages/downloading.htm

<追記>
Hugsは2006年以降更新が止まっているとのことで、GHCを使った方が良いとのこと
次のサイトより、Haskell platformを導入しました。以降はこちらを使う方針でいきます。

Haskell platform
https://www.haskell.org/platform/

動作確認

p12~p13のサンプルを動作させてみた。
・四則演算子(+ - * /)の動作確認 ⇒ 書籍通りの動作
・'div' ⇒ エラー、原因調査はまた今度
    <追記>シングルクォートではなくバッククォートでした。`div`として書籍通りの動作を確認。
    (@philopon様ありがとうございました。)
・↑ ⇒ べき乗演算子。付録Bを参考に^へ読み替えて動作確認
・head、tail 等の配列処理の関数? ⇒ 書籍通り動作
・ 1 `div` 0 ⇒ 書籍通りエラー(Program error: divide by zero)
・head[] ⇒ 書籍通りエラー(Program error: pattern match failure: head [])

関数適用

・Haskellでは関数の適用は単に空白文字を使う
・関数適用は他のすべての演算子より高い結合順位を持つ
 ⇒例えば、F a + bF(a) + b と解釈される(Fは関数)
F(g(x) という風に関数を適用したい場合は、F(g x)と書く
 ⇒F g x と書くと F(g,x) と解釈されてしまうので注意が必要
・``(バッククォート)で囲むと中値関数とすることができる
 ⇒たとえば、mod 7 2 を 7 `mod` 2と書くことができる
  ⇒引数が2つの場合のみ?

今日はここまで

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?