haskell-jp / mokumoku-online #65

ほぼ進捗ゼロです!
"Two-Level Types and Parameterized Modules" 読了 第一筆者の Sheard 先生が OGI の頃に縁があったので Haskell 創成期の業績を偲んでみた
競プロ典型 90 問 40 日目 - Get More Money(★7)今日は時間が無くなってしまったが たしか「燃やす埋める問題」の2部グラフに最小費用流を適用?
今日のmakeMistakesToLearnHaskellの更新はこれだけ。
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/b132fa1eacde1c97e18aa9577d583fbe4a17a2fd
このほか、cabal replの件は先週まずいなぁと思った設計の改善案を考えてました。抜本的な修正が必要で、まだまだ道は遠そうです :sweat:
4.6.5 Using data structures directly の続きを進めました。
caseを使ったプログラムについて、分岐先の n 番目の引数が分岐先の式に全く現れなければ、Data n を Move することを省略する処理の残り(分岐先の式がECase, ELetの場合)を、何とか実装してみました。
簡単なテストプログラムを作って確認したところ一応意図したように動作し、既存のテストプログラムも一応OKだったので、ひとまずMark5を完了とさせていただきました。
その後、4.7 Mark 6: Constant applicative forms and the code store を進めています。これも、セクション全体にダガーマークが付いていて難しそうです。
Wouter Swierstra Data types a la carte, Functional Pearl. JFP 18: 423--436. (2008)
あとハシゴで 競プロ典型 90 問 41 日目 - Piles in AtCoder Farm(★7)
S.K.です。今週もお世話になります。よろしくお願いします。
先週に続き、Implementing Functional Languages: a tutorial の、4.7 Mark 6: Constant applicative forms and the code store の続きを進めていこうと思います。
山本悠滋です。今出先から帰ってきたので今からやります。いつも通りmakeMistakesToLearnHaskellの続きと、cabal replの件の続きをやります。
"Data types a la carte" 読了 もろもろのデータ型と関数をどう合成するかという The Expression Problem を統合的に扱い free monad にも及ぶ というお話
競プロ典型 90 問 41 日目 - Piles in AtCoder Farm(★7)全く歯が立たない 凸包を作りその面積と外周上の杭を数えれば Pick's Formula から内点数が出るが その実装は気が遠くなる
疲れてるのかあんまり進めませんでした。
今日のmakeMistakesToLearnHaskellの進捗
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/7b1b980b12e03fd6d6ee88116c90ab7ec62bf679
cabal replの件は、先週考えた新しい設計にあちこち書き換えているところです。
4.7 Mark 6: Constant applicative forms and the code store の ex.4.27 を進めました。
とりあえず、関数 amToClosure, showSCDefns, compile の変更は何とか行ってみました。
あとは関数 compileA の変更が残っています。
lotz@lotz84_ から実例を拾い読みします
あとハシゴで 43 日目 - Maze Challenge with Lack of Sleep(★4)
S.K.です。今週もお世話になります。よろしくお願いします。
先週に続き、Implementing Functional Languages: a tutorial の、4.7 Mark 6: Constant applicative forms and the code store の続きを進めていこうと思います。
山本悠滋です。出先から戻ってお昼を食べてからからですが、いつも通りmakeMistakesToLearnHaskellとcabal replの件の続きをします
"recursion-algorithms" Data Structures ~ Catalan Numbers: まで使用例を写経・テスト完了 fibHisto の例にあらためて感服した
競プロ典型 90 問 43 日目 - Maze Challenge with Lack of Sleep(★4)曲がるたびにペナルティーをつけてBFSの方針でイイのではないかと思うも 実装パワー不足でグズグズしている
4.7 Mark 6: Constant applicative forms and the code store の ex.4.27 の続きを進めました。
関数 compileA の変更内容を調べつつ、既存のテストプログラムを一通り実行したところ、Mark5で追加した構造化データ(リスト)を出力するプログラムがエラーとなりました。
compileA 未変更が原因というよりは、ダンプが空の状態で UpdateMarkers 命令を実行する場合に問題がありそうで、デバック中です。Mark5 でのテストが不十分だったみたいでお恥ずかしい限りです。
cabal repl、makeMistakesToLearnHaskell共にあんまり進めませんでした。makeMistakesToLearnHaskellの進捗:
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/3c9d773c08bcee1ad004c7657ce2934ad31495a7
山本悠滋です。いつも通りmakeMistakesToLearnHaskellとcabal replの件の続きをします。
lotz@lotz84_ の続き (List / Basic Operations ~ ) 実例を拾い読みします
あとハシゴで 44 日目 - Shift and Swapping(★3)
S.K.です。ちょっと遅くなってしまいましたが、今週もお世話になります。よろしくお願いします。
先週見つかったエラーのデバッグを進めていこうと思います。
:point_up: に加えてcabal replの件も検討してましたが、あんまり進めませんでした。
もうちょっとアルゴリズム含めてデータ構造を変えた方が良さそうです。
... Replies ...
"recursion-algorithms" (List / Basic Operations: length ~ reverse) まで使用例を写経・テスト完了 引用の Monoidal Catamorphisms, Bartosz Milewski に脱線してしまった
競プロ典型 90 問 44 日目 - Shift and Swapping(★3)上の脱線が過ぎてここまで至らず どうやらテストケースが大きいのでまともにシフトやスワップはナイようだが
先週エラーを見つけたテストプログラム(4.6 Mark 5: Structured data の ex.4.25)について、原因を見つけるためにMark5とMark6の実行結果を1ステップずつ比較していましたが、まだ特定に至っていません。
結構時間かかってしまっているのですが、報告できるような進捗はありませんでした。お恥ずかしい。
lotz@lotz84_ の続き (List / Basic Operations: span ~ ) 実例を拾い読みします
あとハシゴで 45 日目 *-* Simple Grouping(★6)
S.K.です。今週もお世話になります。よろしくお願いします。
先週に引き続き、Implementing Functional Languages: a tutorial 4.7 Mark 6: Constant applicative forms and the code store の、
Mark6でエラーとなったMark5のテストプログラムについて、デバッグを進めていこうと思います。
山本悠滋です。今日はこの後用事なのでmakeMistakesToLearnHaskellをこれだけ更新して終わりにします。ほとんどこの時間外に書いたもので悪しからず。お先に!
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/661288a9e4d234635a0eb442ba4a8c856c8792ef
"recursion-algorithms" (List / Basic Operations: span ~ inits/tails) まで使用例を写経・テスト 同じ機能の関数に cata と ana の両方が使えるのが興味深い
競プロ典型 90 問 45 日目 - Simple Grouping(★6)K-means clustering を繰り返し その部分集合の直径の最大値が収束するまで学習を続ける この方針で実装中
今週もエラー原因の特定には至りませんでした。
エラーとなったテストプログラムの動作結果を見ると、最後にリストの内容を表示する際に、Mark6の方は新たに追加したグローバルフレームのクロージャをEnterしているのですが、
その時点のデータフレームのクロージャをEnterするとMark5と同じ動作になりそうに見えます。この辺りを間違えているかもしれません。
Mark6で実現しようとしている機能を十分理解できておらず、お恥ずかしい限りです。自分にとってはまだまだ先は長そうです。
lotz@lotz84_ の続き (Edit Distance ~ ) 実例を拾い読みします
あとハシゴで 47 日目 - Monochromatic Diagonal(★7)
S.K.です。今週もお世話になります。よろしくお願いします。
先週に引き続き、Implementing Functional Languages: a tutorial 4.7 Mark 6: Constant applicative forms and the code store の、
Mark6でエラーとなったMark5のテストプログラムについて、デバッグを進めていこうと思います。
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続きと、cabal replの件の続きをします。
体調がイマイチで、makeMistakesToLearnHaskellの続き以外進められませんでした。後ほどコミットします。
本日のmakeMistakesToLearnHaskellの進捗。cabal replの件ももう少し延長戦でやってみます
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/8a21db70d013a32fb92498cf3eba41c4c1c837da
karoyakani [11:59 PM]
"recursion-algorithms" (Edit Distance ~ Longest Common Subsequence) まで使用例を写経・テスト editDistDyna で dyna が動かなくて手間取ったのは意外だった
競プロ典型 90 問 47 日目 - - Monochromatic Diagonal(★7)お題通りに素直に実装したら巨大データのケースで TLE  味噌汁で顔洗って一昨日オイデ状態 トホホ
今週もエラーの解決には至りませんでした。
Mark6で追加されたグローバルフレーム内の、リスト内容出力に使用する関数topContとheadContに対応するクロージャのフレームポインタ部分が、グローバルフレームを指したままなのがエラーの原因かもしれません。
他の関数は実行中にUpdateMarkers命令でグローバルフレーム以外のフレームを指すように書き換えられるのですが、topContとheadContについては書き換えられないままリスト内容出力処理に入ってしまい、
正しいフレームのクロージャをEnterできずにエラーになっているような感じです。compileAの変更が未完了なのですが、あまり関係ないような気もします。自分にとってはまだまだ先は長そうです。
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続きと、cabal replの件の続きをします。
lotz@lotz84_ の続き (Run Length Conversion ~ ) 実例を拾い読みします
あとハシゴで 48 日目 - I will not drop out(★3 )
S.K.です。少し遅れてしまいましたが、今週もお世話になります。よろしくお願いします。
先週に引き続き、Implementing Functional Languages: a tutorial 4.7 Mark 6: Constant applicative forms and the code store の、Mark6でエラーとなったMark5のテストプログラムについて、デバッグを進めていこうと思います。