haskell-jp / mokumoku-online #52

nobsun様のGitHubの内容を参照させていただき、自分なりにPack構文への対応(Ex. 3.35)と真理値の変更(Ex. 3.37)を行ってみました。
nobsun様、ありがとうございました。その後、Ex. 3.38 を進めようとしています。
"Recursion Schemes by Example" 読了 確かに実例豊富で面白かったが 古い?ライブラリーのためか動かない例もいくつかある
AtCoder 鉄則本 A56 - String Hash Hashを用いない素朴解法でACだったが さらに題目どおりの爆速版を探求中
というわけで本日の進捗。やっぱスマホで書いたせいか思った以上に進捗してないなぁ
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/f80e1b970533c071b6887bbcc9316fd249696198
山本悠滋です。makeMistakesToLearnHaskellの続きをちょっとだけ進めます。原稿が終わらない!
toyboot4e です。 AtCoder 過去問を解きます :lower_left_fountain_pen:
Docker と Makefile しか書いてないですが, を書きます
"Conjugate Hylomorphisms Or: The Mother of All Structured Recursion Schemes," Ralf Hinze Nicolas Wu Jeremy Gibbons. https://www.cs.ox.ac.uk/people/nicolas.wu/papers/Hylomorphisms.pdf
あとハシゴで AtCoder 鉄則本 B57 - Calculator https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ed
S.K.です。遅くなってしまいましたが、今週もお世話になります。よろしくお願いします。
Implementing Functional Languages:a tutorial の Ex. 3.38 の続きから進めたいと思います。
kkです.
mixfix operators対応の自作言語を作成しています.
前回参加時に言い残した文字列リテラルのエスケープ処理は終わりました.インデントもひとまずは簡単なルールだけで済ませてしまいました.do構文が無いとこんなものです.
今日はパーサに関連する型にSemigroupなLocationのAnnotationを追加して,Lexerと繋げてみます.
終わったら型検査や型推論に手を出します.
数年ぶり(?)に Haskell 書きます。
Change-Making-Problem(釣り銭生成問題:お釣りを最小枚数で払う問題)で硬貨が3種類の場合の効率的なアルゴリズムを思いついた(かもしれない)ので QuickCheck で検証したいと思います。
まずはこの問題の解法としてよく紹介される動的計画法のプログラムを書きました。 Haskell はこういうのはとても短く書けますね。
import Data.Array

coins = [43, 14, 1] -- 硬貨が 43円硬貨、14円硬貨、1円硬貨の 3種類として
n = 99 -- 99円を払う
main = print $ as ! n -- => 結果 5枚(43円硬貨 1枚、14円硬貨 4枚)
as = array (0, n) ((0, 0) : [(i, 1 + minimum [as ! (i - j) | j <- coins, j <= i]) | i <- [1 .. n]])
そろそろ抜けます.
1. AtCoder の提案環境をインストールするshell scriptの提案用候補,
2. その環境をmimicする Docker image,
3. その環境からimportできるはずの全モジュールをインポートするだけのMain.hsを自動生成して,
4. 自動で結合テストする,
が目標ですが,3の途中まで終わりました.3用のツールの自動生成用のMakefileが書けたので,ツールを自動で走らせるtarget を書きたいですが,それはまた後で.
思いついたアルゴリズムの実装途中ですが用事があるので抜けます。
テンプレートに ! をつけまくってました!!!!!!
"Conjugate Hylomorphisms Or: The Mother of All Structured Recursion Schemes" 読了 全く消化不良 CTは難解
AtCoder 鉄則本 B57 - Calculator Doubling 前問のA57と同じ Doubling を用いてAC さらに高速化は joetheshootingst の解から学んだ
ifl-tut Ex. 3.38 について、EConstrの引数の充足/未充足をどうやって調べるかと、
充足状態がわかったとしてどうやってコンパイル処理を分けるかを考えていました。
あまり進められませんでした。:pensive:
自作言語,LexerとParserの接続が完了しました.次はいよいよ型検査ですかね.
山本悠滋です。今日も用事があるので、makeMistakesToLearnHaskellを少し進めて終わります。あと眠い!
S.K.です。今週もお世話になります。よろしくお願いします。
引き続き、Implementing Functional Languages:a tutorial の Ex. 3.38 の続きから進めたいと思います。
"Dynamorphism 概論," ざくろ著 https://45deg.github.io/rogyAdC2015/
あとハシゴで AtCoder 鉄則本 B58 - Jumping https://atcoder.jp/contests/tessoku-book/tasks/tessoku_book_ee
先週に続いて Change-Making-Problem(お釣り生成問題:お釣りを最小枚数で払う問題)をやります。
16時頃抜けます。
1時間ほどしか参加できませんが、 の修正とpreflow-push max flow algorithm with scalingを書きます。
"Dynamorphism 概論" 読了 分かりやすいのがウレシイ 難解な CT は避けて Haskell で説明されている 例題もすべて動く :smile:
AtCoder 鉄則本 B58 - Jumping 考慮中
本日はこれにて離脱
チェシャ猫です。厳密には Haskell じゃないですが Elm でちょっとした習作を書いていきます。
repoの修正はとりあえず応急手当てしました。ちょっとだけmax flowも進んだところで抜けます。
思いついたアイデアには考慮漏れがありました :cold_sweat:。抜けます。
一応、何とかEConstrの引数充足/未充足の状態に応じてコンパイル処理を分ける様にできたつもりです。
他のテストプログラムが動作するかの確認が残っています。
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続きと、久しぶりにcabal replの件を進めます。もうcabalの最新版ではGHC 9.4以降でできているらしいし、いい加減とりあえず動くものにしたい...
プログラマーのための圏論 (上級編) https://bitterharvest.hatenablog.com/archive/category/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%[…]%E5%9C%8F%E8%AB%96%20%28%E4%B8%8A%E7%B4%9A%E7%B7%A8%29
あとハシゴで AtCoder 鉄則本 A59 - RSQ (Range Sum Queries)
明日はatcoder language update の 2nd freezeなので、更新用のscriptを走らせて書き込みに行きます。ついでに https://github.com/gksato/haskell-atcoder-server-gen を Shake-basedに置き換えてみようかな。
S.K.です。今週もお世話になります。よろしくお願いします。
Implementing Functional Languages:a tutorial の Ex. 3.38 について、他のテストプログラムの確認が一応大丈夫そうだったので、
Mark7 Gマシンの写経とExerciseを始めていきたいと思います。
とりあえず更新を終えてスプレッドシートに書き込むのだけやってきました。今日は抜けます。
プログラマーのための圏論 (上級編) 1.8「極限-極限の例」まで読了 丁寧な説明が分かりやすい
AtCoder 鉄則本 A59 - RSQ (Range Sum Queries) RMQ/RSQ 的問題の典型 一発 AC
これにて離脱
makeMistakesToLearnHaskellの進捗はこれだけ
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/810e2aca3212d2e21dd66f1f3b1f4506a8f69a74
cabal replの件は次の方針を決めて依存パッケージをどうするかなど考えてました。
Haskell関係ない別件が捗っちゃってあまり進まず!多分延長戦頑張ります
Ex. 3.40 の途中まで進めました。残りは遷移規則(3.39)と(3.40)です。
算術演算でなるべくヒープを使わずにVスタックを使って処理するにはどうするべきなのか確認中です。
@Hisawo TAKASE has joined the channel
プログラマーのための圏論 (上級編) 2. 「
あとハシゴで AtCoder 鉄則本 A60 - Stock Price
こんにちは。 ABC296 の upsolve と EDPC P をやります
S.K.です。今週もお世話になります。よろしくお願いします。
Implementing Functional Languages:a tutorial の Mark7 Gマシンの続きから進めていきたいと思います。
(前回の後、Ex. 3.43 まで進めましたが、コンパイル結果がテキストと異なるところがあるため、その原因確認から進めます。)
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続きと、cabal replの件を進めます。
開始前に昼寝を始めて「Google Calendarの通知で目を覚まそう...」と高をくくっていたら今日に限って予定を登録し忘れていた :disappointed_relieved:
プログラマーのための圏論 (上級編) 7.8「随伴関手を Haskell で表現する」まで読了 今回は必ずしも良い説明ではないと思う 次回で切り上げよう
AtCoder 鉄則本 A60 - Stock Price AC 教訓:Data.Vector.Unboxed.find や Data.List.find よりも 手製の recursion が早い(ことがある)
これにて離脱