とりあえず動くものができてよかった.
こちらから遊べます
ソースコードはこちら
開発過程でたくさんコンパイルエラーを出しましたが,コンパイルさえ通ってしまえば実行時エラーが起きることはほぼなかったです.
Type-Safeの恩恵を実感できました.
以下,反省点.
- Halogen特有の機能はほとんど使用していない.多分Elmと大差ない.
- ソースコードにコメントを記述していない.
- 2次元Arrayを縦横無尽に駆け回る処理をきれいに記述できなかった.なにか良い方法がないかな?
- UIをもう少しきれいにしたかった.
purescriptの環境構築に苦戦することが多いためDockerfileを作成しました.
ビルドすればpurs(コンパイラ)とspago(ビルドツール)が使える状態になっています.
Dockerfileの中でaptを使うのは非推奨らしく,今後できれば対応したいです.
この記事の執筆時点でのDockerfileを下記に示しますが,更新は
Dockerfileの置いてあるGithubリポジトリ yutaro-sakamoto/purescript-spago
に対してだけ反映するつもりです.
FROM ubuntu:20.04
LABEL maintainer="yutaro-sakamoto@yutaro-sakamoto.com"
RUN apt update -y
RUN apt upgrade -y
RUN apt install -y tzdata
RUN apt install -y nodejs npm git libncurses5
# install psvm
RUN npm install -g psvm
# install purs
RUN psvm install v0.14.0
RUN psvm use v0.14.0
RUN echo 'export PATH="$PATH:/root/.psvm/current/bin/"' >> ~/.bashrc
# install spago
RUN npm install -g spago
ENTRYPOINT ["/bin/bash"]