haskell-jp / mokumoku-online #74

出先の用事が長引いてしまったので、今日は帰ってから延長戦で軽くやります:bow:
Applied Category Theory, Chapter 5: Signal flow graphs: Props, presentations, and proofs. Part 1 の動画視聴 + text 読了 prop と presentation の定義が 膨大な量の例で示される 新しい概念いっぱい出て来て正直辟易とする おそらく次回にそれらが signal flow graph として統合されるのだろうが それを楽しみとしよう ひたすら我慢の子
Competitive Programming in Haskell: Scanner は Haskell 競プロ勢に必読の良記事 さっそく Kattis の Popular Vote と Board Wrapping に使用した(後者は目下 Debug 中)
先週に続き、Ex.5.9 のデバッグのために、Ex.5.10. の実行結果を確認していました。
再確認の結果、関数適用ノードやグローバルノードのロック方法や、ロックされたノードの解除方法は、とりあえず一応テキストの遷移規則通りに実装しているように見えました。
先週間違いかと思ったヒープ内容変更処理も一概にそうとは言えないかもと思われたので、エラーの直接の原因となった getArg 関数の non-exhaustive を解消してみたところ、ex.5.10 のテストプログラムが最後まで動いて、前回と異なり処理結果もOutputに出力されました。
この動作が正しいのかどうか確認していこうと思います。
Applied Category Theory (MIT OCW 18.S097 2019) Chapter 5: Signal flow graphs: Props, presentations, and proofs. Part 2 担当 Fong 先生
あとハシゴで Competitive Programming in Haskell: Reading large inputs with ByteString : Brent Yorgey 先生のこの blog をもとに Kattis の問題を解きます
S.K.です。今週もお世話になります。よろしくお願いいたします。
先週行った Implementing Functional Languages: a tutorial, 5.3.2 The instruction set, Ex.5.9 の修正結果の確認を、Ex.5.10 のテストプログラムを使って進めて行こうと思います。
Applied Category Theory, Chapter 5: Signal flow graphs: Props, presentations, and proofs. Part 2 の動画視聴 + text 読了 props の signal flow graphs が線形代数の matrices で表現され 微積素子を含む複雑な制御系をつなぐ応用などが示される この辺今まで豊富な諸概念を用意した伏線を回収していて なかなかのモノ やっと山の中腹まで登った感
Competitive Programming in Haskell: Reading large inputs with ByteString : はほとんどを写経して Kattis の Amy Strength を解いた ただし chunksOf が非標準の Data.List.Split であるため 自分で再定義が必要 これを改善するため Yorgey 先生の ScannerBS を使うよう試行中
Ex.5.9 修正後の Ex.5.10 テストプログラムの動作結果確認をしていました。
各子タスクの開始と終了のタイミングは把握できましたが、手計算で確認した結果が返されているかどうかの確認が未完了です。
確認に時間がかかりそうだったので、とりあえずテストプログラムを、
・twice に渡す関数を恒等関数→インクリメント関数
・引数を 3 → 0
の様に変更して確認してみたところ、シーケンシャルマシンとパラレルマシンで同じ結果が返ったので、現状明らかに間違ってるわけではなさそうかなと思いますが、引き続き細かく確認を進めて行こうと思います。
用事で外出していましたが、一応時間外にmakeMistakesToLearnHaskellもHaskell-jp Blogも少し進めたので後で共有します :bow:
S.K.です。今週もお世話になります。よろしくお願いいたします。
先週に続き Implementing Functional Languages: a tutorial, 5.3.2 The instruction set, Ex.5.9 の修正確認の続き(Ex.5.10 のテストプログラムを使用)を進めて行こうと思います。
Applied Category Theory (MIT OCW 18.S097 2019) Chapter 6: Circuits: Hypergraph Categories and Operads. Part 1 担当 Spivak 先生
あとハシゴで Competitive Programming in Haskell: Primes and factoring : Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
出先で遅くなってしまいましたが、いつもどおりmakeMistakesToLearnHaskellとHaskell-jp Blogの続きをします。
Applied Category Theory, Chapter 6: Circuits: Hypergraph Categories and Operads. Part 1 の動画視聴 + text 読了 電気回路図を例に挙げ それを network diagram と見て その接続を colimit で表し Initial objects, coproducts, pushouts を準備してから cospans に抽象化して行き 有限集合の圏の上の monoidal category Cospan_FinSet がその成果となる
Competitive Programming in Haskell: Primes and factoring: から Library module をつくり Kattis の Perfect Pth Power 問題に挑むも WA 連発 只今思案投げ首中
先週に続き、Ex.5.9 修正後の Ex.5.10 テストプログラムの動作結果確認をしていました。
親タスクと7個の子タスクのうち、他のタスクの評価結果を参照しない子タスク4について、終了前に評価結果を直接の親タスク(子タスク2)へ返す動作を、ようやく確認できました。
かなり時間がかかってしまいました。ただ、時間をかけたことで自分にも少しずつ動作が分かってきたような気がします。
残りのタスクについても、動作確認を進めて行こうと思います。
Chestnut Forest
@Chestnut Forest has joined the channel
山本悠滋です。例の如く用事により出先なので帰ってからmakeMistakesToLearnHaskellの続きなどやります!
Applied Category Theory (MIT OCW 18.S097 2019) Chapter 6: Circuits: Hypergraph Categories and Operads. Part 2 担当Fong 先生
あとハシゴで Competitive Programming in Haskell: Modular arithmetic, Part 1 : Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
S.K.です。今週もお世話になります。よろしくお願いいたします。
先週に続き Implementing Functional Languages: a tutorial, 5.3.2 The instruction set, Ex.5.9 の修正確認の続き(Ex.5.10 のテストプログラムを使用)を進めて行こうと思います。
帰宅後はまた疲れちゃってあまり進まず、昨日少し進めた分も含めて共有します
makeMistakesToLearnHaskellの続き: https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/c3be6d18bbfc22a9c0d36903d55ed3e262cdf0f3
Haskell-jp Blogの続き: https://github.com/haskell-jp/blog/commit/93dd30a30a01ba886ae1069feaacab98fc4e5b45
Applied Category Theory, Chapter 6: Circuits: Hypergraph Categories and Operads. Part 2 の動画視聴 + text 読了 まず Frobenious monoids で結合の様相を定義し hypergraph categories に至る さらに電気回路の端子を抽象化して閉路としてとらえ Operads が使えることを例示する 回路図と応用圏論の一つの頂点に達したようだ それがどうしたという圏論の効用については今一つの感もある
Competitive Programming in Haskell: Modular arithmetic, Part 1: から Library module: Modular (および Int 型に特化したモノ)をつくり Kattis の SETI 問題に挑戦中
先週に続き、Ex.5.9 修正後の Ex.5.10 テストプログラムの動作結果確認をしていました。
Mark1 についても、間接参照ノードに対する getArg 関数定義を追加したら Ex.5.10 のテストプログラムが動いたので、Mark2 の結果と比較したところ、各タスクの実行ステップ数が同じでした。
ロックされた関数適用ノードに対するアンワインド処理を間違えていたようです。
Mark2 でノードをロック/アンロックする処理を追加した際に、ロックされたノードをアンワインドしようとしたらブロックされる処理を追加できていなかったようで、結果的に Mark1 と同じ動作になってしまっていたようです。
ブロックされる処理を追加して再確認中です。
山本悠滋です。今日は15:00過ぎから用事なんでそれまではやります!
いつもどおりmakeMistakesToLearnHaskellとHaskell-jp Blogの続きをします。
Applied Category Theory (MIT OCW 18.S097 2019) Chapter 7: Logic of Behavior: Sheaves, Toposes, Languages. Part 1 担当 Spivak 先生
あとハシゴで Competitive Programming in Haskell: Modular arithmetic, Part 2 : Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
S.K.です。今週もお世話になります。よろしくお願いいたします。
今週も先週に続き Implementing Functional Languages: a tutorial, 5.3.2 The instruction set, Ex.5.9 の修正確認の続き(Ex.5.10 のテストプログラムを使用)を進めて行こうと思います。
Applied Category Theory, Chapter 7: Logic of Behavior: Sheaves, Toposes, Languages. Part 1 の動画視聴 + text 読了 "7.2 The category Set as an exemplar topos" Bool 圏の topos の例が分かりやすい subobject classifier がそのお気持ちがはじめて分かった気がする ''7.3 Sheaves" も好い例題が多くて消化の助けになる 来週はいよいよ最終回 "Toposes" 等に挑む
Competitive Programming in Haskell: Modular arithmetic, Part 2: から Library module: Modular (および Int 型に特化したモノ)に中国剰余定理を写経して Kattis の該当問題2つに臨む Yorgey 先生のおかげで至極簡単だった
今週も、Ex.5.9 修正後の Ex.5.10 テストプログラム(ただし S K K を inc に変更したもの)の動作結果確認をしていました。
ロックされた関数適用ノードをアンワインドしようとした際にブロックされる処理は一応意図した様に動作している模様です。
以下の様にサブタスクが生成されるようで、
・親タスクから子タスク1と子タスク4と子タスク7
・子タスク1から子タスク2と子タスク5
・子タスク2から子タスク3
・子タスク4から子タスク6
上記のうち、子タスク3の結果が子タスク2に返される部分と、子タスク2の結果が子タスク5を通じて子タスク1に返されるらしい部分まで確認しました。
相変わらず時間がかかってしまってますが、残りの部分も引き続き確認していこうと思います。
Applied Category Theory (MIT OCW 18.S097 2019) Chapter 7: Logic of Behavior: Sheaves, Toposes, Languages. Part 2 担当 Fong 先生
あとハシゴで Competitive Programming in Haskell: Summer series : Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
S.K.です。今週もお世話になります。よろしくお願いいたします。
今週も先週に続き Implementing Functional Languages: a tutorial, 5.3.2 The instruction set, Ex.5.9 の修正確認の続き(Ex.5.10 のテストプログラムを使用)を進めて行こうと思います。
山本悠滋です。出先で遅くなりましたが、今日からは関数型まつりの発表の資料作りをします。makeMistakesToLearnHaskellなどの更新は気が向いたらで。
ちょっとだけ進めました。makeMistakesToLearnHaskellとHaskell-jp Blogは延長戦でやるかも
Applied Category Theory, Chapter 7: Logic of Behavior: Sheaves, Toposes, Languages. Part 2 の動画視聴 + text 読了 独習の困難を痛感するも なんとか最終回 "Topos" まで到達し 感無量 これからはしばらく週替わりに Yorgey 先生の blog の咀嚼をベースにして Kattis の問題をやっていこうと思います
今日は時間がなくて Competitive Programming in Haskell: Summer series : にある Kattis の該当問題 Ceiling Function はまだ考慮中 Data.Tree は rose tree なので使えなさそう 残念 自分で binary tree を定義してやる必要がある:question:
今週も、Ex.5.9 修正後の Ex.5.10 テストプログラム(ただし S K K を inc に変更したもの)の動作結果確認をしていました。
今回は、子タスク5の結果が子タスク2に返されるまでと、子タスク2の結果が子タスク1まで返されるところまでの確認が一応済みました。現在、子タスク1の結果が親タスクに返されるところを確認中です。
それが済んだら、親タスクから子タスク4、子タスク4から子タスク6が生成されて結果を返す部分と、親タスクから子タスク7が生成されて結果を返す部分の確認となります。
親タスクは、処理が進むにつれて、元のヒープの中身が間接参照の間接参照という具合にどんどん書き換えられていくため、確認に想定以上に時間がかかってしまっています。コツコツ確認していこうと思います。
Competitive Programming in Haskell: Sorting tree shapes : Brent Yorgey 先生の blog をもとに Kattis の問題を解きます
ハシゴは無しで気楽にやります
山本悠滋です。先週から引き続き関数型まつりの資料作りなどをやります。