とれたてHaskellまるごと1日分の入ったHaskellプロジェクトがこれです
今日はこんなのを作りました。
例により、@blac_k_ey、@yassu0320と謎の店に集まり、作業しました。
これは、実行されると予め設定ファイルに書いておいた、曜日ごとの予定を表示してくれる、簡単なCLIアプリです。
例えば、.zshrc
や.zshenv
的なものに、これを実行させるように書いておけば、一日の最初にシェルを開いたときに、予定を教えてくれます。
「あとでまた教えて!」って言っておけば、そうしてくれます。
ずっとこんな感じのが欲しかったので、作りました。
作業時間は5時間いかない程度なので、ちょうど人間的な1日分の作業まるごとって感じです。
つまり、これが僕の今のHaskell力なのではないか? と思い、備考録がてらこの日記を書きました。
感想
先程 お風呂の中でてきとうに、Twitterに書いておいた感想をこちらにも書いておきます。
-
よくできたと思うところ
- 適切な粒度の関数分割ができたと思う
- 適切なライブラリを選んで、アプリ固有のロジックに絡まないものはライブラリに頼れたと思う
- 可読性を気にした(インデントが最大だと、関数から見て4レベルいってるけど抑えた)
- 型に現れないエラーを気にした
- README.mdをemojiで装飾してみた
-
気になるところ
- モジュール分割してない(小物だし、メンテナンスアビリティ高くなくてもいいかな? とか考えて、やってないだけ)
- 'mark'という名前が曖昧なので、他の言葉に置き換えた方が良さそう
f $ g x
でいいところをf . g $ x
としてる(気にしすぎといえば、そう)- 145行目の'remember'が先頭小文字(他は大文字始まり)(気にしすぎといえば、そう)
参考にしたページ
参考にした、というよりも、stackageのAPIを引くなどして、見つけたドキュメントですね。
stackageのAPIを引くのに、以下のVimプラグインを使用してます。 宣伝ですので、スターくれてもいいんですよ?
はい、以下が参考にしたページです。
- safe - stackage
- Haskellの危うい標準ライブラリ周り……
head
やread
を安全に提供してくれるライブラリです
- Haskellの危うい標準ライブラリ周り……
- text-show - stackage
- Show型クラスのText版を提供してくれるライブラリです
- fromTextを使えば、難しいことは何もないはずです
- time - hackage
- 日付、時刻を扱うライブラリです
- 明示的には曜日を扱っていないようです(目標を正確に捉える姿勢、流石です)
ところで、この記事を書くのに要した時間は約30分でした(特に何があるわけではありませんが、備考録ですので)。
食べても食べても太らない焼肉とスシが食べたいなー。