haskell-jp / mokumoku-online #41

円周率に収束しているはずの数列の描画です、見にくいですね、精度もそんなによくないそうです(←だいぶ昔に生み出された数列とのこと)、、、でも味があるはず!笑。Haskellでのファイルの読み書きの勉強になりました、引き続きいろいろな描画スキルを随時勉強したいです。
ほとんど進まずでしたが、コンパイルして動かす手順を探っていました。
子守の合間にやっているので、スマホにTermuxというアプリを入れて、そこ上でghcを動かしています。
本ではghciを使って試す手順になっているのですが、Termux環境ではそれができないので、.hsファイルを作ってコンパイルしようと考え、試行錯誤してなんとか簡単な自作関数を動かすことまではできました。このやり方を使って本を読み進めていきます。気長にやっていきます〜。
山本悠滋です。年度末タスクがしんどい:disappointed_relieved:
お昼ご飯を食べてから、makeMistakesToLearnHaskellの続きや、Haskell-jp Blogに投稿したい記事があるので書きます
自作言語のコンパイラーいじってます https://zenn.dev/kakkun61/scraps/d45fad947b8e54
私は『Haskell入門』を読みます.今日は6章を読んで,7章もいけるところまでいきたいです.
普段は研究の方が忙しいので,このもくもく会でまとまった時間が取れるのが大変ありがたい…
今週もがんばります!
白鳥と申します。Megaparsecを触ってみようと思います。
ニコラスです。また何か描画できたらいいなと思っています。漠然ですが!笑
:open_mouth: DiscordのSystem.Randomで書いたものを朗読しながら推敲してます
なんか口頭で相談したくなったらいつでもどうぞ
チェシャ猫です。ずっと放置してた thank-you-stars に手を入れてます。
thank-you-stars なつかしさすらある
(Cabal の API 全然変わっててそもそもビルドできない件)
頑張って整理したんでしょうかね。
thank-you-stars なつかしい
少し早めに失礼します。Megaparsecの解説記事を読みました
makeMistakesToLearnHaskellの課題12を読んで手直ししてたら終わっちゃった!
https://github.com/haskell-jp/makeMistakesToLearnHaskell/commit/12d7ad5a97be8c30127e3e1baa5bafe905ce4178
とりあえず Hackage と cabal 自身の実装を読んで API の使い方を思い出しつつ進めています。
『Haskell入門』の7.5の途中まで読みました!『programming in Haskell』でパーサーコンビネータをモナドなどのインスタンスにするところからやっていたのでその実装を思い出しながら読んでいました
オイラー法により、ある方程式の解を描きました。(本当は円になるはずなのに、近似してるから微妙にずれる、みたいです)
これからもいい描画の題材を探そうと思います笑:woman-raising-hand:
とりあえず1モジュール内での型検査エラーがなくなった
元のコードより読みやすくなってよいよい
これに関連してこういうデータ型が欲しくなった
type List :: (Type -> (Type -> Type) -> Type) -> Type -> (Type -> Type) -> Type
data List a b f
  = Nil
  | Cons (Wear b f (a b f)) (Wear b f (List a b f))
  deriving Generic
@ has joined the channel
壊れてた部分を直して v1.0.0 にした! https://twitter.com/y_taka_23/status/1488488187232243713
今日は『Haskell入門』の7章を読み進めます。なんとか読み切りたい…
山本悠滋です。年度末タスクが一区切りついた :relieved:
お昼食べてからHaskell-jp Adminsのこととか、makeMistakesToLearnHaskellの続きとか、cabalへの乗り換えの件やります
遅くなりました。ニコラスです。今日も何か描きます:muscle:
チェシャ猫です。今日は Gloss の playIO を使って、キー入力を受け付けるサンプルを作ってみようと思います。
先日 thank-you-stars も Stack から cabal に乗り換えたんですけど、やり方あれで良かったのか分かんないんですよね…。一応 extra-source-files に Stackage から持ってきた freeze ファイルを入れて --with-compiler 指定してあるので依存は固定できてるとは思うんですが…。
extra-source-files に入れる必要はないんじゃないっすか。Hackageに上げるtarballに入れるわけじゃあるまいし
最初そう思ったんですが、Hackage に入ってないと cabal install でビルドできなくないです?
まさか。stackでアップロードしたパッケージには当然cabal.project.freezeなんてないですけど普通にcabal installでもインストールできますし。
それだと依存の具体的なバージョンを固定する方法がないので、もとから freeze なしでも cabal ファイルのバージョン制約のみでビルドできたパッケージ、ということじゃないでしょうか?
はい。もともとみんなそうしてるでしょうし。
そもそもパッケージのextra-source-filesに入っているcabal.project.freezeなんて考慮してくれるのか怪しいです。考慮しているとしたらcabal.project.freezeに書かれた組み合わせのバージョンでしかビルドできないことになってしまうでしょうし...
そうか、だとしたら cabal ファイル単体で、確実にビルドできるバージョン範囲が明示されてる必要があるわけですね。ずっと Stack におまかせだったから cabal ファイルにバージョン制約全く書いてなかった。どうやって組み合わせを探せばいいんだ…。
よく考えると npm にも package-lock.json は含まれてないのと同じか…。
参考までにリポジトリーにcabal.project.freezeがあるとプロジェクトのオーナーがどんなバージョンでテストしているか分かるから助かる、というのはあるんですけどね。
一番ものぐさなやり方は、とりあえず使った当時のメジャーバージョンを下限にしておいて、上限は問題があったときに設定する、じゃないかと思います。実はリリースした後のバージョンでも後からかえられるので...
なるほど…。定期的にビルドしないと問題が発覚しないので、本当は dependabot みたいなやつで watch したいとこですね。 https://github.com/dependabot/dependabot-core/issues/2745
makeMistakesToLearnHaskellをちょっとだけ進めて、Haskell-jp Adminsの件で領収書探しなどをしてました。
上で話していたバージョンの件を修正して、あとは Gloss の play を触ってみました。必要な要素は TEA と似てる。
『Haskell入門』の7.5.4まで読み終わりました。このままもうちょっとだけ進めようと思います。
円です:laughing:!!(Runge Kutta法で先週の微分方程式を描きました。)
山本悠滋です。いつもどおりmakeMistakesToLearnHaskellの続きをちょっとだけやり、 https://twitter.com/igrep/status/1490285921966903301 の問題に取り組みます。