haskell-jp / mokumoku-online #62

"Effective Haskell," by Skinner R. Ch. 9 Introducing Monads, Ch. 10 Mutable Data in the Real World, Ch 11 Serializing Heterogenous Data 斜読完了 開発プロジェクトの基本事項を解説している
Advent of Code 2023 Day 15: Lens Library: Part 1 やるだけ Part 2: ただいま考慮中
MArray のコンパイルエラーを取ったりしてました
一応、既存のテストプログラムとcomposeを使ったテストプログラムが期待通りの結果となりました。
ですが、追加した処理のうちテストできていない部分が残っています。
自分にとってまだまだ先は長そうです。
山本悠滋です。お昼ご飯を食べてから、いつもどおりmakeMistakesToLearnHaskellの続きや、cabal replの件の続きをします。
S.K.です。今週もお世話になります。よろしくお願いします。
今週も引き続き、Implementing Functional Languages : a tutorial の、4.4.4 Garbage Collection の続きを進めていこうと思います。
"Effective Haskell - Solving Real-World Problems with Strongly Typed Functional Programming," Rebecca Skinner (The Pragmatic Bookshelf 2023) Ch. 12 ~ を斜め読みしながら 著者の podcast: を聞き流します
あとハシゴで 18 日目 もはや周回遅れもいいところで「週」回遅れとツッコミもありですが
眠くてあまり進みませんでした。
・今日のmakeMistakesToLearnHaskellの進捗: https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/b3fc029825467b86ba3d5e8fc035f20052e98209
削除の方が多い!

・cabal replの件はぼちぼち
4.4.4 のテストプログラムを考えていたのですが行き詰ってしまい、4.5 Mark4: Updating を少し進めました(Ex.4.16まで)。
中途半端な状態で他事進めてしまってお恥ずかしい限りです。
"Effective Haskell," by Skinner R. Ch. 12 Deserializing Heterogenous Data, Ch. 13 Building Applications with Many Effects 斜読完了 Parser, State, StateT, mlt と導入から展開が好い
Advent of Code 2023 Day 18: Lavaduct Lagoon: Part 1 Green の定理を使う実装中 Part 2: は後日に見送り
山本悠滋です。今日は実家にいるので、のんびりmakeMistakesToLearnHaskellの続きを書きます
S.K.です。今週もお世話になります。よろしくお願いします。
Implementing Functional Languages: a tutorial の、4.4.4 Garbage Collection の続きか、4.5 Mark4: Updating の続きの、進めやすそうな方を進めていこうと思います。
"Effective Haskell - Solving Real-World Problems with Strongly Typed Functional Programming," Rebecca Skinner (The Pragmatic Bookshelf 2023) Ch. 14 ~ 最終回を斜め読み
あとハシゴで 20 日目 もはや青息吐息で年内ゴールは絶望的ですが
他のやることもあったり、キリが良かったりしてるので今日はこれだけにしておきます。大晦日ハッカソンとの同時参加でした。
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/07b9a694e86d793bb6123debcf3734a8fd29834b
"Effective Haskell," by Skinner R. Ch. 14 Building Efficient Programs, Ch. 15 Programming with Types 斜読完了 前章は諸ツールの使い方が詳説され有益 最終章はここまでするかと呆れるくらい もはや完全消化不良 スゴイらしいことだけ分かる圧巻
Advent of Code 2023 Day 20: Pulse Propagation. Part 1: Conjunction の挙動がよく分からない 英語力はたまた理解力 あるいはその両方が足りない模様 状態遷移の良問だと思うのだが Part 2: には及ばず力尽きた今年はもはやこれまで 
では皆さんよいお年を!
4.5 Mark4: Updating の続きを進めて、Ex.4.17まで進めたところで、ふと一番基本的なテストプログラム"main = S K K 4"の動作を確認したところNGとなってしまいました。
Ex.4.16のテストプログラム"f x = x + x ; main = f (1+2)"は"1+2"の計算を1回だけ行ってその値をコピーして6を計算しているようですが、
"main = S K K 4"はPushMarker命令により引数スタックを空にした後でTake命令を実行してしまいNGとなりました。
コンパイラのPushMarker命令を生成する部分を間違えてしまったのかも。
こちらの方が進めやすそうかもと思ったのですが...お恥ずかしい。
今年一年お世話になりました。皆様よいお年をお迎えください。
良いお年をー!
@hk_slack2 has joined the channel
Bartosz Milewsky & Oli Makhasoeva - Recursion schemes, categorically! (2020)) 動画視聴
あとハシゴで 競プロ典型 90 問 20 日目 - Log Inequality(★3)
S.K.です。今年もお世話になります。よろしくお願いします。
引き続き、Implementing Functional Languages: a tutorial の、4.4.4 Garbage Collection の続きか、4.5 Mark4: Updating の続きの、進めやすそうな方を進めていこうと思います。
山本悠滋です。出先なので、帰ってからmakeMistakesToLearnHaskellの続きなどをやります。
Bartosz Milewsky & Oli Makhasoeva - Recursion schemes, categorically! (2020)) 動画視た ただし Scala での実例の部分はスキップ catamorphism の圏論的説明は平易で分かりやすかった
競プロ典型 90 問 20 日目 - Log Inequality(★3)バカにしてんのか!と思うような拍子抜けの易しさ やるだけ AC かつ最速最 Golf でした 粛々と次問の 21日目 - Come Back in One Piece(★5)に進む これは Data.Graph.path を使えると踏んだが まんまと TLE の罠に陥落しました
ほぼ進捗ゼロです! :innocent:
https://github.com/haskell-jp/blog/issues/221 の問題の直し方について調べてました。
... Replies ...
4.5 Mark4: Updating の続き(デバッグ)を実施しました。
Ex.4.16までの新規追加部分や変更部分を再確認してみたのですが、一応テキスト通りになっているつもり...
テストプログラムをいくつか実行してみると、関数呼び出しの引数が関数になっているテストプログラムがエラーとなっている模様。
4.5と4.4.4のどちらの道も自分にとって先は長そうです。
延長戦で対応できたはずです :relieved:
超遅くなってしまったけど今日のmakeMistakesToLearnHaskellはこれだけ。
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/245e2c5a1ea746d96e25c1766b1e9d7930c7d5b2
山本悠滋です。お昼ご飯を食べて(昨日一昨日と遅かったので多分たっぷり昼寝してから)いつもどおりmakeMistakesToLearnHaskellとcabal replの件の続きをします。
Yang, Z., Wu, N.: "" (2022)
あとハシゴで 競プロ典型 90 問 23 日目 - Avoid War(★7)
S.K.です。今週もお世話になります。よろしくお願いします。
引き続き、Implementing Functional Languages: a tutorial の、4.4.4 Garbage Collection の続きか、4.5 Mark4: Updating の続きの、進めやすそうな方を進めていこうと思います
"" Ch 1 ~ 4 読了 応用家に資するために圏論を退けむしろ”structured recursion schemes”を同定せんとする趣旨は有難い 型どうり cata, ana, hylo と来て accu は目新しかった
23 日目 - Avoid War(★7)キビシー 全探索しか思いつかない
ぐぬぬ... 今日も進捗ほぼゼロです... :confused:
4.5 Mark4: Updating の続き(デバッグ)を実施しました。
先週、引数に関数を渡すようなテストプログラムがエラーになっていたので、試しに S コンビネータの第1引数と第2引数の Enter 命令直前の PushMarker 命令を削除して、
S K K 4 の動作を手計算で確認してみたところ、引数スタックが空の状態で Take 命令を実行することなく終了して、結果も4になりました。
ただ、テキストを見ると、やっぱり全ての引数について Enter する前に PushMarker 命令を実行するように書いてあるように見えます。難しい。
自分にとってまだまだ先は長そうです。
Yang, Z., Wu, N.: "" (2022) Ch. 5 ~
あとハシゴで 24 日目 - *Select +/- One(★2)*
S.K.です。今週もお世話になります。よろしくお願いします。
引き続き、Implementing Functional Languages: a tutorial の、4.4.4 Garbage Collection の続きか、4.5 Mark4: Updating の続きの、進めやすそうな方を進めていこうと思います
出掛けていたので遅くなりました。いつも通りmakeMistakesToLearnHaskellとcabal replの件の続きをします。
ちょっとだけmakeMistakesToLearnHaskellを進めました。後ほどコミットを共有します。
... Replies ...
"" Ch 5 ~ 6 読了 mutu, comutu, para, apo, zygo の解説にそれぞれ実例があり助かる
24 日目 - AC やるだけ 前問の難解さと落差が大きい
4.4.4 Garbage Collection について、GCを実行しない様にした場合や、GCを実行してもスペースリーク解消をしない様にした場合の動作を、
影響を受けるテストプログラムを使って再確認したり、ソースファイルのコメントに理由を追記したりして時間となってしまいました。
cabal replの件もやっぱちょっと進めました。hasmoku以外の時間で進めて、ビルドが通ったので手元のプロジェクトで試したところ、
TODO: add support for multiple packages in a directory

なるエラーが出ました。cabalさん、同じディレクトリーに複数のcabalファイルがあるとabortしちゃうんですね... :weary: