WSLへのHaskellのインストール並びにVisual Studio Codeの環境設定

# _WSLへのHaskellのインストール_  

by **_Shuichi Ohtsu_** 


ビデオ解説(日本語）
https://youtu.be/FLqdj87pE9U

ビデオ解説(英語）
https://youtu.be/aC3-Ur-mNM0


--------------------
## 動作環境

_WSL(Windows Subsystem for Linux)_にインストールされたUbuntuにHaskellをインストールする方法をご紹介いたします。


Haskellは、関数を中心にしてプログラムを組み立てる、プログラミング言語です。

Haskellの概要や文法については、Referenceをご覧ください。


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

## Ubuntuのアップデート

まずWSL上のUbuntuを開きます。

  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_01.png" width= "640" >


まず、`sudo apt update`を実行し、更新情報を取得します。

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


  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_02.png" width= "640" >


次に、`sudo apt upgrade`を実行し、システムを更新します。


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

## Haskellのインストール



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_03.png" width= "640" >


最初にコマンドラインから `cd /mnt/c`と打ち込んでWindows Cドライブに移動します。


  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_04.png" width= "640" >



次に、 `ls`と打ち込んでCドライブの内容を表示してみます。


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


  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_05.png" width= "640" >



次に、特定のディレクトリにHaskell用のディレクトリを作成します。

ここでは `__myprg`ディレクトリに`Haskell`という名前のディレクトリを作成しました。



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_06.png" width= "640" >


次に、_Haskell_をインストールします。

`sudo apt install haskell-platform`と入力します。

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

## Stackのインストール


  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_07.png" width= "640" >


次にStackもインストールしておきます。

Stackは、Haskellのプロジェクトの新規作成、ビルドなどを行うツールです。

`sudo apt install haskell-stack`と入力します。

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

## Visual Studio Codeの環境設定

次にHaskellのプログラムの編集を行うための、エディタの環境を調えることにします。


  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_08.png" width= "640" >


コマンド・ラインで`code .`と入力してVisual Studio Codeを起動します。

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


  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_09.png" width= "640" >



まず、左側の_拡張機能_アイコンをクリックし、検索ボックスに`Haskell`と入力します。

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

すると検索結果に_Haskell Syntax Highlighting_が表示されますので、_インストール_をクリックします。

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


  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_10.png" width= "640" >


_Haskell Syntax Highlighting_の解説ページが表示されましたら、_再読み込みしてアクティブにする_ をクリックして、有効にします。

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



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_11.png" width= "640" >


次にターミナル・ウィンドウで_bash_を利用できるように、設定を変更します。

`control + ,`を入力して、_Settings_ページを表示します。

そして、検索ボックスに`terminal.integrated`と入力します。

_setting.jsonで編集_が表示されますので、これをクリックします。

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



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_12.png" width= "640" >


すると右側に、ユーザー設定の内容が表示されますので、

`"terminal.Integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",`

と入力し、このファイルを保存し、VS Codeを一旦終了します。

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

コマンド・ラインに戻り、`code .`と入力して、VS Codeを再起動します。

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

## Haskellプログラムの実行



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_13.png" width= "640" >


VS Codeが開きましたら、`control + @`キーでターミナル・ウィンドウを開きます。

_bash_が有効になっているのがわかります。

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



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_14.png" width= "640" >


次に、簡単なHaskellプログラムを作成して、起動のチェックを行います。

VS Codeで、`hello.hs`というファイルを新規作成し、

`main = putStrLn "Hello, World!"`

と入力して、保存します。

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



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_15.png" width= "640" >


次に、ターミナル・ウィンドウで、

`ghc hello.hs -o hello03`

と入力します。

_ghc_ はコンパイラであり、_hello03_コンパイルにより生成される実行ファイル名です。

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



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_16.png" width= "640" >


次にこれを実行します。

`./hello03`と入力します。

`Hello, World!`が出力されました。

ＯＫです。

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



  <img src="https://raw.githubusercontent.com/Ohtsu/images/master/wsl/wsl_ubuntu_haskell_17.png" width= "640" >


次に、出力ファイルを指定しないで、そのまま実行してみます。

`runghc hello.hs`と入力します。

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

`Hello, World!`が出力されました。

ＯＫです。

Haskellのインストールを確認することができました。

--------------------
　  
## Reference

- "ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門", 
<https://www.amazon.co.jp/%E3%81%B5%E3%81%A4%E3%81%86%E3%81%AEHaskell%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E3%81%B5%E3%81%A4%E3%81%86%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E%E5%85%A5%E9%96%80-%E9%9D%92%E6%9C%A8-%E5%B3%B0%E9%83%8E/dp/4797373970/ref=sr_1_5?ie=UTF8&qid=1541321932&sr=8-5&keywords=Haskell>

- "Haskell入門 関数型プログラミング言語の基礎と実践", 
<https://www.amazon.co.jp/Haskell%E5%85%A5%E9%96%80-%E9%96%A2%E6%95%B0%E5%9E%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%81%A8%E5%AE%9F%E8%B7%B5-%E6%9C%AC%E9%96%93-%E9%9B%85%E6%B4%8B/dp/4774192376/ref=sr_1_2?ie=UTF8&qid=1541321932&sr=8-2&keywords=Haskell>

- "すごいHaskellたのしく学ぼう!", 
<https://www.amazon.co.jp/gp/product/4274068854/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1>

- "プログラミングHaskell", 
<https://www.amazon.co.jp/dp/4274067815/ref=sxbs_sxwds-stvp_1?pf_rd_m=AN1VRQENFRJN5&pf_rd_p=14895845-6b63-47e2-b967-96bf0ca66fcb&pd_rd_wg=ZJDGq&pf_rd_r=0649V2CWECG2NZ0KXHKB&pf_rd_s=desktop-sx-bottom-slot&pf_rd_t=301&pd_rd_i=4274067815&pd_rd_w=zZKAt&pf_rd_i=Haskell&pd_rd_r=7e5f740f-e6c7-4c7f-9e7e-a4ef2c2531f2&ie=UTF8&qid=1541321932&sr=1>

- "Haskellによる関数プログラミングの思考法", 
<https://www.amazon.co.jp/Haskell%E3%81%AB%E3%82%88%E3%82%8B%E9%96%A2%E6%95%B0%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E6%80%9D%E8%80%83%E6%B3%95-Richard-Bird/dp/4048930532/ref=sr_1_8?ie=UTF8&qid=1541321932&sr=8-8&keywords=Haskell>

- "Windows 10 Installation Guide", 
<https://docs.microsoft.com/en-us/windows/wsl/install-win10>

- "Windows 10でLinuxプログラムを利用可能にするWSLをインストールする（バージョン1803以降対応版）", 
<http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html>

- "Windows Subsystem for Linuxをインストールしてみよう！", 
<https://qiita.com/Aruneko/items/c79810b0b015bebf30bb>


- "「Windows Subsystem for Linux(WSL)」セットアップガイド【スクリーンショットつき解説】", 
<https://linuxfan.info/wsl-setup-guide>


- "Angular5, Angular6, Angular7 Custom Library: Step-by-step guide", 
<https://www.udemy.com/angular5-custom-library-the-definitive-step-by-step-guide/>

- "Angular5, Angular6, Angular7用 カスタムライブラリの作成: 完全ステップ・バイ・ステップ・ガイド", 
<https://www.udemy.com/angular5-l/>