次のテンプレートHaskell関数を考えてみましょう。
composeQ :: ExpQ -> ExpQ -> ExpQ
composeQ = \x y -> [| $(x) . $(y) |]
方程式の右辺からラムダ式を削除し、composeQ
ポイントフリースタイルを使用して書き込むことは可能ですか?
次のテンプレートHaskell関数を考えてみましょう。
composeQ :: ExpQ -> ExpQ -> ExpQ
composeQ = \x y -> [| $(x) . $(y) |]
方程式の右辺からラムダ式を削除し、composeQ
ポイントフリースタイルを使用して書き込むことは可能ですか?
ポイントフリースタイルで式を任意の引用につなぎ合わせる一般的な方法はありませんが、この特定のケースは次のように実装できます。
composeQ :: ExpQ -> ExpQ -> ExpQ
composeQ = flip infixApp [|(.)|]
infixApp
ここでは、通常、順序でパラメーターを取り、それを構成オペレーターに提供するフリップがありleft op right
ましop left right
た。これで、元の と同等のポイントフリー関数ができましたcomposeQ
。