HaskellでHelloWorld
とりあえずお約束の「HelloWorld」から
main = putStrLn "Hello, World"
これを「hello.hs」ファイルの保存して、コマンドプロンプトで以下のコマンドを実行する。
> runghc hello.hs Hello, World
これでHaskellインタープリターが起動して、スクリプトが実行される。
Haskellにはインタープリターの他にも、スクリプトをコンパイルして実行ファイルにすることもできる。
> ghc hello.hs -o hello
hello.exeファイルが作成される。これでHaskellがインストールされていない環境でも実行できるようになる?
他にも対話型のインタープリターがある。
では、処理の内容を見ていく。
main = putStrLn "Hello, World"
putStrLnは引数で指定した文字列を出力する関数。
Haskellではこれを"Hello, World"文字列にputStrLn関数を適用するという。
そして、この式(結果ではない)をmain関数に代入する。Haskellではこれは関数ではなく「アクション」と呼ぶ。
プログラムが開始されるとmainアクションが実行される。いわゆるエントリーポイント。
このへんはC#やPowershell、Pythonをやっていれば理解できる。これらの言語は関数(メソッド)もオブジェクトとして扱うからだ。
これをC#で書くとこんな感じだろうか、
MethodInvoker main = (MethodInvoker)delegate() {
Console.WriteLine("Hello, World");
};
main();
Powershellだとこんな感じか、
& $main = { echo "Hello, World" }
ここまではわかる。