GGG

プログラミング言語やソフトウェア開発について思ったことを書いてます

Haskell Platformを使って遊ぶ準備をする。

 Haskellにはインタラクティな実行環境があるようだ。

GHCi というもの。

Windows環境にも提供されているため、導入してみることに。

 

Download : Haskell Platform

https://www.haskell.org/platform/windows.html

 

ダウンロードしたファイル名

HaskellPlatform-2014.2.0.0-i386-setup.exe

 

インストール環境

インストール先環境

Windows 7 Projessional Sp1

32bit  OS

 

インストール手順

[1] インストールしたexeを実行する。

[2] 次のWizardのキャプチャに従う。

f:id:taisyo7333:20150611213127p:plain

f:id:taisyo7333:20150611213141p:plain

f:id:taisyo7333:20150611213200p:plain

f:id:taisyo7333:20150611213213p:plain

f:id:taisyo7333:20150611213218p:plain

f:id:taisyo7333:20150611213226p:plain

f:id:taisyo7333:20150611213230p:plain

インストール完了

 

インタラクティブ環境(GHCi)を起動する

コマンドプロンプトまたは、Poweshellを起動し、GHCi と入力すると下記のメッセージが出力される。

 

C:\Users\xxxxxxxx>ghci

GHCi, version 7.8.3: http://www.haskell.org/ghc/  :? for help

Loading package ghc-prim ... linking ... done.

Loading package integer-gmp ... linking ... done.

Loading package base ... linking ... done.

Prelude>

動かしてみる

※四則演算を試してみる(加算)

Prelude> 1 + 2

3

※1 ~ 10 の範囲で,奇数の数値を取得する(リスト)

Prelude> [ x | x <- [1..10] , odd x ]

[1,3,5,7,9]

※ 階乗を算出する関数を作成する。

Prelude> let factorial x = if x == 0 then 1 else x * exp (x-1)

※ 3! を算出する

Prelude> factorial 3

6

※ 2! を算出する

Prelude> factorial 2

2

※ 1! を算出する

Prelude> factorial 1

1

※ 0!を算出する

Prelude> factorial 0

1

 

終了する

Prelude> :quit

Leaving GHCi.

 

C:\Users\xxxxxxxx>

 

 

コンパイルして実行してみる

参考:http://walk.wgag.net/haskell/basic.html

Hello World のコードを書く

ファイル名

test.hs

コード

main = putStrLn "hello,world"

備考

・main は関数名。

 C, C++ などの他のプログラミング言語と同様に実行ファイルのエントリポイントらしい。

・大文字小文字は区別する。

・putStrLnは関数名。

→引数の値を標準出力する。(改行する。)

 ※半角空白を入れて、一つ目のトークンを第一引数としている。

 C言語のprintf(“%s,%d,%f\n”,a,b,c) のように’(‘ 、’)’、’,’は使わずに半角空白を利用する。

想定される結果

hello,world

 

コンパイルする

PS C:\Haskell> ghc test.hs

[1 of 1] Compiling Main             ( test.hs, test.o )

Linking test.exe …

  

確認する

コンパイルが成功するとexeファイルが作られる。

 

PS C:\Haskell> ls

   ディレクトリ: C:\Haskell

 

Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---        2015/06/11     16:10    1472518 test.exe

-a---        2015/06/11     16:10        540 test.hi

-a---        2015/06/11     16:09         29 test.hs

-a---        2015/06/11     16:10       1654 test.o

 

実行する

PS C:\Haskell> .\test.exe

hello,world


以上。