タグ

ブックマーク / haskell.e-bigmoon.com (2)

  • AST を拡張しよう

    はじめに 実験的な内容です。(@fumievalさん, @matsubara0507さん、アドバイスありがとうございました) モチベーション まずは、以下のような型 Expr と関数 pretty が定義されているとします。 data Expr = Constant Int | Add Expr Expr deriving (Eq, Show) pretty :: Expr -> String pretty (Constant i) = show i pretty (Add e1 e2) = pretty e1 <> " + " <> pretty e2

  • ContT を使ってコードを綺麗にしよう!

    はじめに Continuation (継続) について全く勉強したことが無いので Control.Monad.Cont で定義されている ContT とかいつ使うんだろうなーと思っていましたが、ついに利用機会がありました!!! 僕が考えたんじゃなくて fumieval さんに相談して、教えてもらったんですけどね。 問題のコード Yesod の Handler ではパラメータの取得するために lookupGetParam や lookupPostParam を利用すると思います。 実際にはこんな感じでパラメータを取得していくつか処理を行います。 deleteTestR :: Handler Html deleteTestR = do mParam <- lookupPostParam "key" case mParam of Nothing -> returnJson $ String "パ

  • 1