ApplicativeDo拡張を試す

ApplicativeDoの動作を実際に動かして見てみたいと思いました。 解説は以下などで行われています。 どのようにdesugarされるかもわかります。 https://gitlab.haskell.org/ghc/ghc/-/wikis/applicative-do https://qiita.com/thimura/items/120f40c4e49f9154ac8a <*>と>>=で挙動が違う適当な型を用意して、 {-# LANGUAGE ApplicativeDo #-} import »

循環プログラミングに驚いた(repmin problem)

GHC拡張RecursiveDoが何か知りたく、https://ocharles.org.uk/blog/posts/2014-12-09-recursive-do.html この記事を読んだ。 RecursiveDoに到達する以前に単に遅延評価に衝撃を受けたのでシェアさせていただきます。 repmin problem というもの。 何らかのtraversableなもの、例えば次のような木構造を、 Tree 4 [Tree 6 [], Tree 2 []] 木構造内の一番小さい値をつかって更新したい、 Tree 2 [Tree »