HaskellのインストールからAtomの環境構築まで

Haskellはじめました。

なぜHaskellをやろうと思ったか

ある勉強会で出会った人が「Haskellはいいぞ〜」って言ってたのでやってみよかなと思いました。
何に使えるかは置いといて、HaskellやScalaのような言語をやっておくと、
なるほど、そういう考え方もあるんですねと気付かされるらしい。知らんけど。

よく言われる、Haskellの特徴は関数型プログラミングだという点らしいです。
また、これまで僕はよくJavaScriptを書いていたのですが、この言語は

  • 弱い静的型付け
  • 手続き型やオブジェクト指向でよく書かれる

という特徴を持ち、一方Haskellは

  • 強い静的型付け
  • 関数型

なのでよくわからないなりに対局的な存在なのかなと感じたのでやってみると学ぶことが多いのではないかと思い始めてみました。

Haskellのなにがいいのかをわかりすく解説されている記事とスライドがありました。

スライドはこちら。

 

【参考】
Haskellで生産性を高める-Pythonからの移行 | POSTD
なぜHaskellを学ぶと良いか – Qiita

 

インストール

Stackってなに?

Haskellを始めようとするとstackというツールを使おうと出てきますが、
これはHaskellで開発するプロジェクトの作成やビルドをやってくれるツールのようです。

僕もまだよくわかってないので、詳しくは以下の記事などを参考にしてみてください。

【参考】
Haskell Stack とは何をするツールなのか – Qiita
Haskellのビルドツール”stack”の紹介 – Qiita

 

MacにHaskellを入れる

以下の公式ドキュメントのページを参照にして入れます。
Home – The Haskell Tool Stack

$ curl -sSL https://get.haskellstack.org/ | sh

プロジェクトの作成をします。
$ stack new my-project
$ cd my-project
$ stack setup

ビルド

$ stack build

実行

ビルドしたプロジェクトをstack exec {プロジェクト名} -exeで実行できます。
今回の場合は、
$ stack exec my-project-exe

実行結果は、
someFunc

あれ、ハローワールドじゃない・・。

 

hello worldする

src/Lib.hsの中身を以下のように変更する

再びbuildしてexecすると
hello world!
と表示される

 

ビルドせずに実行する

ちなみにビルドせずに実行する方法もあります。
$ stack runghc app/Main.hsで実行できます。

ghcでコンパイルして実行する方法です。
これ、本来ならstackを入れた時に入ってる気がしますがなぜかエラーが出たので再インストールします。

$ brew install ghc
でコンパイラをインスコ

$ ghc -o hoge hoge.hsでコンパイル
$ ./hogeで実行

 

会話する

$ ghciを実行することでpythonの会話のように
会話しながら実行できる

:quit
で終了

:l fileName
でファイルを読み込み、その中で定義された関数などを使うことができます。

:t functionName
でその関数の型の推論結果を表示してくれます。便利!

:m + Module.name Module.name2
でモジュールをロードできます。

 

Atomの環境構築

お約束のAtom環境設定をします。

ide-haskell

公式ドキュメント

文法エラーの表示やら、コードフォーマットなどいろいろやってくれるみたいですね。
公式ドキュメントのこのページによると、このパッケージだけじゃなく、たくさんの依存パッケージを入れる必要があるようだ。

language-haskell

Haskellファイルにシンタックスハイライトとスニペット補完を提供します。

autocomplete-haskell

補完してくれます。

haskell-ghc-mod

autocomplete-haskellが依存しているパッケージのようですが、
Enableするとエラーが出てよくわからないので一時的に保留しています。

その他パッケージ

ATOMのide-haskell導入手順(MacOS X) – Qiita
Atom EditorでHaskell – Qiita

 

Haskellを学ぶ

サイトで学ぶ
Haskell 超入門 – Qiita

本で学ぶ
すごいH本

独特な文法が良い感じですね。

どこで使われているのか

意外といろんなところで使われています

コメントを残す