haskell-jp / mokumoku-online #81

「6.5.2 Abstracting free variables in functions」を読み直して、処理内容の理解を進めました。
少しずつ理解できてきましたが、まだ完全には理解できていないので、引き続き内容理解を進めようと思います。
忘れないうちに貼っておきます。
• 昨日のAtCoderの復習
• Data.ListとData.Mapの関数をチラ見しておく
• aizuのITP1とAtCoder Beginners Selectionsを解き終えたので今日からkattisでYorgey先生の解法を勉強して実装速度を上げます。
Competitive Programming in Haskell: Stacks, queues, and monoidal sliding windows: Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
S.K.です。遅くなってしまいましたが、今週もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の続きを進めて行こうと思います。
山本悠滋です。外出で遅くなってしまいましたが、makeMistakesToLearnHaskellとHaskell-jp Blogの続きをやります。
Competitive Programming in Haskell: Stacks, queues, and monoidal sliding windows: 読了 sliding windows および queue を double stack で実現するのはよく知られているが monoidal に拡張したのは珍しい それを借りて課題 "Tired Terry" に挑んだ 文字を Sum Int に変換すれば Yorgey 先生の windows 関数が使える 短い直截的適用であるが非常に勉強になる しかし Kattis の判定は 69/81 testcases までで TLE むむむ...どうしたもんだ?
「6.5.2 Abstracting free variables in functions」を読み直して、abstractJ_e 関数の処理内容を一応何とか理解しました(つもり)。
引き続き、演習 6.7 (abstractJ e 関数を case 式にも対応させる)の実装中です。
sigmaです。
• 昨日のAtCoderの復習
• アドベントカレンダー執筆にあたり、情報収集 https://qiita.com/advent-calendar/2025/haskell-atcoder
◦ この辺読んで見る https://zenn.dev/toyboot4e/books/seriously-haskell/viewer/2-1-stderr
• 簡単な問題何か解く(1日最低1AC)
Advent of Code 2025 を Haskell で解きます
S.K.です。遅くなってしまいましたが、今週もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の続きを進めて行こうと思います。
山本悠滋です。昼寝などで遅くなってしまいましたが、Haskell-jp Blogの記事の公開と、makeMistakesToLearnHaskellの続きをやります。
思いのほか時間がかかりましたが記事を公開できました: https://haskell.jp/blog/posts/2025/wai-sample.html
makeMistakesToLearnHaskellの更新: https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/49ddba644a38368a3655edd6e1d17484c01724a7
Advent of Code 2025 は Day 2 まで来ました gold stars 獲得
「6.5.2 Abstracting free variables in functions」の演習 6.7 (abstractJ_e 関数を case 式にも対応させる)の続きを進めていました。
abstract_e 関数の case 式対応と同様に abstractJ_case という補助関数を実装して対応しましたが、テストプログラムをいくつか作成してテストしたところ、バグが見つかりデバッグ中です。
AtCoderの復習と簡単な問題演習までは完了。
調べ物とアドカレはこれからベストエフォートでやります
Advent of Code 2025 を Haskell で解きます
S.K.です。遅くなってしまいましたが、今週もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の続き(Ex.6.7 のデバッグ)を進めて行こうと思います。
山本悠滋です。例の如く昼寝で遅くなってしまいましたが、タイプセーフプリキュアの更新やmakeMistakesToLearnHaskellの続きをします。
用事があるのでちょっと早めに終えます hask(_ _)eller
タイプセーフプリキュアの更新(Pull requestを作り忘れてしまった。まあいいか):
makeMistakesToLearnHaskellの更新:
Advent of Code 2025 は Day 9 Part 1/2 まで来ました Part 2/2 で苦戦中 長方形の内部判定が謎だが 座標圧縮をすれば良いのではないかと実装中
「6.5.2 Abstracting free variables in functions」のEx.6.7 (abstractJ_e 関数を case 式にも対応させる)の続き(デバッグ)を進めていました。
残念ながら、デバッグ完了には至りませんでした。
先週追加した abstractJ_case 関数のデバッグ中に、Mark2 までと Mark3 までとで全体の処理の流れが違うことに(今さらながら)気がつきました。

Mark2まで:lambdaLift = collectSCs . rename . abstract . freeVars
Mark3:lambdaLiftJ = collectSCs . abstractJ . freeVars . rename -- 変数名のユニーク化を最初に行っている模様。

Mark3 では、abstract 関数が abstractJ 関数に置き換わっただけと思い込んでいたので、この辺りも関係ありそうです。
自分にとってはまだまだ先は長そうですが、引き続き進めて行こうと思います。