Haskell > 本 > 入門Haskellプログラミング > LESSON 1

入門Haskellプログラミング

  入門Haskellプログラミング
Will Kurt
翔泳社
2019-07-31
¥ 4,104

LESSON 1

  • Haskellの開発ツールのインストール
  • GHCとGHCiの使用
  • Haskellプログラムの記述に関するヒント

Haskell Platform

Haskellの実行環境は、Haskell Platformを使うと簡単にインストールできます。

ここからOSに合ったインストーラーをダウンロードして、インストールすればOKです。
(本書の学習では、Windows用のHaskell Platformを使ってみます。)

WinGHCi

Windowsの場合は、「WinGHCi」というHaskellのインタープリターが使えます。
Haskellの学習では、主にこれを使ってサンプルコードを動作確認します。

WinGHCi.png

WinGHCiで

:?

というコマンドを打てば、簡易な説明が表示されます。

WinGHCiでコンパイルする方法

Haskellコードをロード(読み込み)

WinGHCiのメニューで、[File] → [Load]を選ぶと、Haskellのプログラムをロードできます。

コンパイラーの実行

WinGHCiのメニューで、[Tools] → [GHC compiler]を選ぶと、ロードしたプログラムがコンパイルされます。

  • サンプルコード 「hello.hs」というファイル名で保存しておきます。
      1
      2
      3
    
    -- hello.hs my first haskell file !
    main = do
        print "Hello World!"

WinGHCiでロードした後、「main」という関数を実行(mainと入力してエンターキーを押す)すれば、

Hello World!

と表示されます。

さらにコンパイルを実行すると、「hello.hs」と同じフォルダに「hello.exe」が作成されます。
コマンドプロンプトを開いて、「hello.exe」を実行すれば、

Hello World!

と表示されます。

WinGHCi_compiler.png

Visual Studio CodeでHaskellのコードを編集

Haskellのコードを書くためのエディターやIDEは、自分が好きなものを使えばよいでしょう。

Visual Studio CodeにHaskell用のプラグインをインストールすれば、コードハイライトなどができます。

VSCode_Haskell_Syntax.png

Linuxの場合(Ubuntu)

GHCのコマンドの使い方が、Haskell Platformの場合とStackの場合で違うので注意!
cf. Haskellのインストール
以下、Stackの場合で記述。

コンパイル

端末を起動して、「hello.hs」があるディレクトリーに移動する。

$ stack exec ghc hello.hs

これで「hello.hs」がコンパイルされて、「hello」というバイナリーファイル(実行ファイル)が生成される。

stack exec ghc ソースファイル

という形式。
コンパイル時のオプションもいろいろ指定できる。

実行ファイルの動作確認

「hello」というバイナリーファイル(実行ファイル)がある場所で、次のコマンドを実行する。

$ ./hello
"Hello, World!"

これで、コンパイルの成功が確認できた。

別名の実行ファイルにコンパイルする場合のコンパイルオプション

$ stack exec ghc ソースファイル -- -o 別名

という形式で指定できる。

※PlatformのGHCの場合、「--」という部分(オプション付与の指示)が不要。

$ ghc ソースファイル -o 別名

(stackのコマンドの書き方は、ちょっとだけ違う部分がある場合もあるので、面倒くさいかも?エラーが起きたときは、stackとPlatformの違いを思い出そう。)

$ stack exec ghc hello.hs -- -o helloworld

これで「helloworld」というバイナリーファイル(実行ファイル)が生成される。

$ ./helloworld
"Hello, World!"

インタープリター

$ stack exec ghci

でGHCi(インタープリター)を起動する。

起動した後は、上記のPlatform(WinGHCi)と同様の手順で操作できる。

$ stack exec ghci

スクリプトファイルをロードする。

Prelude> :l hello
[1 of 1] Compiling Main             ( hello.hs, interpreted )
Ok, one module loaded.

main関数を実行する。

*Main> main
"Hello, World!"

空のロードを実行して、前回のロードを解除する。

*Main> :l
Ok, no modules loaded.

インタープリターを終了する。

Prelude> :q
Leaving GHCi.

これら一連の基本作業は、今後何度も行うので、覚えておこう。


添付ファイル: fileVSCode_Haskell_Syntax.png 26件 [詳細] fileWinGHCi_compiler.png 23件 [詳細] fileWinGHCi.png 17件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-09-15 (日) 19:11:32 (293d)