第2章 はじめの一歩

処理系としては、Haskell Platform 2011.2.0.1 および WinHugs をインストールしてある。

最初、test.hsをロードしようとしてエラーが出て困った。

ERROR file:test.hs:1 - Syntax error in declaration (unexpected symbol "x")

ちょっとぐぐったら原因判明。文字コードがBOMつきUTF-8だったのが問題だったらしい。基本的にはANSIまたはBOMなしUTF-8じゃないといけないようだ。ま、BOMつきUTF-8なんて使うドザが悪いというのはあるけど、それにしてもOSS文字コードの扱いはいろいろ良くないところがあるよね。

練習問題1
  • 2^3*4 = (2^3)*4 = 32
  • 2*3+4*5=(2*3)+(4*5) = 26
  • 2+3*4^5=2+(3*(4^5)) = 3074
練習問題2
もちろんHugsでやってる。
練習問題3
N = a `div` length xs
where
a = 10
xs = [1,2,3,4,5]

実行してみたらエラーメッセージで分かるだろう。
  • Syntax error in input (unexpected symbol "xs")
    たぶんxsのインデントが悪い。空白を追加。
  • Undefined data constructor "N"
    Nが大文字だからエラーになっているっぽい。小文字にしてみる。
あれ、エラー消えちゃった。引数なしの関数nを表示してみたら2って出るし。関数にするのは良くなかった?でもデータコンストラクタとか、まだ教科書に出てきてないぞ。
……もう一度問題文を見たら、'div'って書いてある。ここが間違いだったらしい。正しくはバッククォートを用いて`div`とやる(上では最初から`div`と書いてしまっていた)。