Haskell

(失敗)ArrowでYコンビネータを…作れませんでした OTL

先日の"ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません"で、「あとで書く」にしていた「名前を使わない再帰」の方法を試してみたけど、結果は駄目だった。 ちゃんと理解してる人や素養のある人には自明なのかも…

ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し

Programming with Arrowsを読んで理解したつもりのメモ。誤りなど乞うご指摘。 (復習)Arrowってなに? と思って以前調べたメモが"3分で解るHaskellのArrowの基本メモ - よくわかりません"。それにちょっと補足というか観点を変えてまず感覚の整理。 Monad…

do記法でArrowを使いこなす基本メモ

3分で解るHaskellのArrowの基本メモ - よくわかりませんで残ったdo記法。Arrow syntaxと7.17. アロー記法を読んで理解したつもりのメモ。 感覚的には、Monadのdo記法と同じ。違いは、 Arrowを作る予約語「proc」を先頭で使う。感覚的には「(proc x->○△□)」は…

MonadとArrowの関係。

昨日のArrowのエントリで MonadもArrow(に出来る)…みたいだけど詳しい事は書いてなかった。 と書いたけど、手っ取り早く、GHC6.6.1のControl.Arrowのソースを見てみた。 要は、モナド自体じゃなくて、モナドの>>=の右辺に渡す b -> m c m b って書くけど、…

3分で解るHaskellのArrowの基本メモ

日本語でArrowの説明があまり見付からなかったので、Haskell/Understanding arrows - Wikibooks, open books for an open worldを読んで理解したつもりのメモ。オリジナルの図を見ながらだと分かりやすいかも。誤り・間違いなど、乞うご指摘。 b->cな関数をA…

Haskellの継続モナド(Continuation Monad)を理解するポイント

モナドのすべての継続モナドのところが簡潔で、概念とかもあまり明示的に説明してなくて理解に苦労したので、ポイントをメモ。誤りなど、乞うご指摘。 newtype Cont r a = Cont { runCont :: ((a -> r) -> r) } instance Monad (Cont r) where return a = Co…

Emacsのhaskell-modeでGHCi使用時にC-c C-rで編集中ソースのバッファに居続けるパッチ

EmacsのHaskell Modeでは、C-c C-rすると、GHCiのバッファにカーソルが移ってソースをGHCiでリロードする。その場ですぐ色々試したい場合はそのままでいいけど、自分はこまめにエラーチェックのつもりでC-c C-rするので、カーソルはソースバッファに戻って欲…

Emacsのhaskell-modeでGHCi使用時にエラー行だけじゃなくエラー箇所に飛ぶパッチ

Haskell Modeでは、C-c C-rやC-c C-nでエラーの行に飛んでくれるけど、どうせなら行頭でなくてエラーの桁まで飛んで欲しい。パッチというほどの修正じゃないけど。 --- haskell-ghci.el.orig 2006-05-18 07:03:25.000000000 +0900 +++ haskell-ghci.el 2007-…