実用的なLispに興味があって、Clojureに入門した2022年6月。
趣味レベルでしか使ってはいないが、使ってみた感想を書く。
孔雀本を使った。
孔雀本に従って、leiningen
を使った。
JDKを適当なバージョン入れた。
Windows環境だったので、 https://leiningen.org/ からbatを落としてきてパス通したら終わった。
EmacsにCIDER
いれるのは、ふつうにpackage install
でできた。lain
にパス通ってれば特に問題なく使えた。
孔雀本の最後に「数当てゲーム」の制作あったので、その時流行ってたWordleを作ってみることにした。
ビジネスロジックは、素のClojureで書く。
ビューをCLIとWebの両方に対応してみた。
クリーンアーキテクチャの影響で、ビューは詳細だから交換可能にするのがやってみたかった。
出来上がったもの->https://github.com/fujimotok/clojure-wordle
ElispでLisp開発は体験済みだったが、複数のファイルにまたがった開発は初めて。
評価結果をCIDERコンソールに出して、それを次のインプットに使いまわすというREPL体験。
Lispの同図像性が生かされている。
別に整形してプリントしなくても、そのまま次のインプットに使えるのすごい。
LipsといってもElispしか触ったことなくて、あまり関数型チックに使ったことがなかった。
atomや再代入禁止の縛りで、宣言型のプログラミングからのパラダイムシフトが大変だった。
しかし、副作用のない、テスタブルなコードが書けるのにはまっていった。