haskell-jp / mokumoku-online #82

S.K.です。かなり遅くなってしまいましたが、今週(今年)もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の Ex.6.7 の続きを進めて行こうと思います。
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続きと、できればmakeMistakesToLearnHaskellを一般公開するときに向けたウェブアプリケーション作り(というよりNixの勉強?)に取り組みます。
Competitive programming in Haskell: Range queries, Classified 読了 Static/Dynamic range queries やら sliding windows, segmented tree, Fenwick tree 等々の分類と概説 後者の2つについては F U N C T I O N A L P E A R L - You Could Have Invented Fenwick Trees が挙げられていて勉強になった 演習は prefix sums を用いる Determining Nucleotide Assortments をやった 素直にできた
makeMistakesToLearnHaskellの進捗: https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/c59b093e96054a3471f31ddcae47f7d18f8833e0
Nixの勉強は、 https://zero-to-nix.com/start/nix-build/ まで読んだのでようやくコピペしたのをベースにflake.nixを作り始めています。
あ、あと、 https://qiita.com/advent-calendar/2025/haskell の未読分を一部読んでました。
「6.5.2 Abstracting free variables in functions」のEx.6.7 (abstractJ_e 関数を case 式にも対応させる)の続きを進めていました。
State モナドを使った簡単なサンプルプログラムを写経して動作を確認してから、NameSupply の値を状態として保持するための変更に取り掛かりました。
自分にとっては難しく、結局 Copilot 先生に教えを乞うてしまいました(すみません)。
おかげでエラーとなっていたテストプログラムが正しく処理されるようになり、既存のテストプログラムも Mark3 らしく処理されました。正しく動作している模様です。
変更箇所は、ラムダリフタ最上位関数、変数名ユニーク化関数、ラムダ式を抽出してlet式でラップする関数とその補助関数に渡りました。
(abstractJ_e 関数の case 式対応部分では環境 env の更新は不要だったようです。)
引き続き変更内容の理解を進めていこうと思います。
Competitive Programming in Haskell: Prefix sums: Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
S.K.です。遅くなってしまいましたが、今週もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の Ex.6.7 の続き(コード変更部分の理解)を進めて行こうと思います。
山本悠滋です。遅くなってしまいましたが、いつもどおりmakeMistakesToLearnHaskellの続きと、できればmakeMistakesToLearnHaskellを一般公開するときに向けたウェブアプリケーション作りに取り組みます。
Competitive programming in Haskell: Prefix sums: 読了 sliding windows が2次元にも適用可能とのことで 演習問題 Prozor を終え Rust に挑戦中 なるほど核心の部分は Yorgey 先生の library の windows を用いて TLE を突破できる ただ2次元なだけに周辺の追加条件やら output format が煩雑 マ贅沢な愚痴ですが
本日のmakeMistakesToLearnHaskellの更新
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/59d3be23bf2c9dc7d9767ddda27c213d565fe703
Nixの勉強は https://zenn.dev/asa1984/books/nix-hands-on/viewer/ch01-03-flakes を読んでサンプルを手元でも実行してみたりしてました。
あと、 https://qiita.com/advent-calendar/2025/haskell もまだ読んでいます。後2つだけ!
「6.5.2 Abstracting free variables in functions」のEx.6.7 (abstractJ_e 関数を case 式にも対応させる)の続きを進めていました。
Copilot 先生に教えていただいた変更内容について、時間かかってしまいましたが何とか理解できました(つもりです)。
ひとまず Ex.6.7 は完了とさせていただき、「6.5.3 A tricky point」に進もうかスキップしてしまおうか迷っています。
(セクション全体に難解であることを示す†マークが付いていたり、Ex.6.8 も「かなり難しい」と書いてあったりするため。)
@K-Shino has joined the channel
Competitive Programming in Haskell: Sparse tables: Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
初めまして、K-Shinoです。お世話になります。
NixによるHaskellの開発環境構築を行なっていきます。
S.K.です。かなり遅くなってしまいましたが、今週もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の続きを進めて行こうと思います。
山本悠滋です。遅くなってしまいましたが、いつもどおりmakeMistakesToLearnHaskellの続きと、できればmakeMistakesToLearnHaskellを一般公開するときに向けたウェブアプリケーション作りに取り組みます。
makeMistakesToLearnHaskellの更新: https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/58602a6a18e0d8c2915c1f8371831f7a33a43579
Nixの件はほぼ手を付けられず。
あ、あと、Haskell Advent Calendar 2025をようやく読み終えました。執筆いただいたみなさんありがとうございました hask(_ _)eller
一先ずそれっぽい環境は作れました。
最終的にChatGPTが良い感じの出力をくれたので、自分でも写経したりして理解途中です。
https://github.com/hypatia-tile/nix-practice
こちらの内容も大変参考になりました。ありがとうございます。
https://haskell-jp.slack.com/archives/CUPBC8WCE/p1768122493345849
Competitive programming in Haskell: Sparse tables: 読了 かなり難解で 2度読み3度読みした 演習問題をしながら消化吸収を目指そう 前回の積み残しの課題 Ozlieda に取り組んだら 珍しい MLE (Memory Limit Exceeded) を食らった 対策として cyclic が肝なのでそれを用いて圧縮して Accepted 反省すべきは xor の特殊性をすべて使うべきことでした
「6.5.3 A tricky point」の Ex.6.8 を自分でもやってみることにして、実装を進めていました。
高度な技を駆使すれば、abstractJ 関数を変更するだけで対応可能とのことですが、自分には難しいので、より安易な方法で実装中です。
時間はかかっていますが、自分に可能なペースで進めて行こうと思います。
昨日のAtCoderの復習とVectorを使いこなせるように精進をします。
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続き(他の課題を参照している箇所の解決)と、makeMistakesToLearnHaskellを一般公開するときに向けたウェブアプリケーション作りに取り組みます。
Competitive Programming in Haskell: Sparse tables: Brent Yorgey 先生の blog をもとに Kattis の問題を解きます (先週の演習問題があまりにも未消化だったので再度挑戦)
だめぽラボさんの 「Haskellでの型レベルプログラミング」を読みながら例などを実装していきます。
S.K.です。かなり遅くなってしまいましたが、今週もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の続きを進めて行こうと思います。
本日のmakeMistakesToLearnHaskellの更新
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/296620fb4936fc2d2d910ec630ee285e0a963877
ウェブアプリケーション作りの件は、ほぼ手つかずなんで延長戦で。
... Replies ...
Competitive programming in Haskell: Sparse tables: 再読完了 やっと少し分かってきたような… 演習問題 Ograda で難戦を強いられている TLE upto 8/13 が今までの最高到達点 トホホ
「6.5.3 A tricky point」の Ex.6.8 の続きを進めていました。
高度な技より安易な方法で実装中と先週報告しましたが、方法が安易ではなく方針が安易なだけでした。
実装してて自分の実力不足を感じ、Copilot先生の教えを仰ぎつつ進めています。
4章まで読了
Proxy型がいまいち理解できていないので読み進めつつ例を作っていきます。
Competitive Programming in Haskell: Sparse tables: Brent Yorgey 先生の blog をもとに Kattis の問題を解きます 先々週からの演習問題が難問(Difficulty: Hard
6)山積につき挑戦継続
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続きと、makeMistakesToLearnHaskellを一般公開するときに向けたウェブアプリケーション作りに取り組みます。
チェシャ猫です。ちょっとしたゲームエンジンを作っているのでそれを。
S.K.です。かなり遅くなってしまいましたが、今週もお世話になります。よろしくお願いいたします。
今週も Implementing Functional Languages: a tutorial の Chapter 6 Lambda Lifting の続きを進めて行こうと思います。
かなり遅くなりました。引き続きHaskellでの型レベルプログラミングを読み進めていきます。
Haskell関係ない雑用をこなしたり、何から取り組もうかと逡巡しているうちに時間が経ってしまいました。
https://github.com/haskell-jp/makeMistakesToLearnHaskell/pull/122/
を送ってconflictを解決しただけです。
Competitive programming in Haskell: Sparse tables: 再々読完了 SP 分かった 演習問題 Tourists は木の Euler path に対して Sparse table を作り LCA に利用できる しかし Kattis の判定は TLE だった トホホ ひょっとして Yorgey 先生の SP ライブラリが遅いのかも 先週の Ograda は結局 STUArray で書き換える羽目になったが 今回もか ヤレヤレ