かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Hello world

Haskellをダウンロードしてみました。
関数型の言語は,Lispを大学の講義で2回書いただけなのでド素人です。
そんな俺ですが,「ふつうのHaskellプログラミング」という本を買ったのでちょっとずつやっていこうと思います。
飽きっぽい性格なので続くかわかりませんが。


コマンドプロンプトでこんな感じになるようには設定完了!

d:\>ghc -v
Glasgow Haskell Compiler, Version 6.4.2, for Haskell 98, compiled by GHC version
 6.4.2
Using package config file: D:\develop\Program Files\ghc\ghc-6.4.2\package.conf
Hsc static flags: -static
*** Deleting temp files
Deleting:
ghc: no input files
Usage: For basic information, try the `--help' option.

d:\>

基本ですよね。

いざHello world

本によるとHello worldのプログラムは

main = putStrLn "Hello, World!"

らしい。
とりあえず意味はわからないが!"Hello, World!"と書かれてる時点で動作は予想できてしまうのはプログラマの共通認識ですよね。
というわけで,コンパイル -> 実行です。

コンパイル
H:\develop\Program\Haskell\HelloWorld>ghc hello.hs -o hello
実行
H:\develop\Program\Haskell\HelloWorld>hello
Hello, World!


おぉ!出た!お馴染みのが!
今までも色んな言語で書いてきたなぁ。
例えば

C言語-----------
#include <stdio.h>
int main() {
  printf("Hello, World!\n");
  return 0;
}

C++言語---------
#include <iostream>
int main() {
  std::cout << "Hello, World!" << std::endl;
  return 0;
}

Java------------
public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}

C#--------------
public class HelloWorld {
  [STATherad]
  static void Main(string[] args) {
    Console.WriteLine("Hello, World!");
  }
}


色々といっても4つだけでした…。
とりあえず,全てはここから始まりますね。


あぁちなみにHello Worldの動かし方はいくつかあるみたいです。

runghc-------------------
H:\develop\Program\Haskell\HelloWorld>runghc hello.hs
Hello, World!


インタプリタですね。


他には,ghciというものがあるらしい。
対話式のインターフェイスだとか。
Windowsならスタートメニューに登録されているのでそこから起動できます。

   ___         ___ _
  / _ \ /\  /\/ __(_)
 / /_\// /_/ / /  | |      GHC Interactive, version 6.4.2, for Haskell 98.
/ /_\\/ __  / /___| |      http://www.haskell.org/ghc/
\____/\/ /_/\____/|_|      Type :? for help.

Loading package base-1.0 ... linking ... done.
Prelude> putStrLn "Hello, World"
Hello, World
Prelude>

うちこんだプログラムが即座に実行されますね。
とりあえずこんなもんですか。
終了するには:quitと打ち込みます。