haskell-jp / mokumoku-online #66

"recursion-algorithms" (Run Length Conversion ~ Sorting) まで使用例を写経・テスト Matrix Chain Multiplication が動かなかった
競プロ典型 90 問 48 日目 - I will not drop out(★3 ) フツーに DP したら一部 TLE だった 先週と同じく罠にはまった?
cabal replの件もmakeMistakesToLearnHaskellもボチボチ進めました。
makeMistakesToLearnHaskellについては軽く見直してから後ほどコミットします。
.oO(音ゲーに慣れすぎて「DP」って単語を聞いてダブルプレーを連想してしまった...)
今週もエラーの解決には至りませんでした。お恥ずかしい。
リスト出力開始時にまずtopCont関数を呼ぶようにして、その命令列の中でheadCont関数を後で呼ぶためにPush Labelしている時に、
フレームポインタが指すヒープアドレスではなく、グローバルフレームのアドレスをペアにして引数スタックにPushしてしまってました。
多分この動作は間違っていると思います。原因は、Labelが引数の場合のamToClosure関数の動作を間違えた可能性が高そうです。
自分にとってはまだまだ先は長そうです。
.oO(確かにダブルプレーっていったら普通野球の方だよなぁ)
@Zac Z has joined the channel
お久しぶりです.gksatoです.よろしくお願いします.今日はAtCoder Beginner Contest 355 () の FG問題 のupsolve と,cojna さんの競プロライブラリ cojna/iota から Data.Graph.Sparse あたりのコードを自分の lib に adopt させてもらう作業をしようと思います.
lotz@lotz84_ の続き (Tree/Basic Operations ~ ) 実例を拾い読みします
あとハシゴで 49 日目 - Flip Digits 2(★6)
山本悠滋です。お昼ご飯を食べ終えてからですが、いつもどおりmakeMistakesToLearnHaskellの続きと、cabal replの件の続きをします。
S.K.です。今週もお世話になります。よろしくお願いします。
先週に引き続き、Implementing Functional Languages: a tutorial 4.7 Mark 6: Constant applicative forms and the code store の、Mark6でエラーとなったMark5のテストプログラムについて、デバッグを進めていこうと思います。
パターンマッチで使えるけど値の定義では使えない構文、といえばasパターンなどですが、値の定義では使えるけどパターンマッチでは使えない構文ってなんかありましたっけ... :thinking_face:
... Replies ...
そろそろ抜けます.F問題はすぐに upsolve できた () のですが,Gは解説ACすら難しかったです.cojna/iota の Graph の方は Graph Builder を100行くらい書き進めましたが,実はいまだに git repo にすらしておらず,そろそろちゃんと公開しなければ,とTODOがたまるこの頃です.
今日はこの辺にしておきます。

• cabal replの件は、先週残したコンパイルエラーと、実装の型の変更でできたテストのコンパイルエラーをちょっとずつ直してました。
• makeMistakesToLearnHaskellの更新。タプルのパターンマッチについてがっつり書いていたら、前の課題で十分説明していたのをすっかり忘れていた...。既に十分長いし、他のところも含めて色々削除。 https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/51ef49b3658e8d61f9ba7e936e81a3cd5e1e3992
"recursion-algorithms" (Tree ~ Extra Recursion Scheme) まで読了 使用例の写経・テストは HLearn-datastructures など depricated な library が有りあまり成果が無かった
競プロ典型 90 問 49 日目 - Flip Digits 2(★6)集合族の基を求め全解列挙したら(O(N^2))当然の報いとして TLE 起死回生のアイデア不足を嘆く
少しだけ進んだかもしれません。
確認したら、先週間違いかもしれないと思った箇所は勘違いで、Mark5でリスト出力に対応した際、テキスト通りに実装できてませんでした。
そんな状態でもMark5ではたまたまエラーにならなかったけれど、Mark6で一部の命令の遷移規則を変更したらエラーになった模様です。お恥ずかしい。
テキストの内容に近づけて修正してみたら、Mark6でもリスト出力できるようになりましたが、まだテキスト通りに実装できてなさそうな箇所が残ってますので先は長そうです。
@てぴか has joined the channel
山本悠滋です。Haskell Language Serverがどうも上手く動かなくなってしまっているので直すのにチャレンジします。うまく行く行かないにかかわらず、飽きたらいつも通りmakeMistakesToLearnHaskellとcabal replの件の続きをやります。
はじめまして。
今回初参加のてぴかと申します、宜しくお願いします。
Haskellはまだ勉強中の身でございます。

本日はstackを使ってglossやyesod等のライブラリを試していきたいと思います。
Haskellは始めたばかりなので、分からないこといろいろとご教授下されば幸いです。

ところで、Haskellに関する質問は<#CR2TETE5R|beginners>か<#CUPBC8WCE|mokumoku-online> かどちらで行えば良いでしょうか?
どちらでもいいですよ。まぁ、より耳目を集めやすいのはやっぱり登録者が多い beginners かと思いますが
ちなみに、口頭で相談したくなったら Discordの方をご利用ください。
https://discord.gg/eQhxJFSkBA
Category Theory for Programmers (2014) Bartosz Milewski (Part One: 1. Category: The Essence of Composition)
あとハシゴで 競プロ典型 90 問 51 日目 - Typical Shop(★5)
lagénorhynque (カマイルカ)です。オンラインの会に初めて参加しました!

『なっとく!関数型プログラミング』という本に取り組む機会が最近あり、サンプルコードがScalaで書かれているのを学習のためにHaskellに書き換えます(今日は第3章から)。
現在までの進捗: https://github.com/lagenorhynque/grokking-functional-programming
S.K.です。少し遅くなってしまいましたが、今週もお世話になります。よろしくお願いします。
先週に引き続き、Implementing Functional Languages: a tutorial 4.7 Mark 6: Constant applicative forms and the code store の、Mark6でエラーとなったMark5のテストプログラムについて、デバッグを進めていこうと思います。
Category Theory for Programmers (Part One: ~ 3. Categories Great and Small) まで読了 初見の時は驚いたが Void type や absurd 関数を冷静に読み進めたのは再挑戦の進歩かも 3 章の課題 "1. Generate a free category” は自分の理解の確認に有効だった
競プロ典型 90 問 51 日目 - Typical Shop(★5)アイデア不足に呻吟中 N が高々 40 だから Data.Bits.popCount が使える筈 重複する値段の品物をどうにかしないとイケナイが はてさて???
Haskell Language Serverの件はNeovimのダウングレードを始め色々試しましたがあまり改善せず :disappointed_relieved:
makeMistakesToLearnHaskellとcabal replの件はそれぞれちょっとだけ進めました。
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/315308a9edf943b040d3c6ddbec364584b14e7bb
本日はHaskellのimportエラーの解消を質問してました。
<#CR2TETE5R|beginners> で質問することで、ずっと分からなかったことがついに解消できたので、少し脱力感に浸っていました。。。
なんとかスタートラインに立てたようなきがします。

残りの時間はを読んでいました
書籍『なっとく!関数型プログラミング』の3章から4章半ばまでの演習問題をHaskell (とついでにClojure)でひたすら解いていました。
関数型プログラミングの非常に易しい入門書の序盤なので内容的にはとても簡単でしたが、Java/ScalaのコードをHaskellやClojureでの(可能な限り)自然なスタイルで書き直すのが良いトレーニングになるなと思いました :muscle:

今日の進捗: https://github.com/lagenorhynque/grokking-functional-programming/commits/master/?since=2024-06-02&until=2024-06-02
Mark5に戻って、先週Mark6に対して行った対応を反映してました。
本当は、テキスト通りに (topCont, リスト出力用2スロットフレームのアドレス) というクロージャで引数スタックを初期化するところまで行いたかったのですが、
そうするとリスト出力しないプログラムの場合にエラーとなってしまうので、やむなくプログラム終了時にリスト出力処理が残っていたら、引数スタックのクロージャ(初期値)を上記のクロージャにすり替えるようにしています。
なるべくテキスト通りに実装しようとしましたが、なかなかうまくいかずお恥ずかしい限りです。
@mn has joined the channel
(2014) Bartosz Milewski (Part One: 4. Kleisli Categories ~)
あとハシゴで 52 日目 - Dice Product(★3)
S.K.です。今週もお世話になります。よろしくお願いします。
先週に引き続き、Implementing Functional Languages: a tutorial 4.7 Mark 6: Constant applicative forms and the code store の、Mark6でエラーとなったMark5のテストプログラムについて、デバッグを進めていこうと思います。
出先なので隙を見てmakeMistakesToLearnHaskellをちょっとずつ進めます
Category Theory for Programmers (Part One: 4. Kleisli Categories ~ 6. Simple Algebraic Types) まで読了 あっけないほど簡明 もどかしい C++ による説明はかえって邪魔に感じる algebraic data types と算術規則の類似がうまい initial, terminal objects に抵抗が少ないのは再挑戦の進歩かも 
競プロ典型 90 問 52 日目 - Dice Product(★3) ヤルだけ 
本日はこれにて離脱
本当にちょっとだけしかできなかったのでこれからPC開いてやります!
引数スタックの初期値を (topCont, リスト出力用2スロットフレームのアドレス) というクロージャにしても、出力がリストではないプログラムについてエラーにならない方法を思いつけず、
また compileA の変更が必要とテキストに書かれていますが、変更内容がわからず、報告できるような進捗はありませんでした。お恥ずかしい。
山本悠滋です。出先から戻ってからですが、今日はmakeMistakesToLearnHaskellを少しと、GHCupとstackの併用が(恐らく)罠な件について、調査して久々に記事にします
(2014) Bartosz Milewski (Part One: 7. Functors ~)
あとハシゴで 53 日目 - Discrete Dowsing(★7)
S.K.です。今週もお世話になります。よろしくお願いします。
先週に引き続き、Implementing Functional Languages: a tutorial 4.7 Mark 6: Constant applicative forms and the code store の、
Mark6でエラーとなったMark5のテストプログラムについて、デバッグを進めていこうと思います。
お久しぶりです、 toyboot4e です。 AHC 034 に出るのと、を見てみます。