2019-07-17: 周年カードのトレーニングがはじまった
やったこと
mdx-deck
バージョン3が出ていた。マジか‥‥。
なんかGatsbyのプラグインも出ているのでそっちに移行したい‥‥が難しいような気もする。
とりあえずCodeSurferはよ更新してくれ。
シャニマス
こがたんTrue。
Da 500越えてないのにDa 4倍アピ持ってるからゴリ押しできるという‥‥。
というかWING準決勝も決勝も1位Daだったから余裕だね。
途中にラジオでカタストロフったりオデ2回くらいミスった気がするけど最後には優勝したからオールオッケーです。
https://twitter.com/make_now_just/status/1151156166375825413
感謝祭は何も分かんない。
とりあえず育成イベントの限定sSR霧子は取りきったので満足。
https://twitter.com/make_now_just/status/1151503018346422272
ミリシタ
周年カードの覚醒トレーニングが始まったのでやってる。
メモリアルコミュとドレスアップが面倒。
https://twitter.com/make_now_just/status/1151411062526246912
今はもうちょい進んでる。全員のソロやるのがしんどいんじゃ。
あとSideMの5周年の生放送観た。SideMもやっていかねばな。
Scala近況
ここ2週間くらい、ScalaMatsuri 2019のあとから福岡に行く飛行機の中とかで書き始めたやつ。
nyanという名前のcatsもどきのライブラリを作ってる。
https://github.com/MakeNowJust-Labo/scala-labo
今のところ2つのモジュールに分かれていて、
nyannyan-free
になってる。nyanの方ではFunctorとかMonadとかの型クラスだったり、ReaderTとかのデータ型を実装したりして、nyan-freeでFreeとOperationalを実装してる。
現状のステータスとしては、とりあえずOperationalは動くようになったけど、多分そんなに効率が良くない感じで、(そっちは飽きてきたので)今はMonadとかlawチェックをScalapropsでやってみてる。
やっぱProperty Based Testing面白いのんな。
以下、思ってることなど。
Selectiveについて
なんとなく調べてた。
Applicativeは関数部分と引数部分を並列に実行できるという意味で並列的で、Monadはそれが不可能という意味で逐次的という考察が大事だと思う。
それで、Selectiveというのはその意味でApplicativeとMonadの中間で、必要が無ければ関数部分の実行をスキップするようなもの、ということになる。
ただ、この関数部分の実行のスキップというのはlawで規定されているものじゃなくて、むしろlawではそうなることを慎重に避けるようにしてる。
Monadだと確実に一番効率的な実装ができるけど、それ以外の場合はそうではなくてもいいっぽい。
また、具体的にどれくらいの効率になるかっていうのがOverとUnderという型を使うと測定できるっぽい。
疑問点: 任意のApplicativeはSelectiveになる? なるけどあまり意味が無い?
論文ちゃんと読まないとさすがに分かんない気がする。
MonadLogicについて
Selectiveを調べてたらなんとなく思い出したので、こっちも調べてみてる。
MonadLogicのインスタンスはLogicTとリスト以外わりと壊れがちっぽい。
msplitという操作が鬼門なのだろう。
基本的にはLogicTというか、ListTみたいな型でしか正しく実装できないんじゃないかな、という気がしてる。
LogicTがFree MonadLogicみたいな感じなので当然っちゃ当然だけど。
こっちも一応実装してみたい。
IntelliJ IDEAとMetals
型が複雑なコードを書いてるせいかIDEAがfalse positiveに陥りがち。
回避できるときもあるんだけど、何箇所かどうしたらいいのか全く分かんないのがあったので辛くなっていた。
VS CodeでMetalsというScalaのLanguage Serverを使ったら面白そうだと思ったので試してみてる。
実際にコンパイラを走らせてるのでfalse positiveは無い。けどファイル保存時にしかチェックが走んないのがむずかゆいところ。
まあでも補完出るし十分な気もする。
もう少し使ってみようかな、と思う。